71 lines
3.2 KiB
C++
71 lines
3.2 KiB
C++
#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++;
|
||
}
|
||
}
|
||
}
|
||
} |