Я пытаюсь изучить C++, и я сделал игру lict tictactoe, но что-то не так. Я попытался сделать класс победителя как пустотой, так и bool. Но когда я ввожу одну координату, она преформирует класс. Чтобы сделать его простым, вы можете выиграть только в том случае, если 3 сверху. О. Что случилось? так, если я вход: 0 0 он говорит победительC++ Проблемы с TicTacToe
Вот код:
#include <iostream>
const int rows = 3;
const int elements = 3;
const char Ochar = 'O';
char board[rows][elements];
void Clear()
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < elements; j++)
{
board[i][j] = 0;
}
}
}
void Show()
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < elements; j++)
{
std::cout << " " << board[i][j] << " |";
}
std::cout << std::endl;
std::cout << "------------" << std::endl;
}
}
bool PlayerAttack(int x, int y)
{
if (board[x][y] == 0)
{
board[x][y] = Ochar;
return true;
}
return false;
}
void Winner()
{
if (board[0][0], board[0][1], board[0][2] = 'O')
{
std::cout << "Winner";
}
}
int main()
{
Clear();
Show();
int pos1 = 0;
int pos2 = 0;
while (1)
{
std::cout << "Please input a coordinate: "; std::cin >> pos1 >> pos2; std::cout << std::endl;
PlayerAttack(pos1, pos2);
Show();
Winner();
}
}
Они называются функции, а не классы (Clear, Шоу, ...). – tmlen
'if (board [0] [0], board [0] [1], board [0] [2] = 'O')' Это вопиющее заблуждение! Читайте о C++ [сравнение] (http://en.cppreference.com/w/cpp/language/operator_comparison) и [comma] (http://en.cppreference.com/w/cpp/language/operator_other) операторах , –