#include "Board.h" // // //Функция графического вывода поля. //Пустая клетка (со значением "е") выводится координатами, а занятая - своим знаком. void Board::BoardShow() { for (unint countlines = 0; countlines < LINES; ++countlines) { for (unint countcolumns = 0; countcolumns < COLUMNS; ++countcolumns) { if (board[countlines][countcolumns]=="e") { cout << countlines << countcolumns << " "; } else { cout << board[countlines][countcolumns] << " "; } } cout << endl; } } //Функция очистки поля. Вызывается в новой итерации игрового цикла. void Board::BoardClr() { for (unint countlines = 0; countlines < LINES; ++countlines) { for (unint countcolumns = 0; countcolumns < COLUMNS; ++countcolumns) { board[countlines][countcolumns] = "e"; } } } //Функция проверки победы Х. void Board::XWon() { if (drawcounter>=4) { if ((board[0][0])=="'X'") { if ((board[0][1])=="'X'" and (board[0][2])=="'X'") {Xwonflag=true;} else if ((board[1][1])=="'X'" and (board[2][2])=="'X'") {Xwonflag=true;} else if ((board[1][0])=="'X'" and (board[2][0])=="'X'") {Xwonflag=true;} } if (((board[1][0])=="'X'") and ((board[1][1])=="'X'") and ((board[1][2]))=="'X'") {Xwonflag=true;} if (((board[0][1])=="'X'") and ((board[1][1])=="'X'") and ((board[2][1]))=="'X'") {Xwonflag=true;} if (((board[0][2])=="'X'") and ((board[1][2])=="'X'") and ((board[2][2]))=="'X'") {Xwonflag=true;} if ((board[2][0])=="'X'") { if ((board[2][1])=="'X'" and (board[2][2])=="'X'") {Xwonflag=true;} else if ((board[1][1])=="'X'" and (board[0][2])=="'X'") {Xwonflag=true;} } } } //Функция проверки победы О. void Board::OWon() { if (drawcounter>=4) { if ((board[0][0])=="'O'") { if ((board[0][1])=="'O'" and (board[0][2])=="'O'") {Owonflag=true;} else if ((board[1][1])=="'O'" and (board[2][2])=="'O'") {Owonflag=true;} else if ((board[1][0])=="'O'" and (board[2][0])=="'O'") {Owonflag=true;} } if (((board[1][0])=="'O'") and ((board[1][1])=="'O'") and ((board[1][2]))=="'O'") {Owonflag=true;} if (((board[0][1])=="'O'") and ((board[1][1])=="'O'") and ((board[2][1]))=="'O'") {Owonflag=true;} if (((board[0][2])=="'O'") and ((board[1][2])=="'O'") and ((board[2][2]))=="'O'") {Owonflag=true;} if ((board[2][0])=="'O'") { if ((board[2][1])=="'O'" and (board[2][2])=="'O'") {Owonflag=true;} else if ((board[1][1])=="'O'" and (board[0][2])=="'O'") {Owonflag=true;} } } } //Функция, считающая заполненные клетки. void Board::Draw() { drawcounter=0; for (int countlines = 0; countlines < LINES; ++countlines) { for (int countcolumns = 0; countcolumns < COLUMNS; ++countcolumns) { if (board[countlines][countcolumns]!="e") { drawcounter++; } } } }