Hallo gestern, ich habe angefangen, ein kleines Tic Tac Toe Spiel zu programmieren, aber heute habe ich einen Fehler gefunden. Das Spiel endet in Draw, wenn eine Rückkehr von '/' (nur 'X' oder 'O' wenn jemand gewinnt) angezeigt wird und der Zähler 9 zeigt, aber es endet auch, wenn ich während des Spiels einen Fehler mache und z. 34 (mögliche Eingaben sind 1-9) und ich erreiche 9 (Counter).Fehler: Erwarte eine Deklaration TicTacToe Spiel
Ich möchte die ‚/‘ auf ‚B‘ und verwenden ändern, aber ich erhalte ‚eine Erklärung Erwartete‘ bei {.
char Checker();
{
if (matrix[0][0] && matrix[0][1] && matrix[0][2] && matrix[1][0] && matrix[1][1] && matrix[1][2] && matrix[2][0] && matrix[2][1] && matrix[2][2] == 'X' || 'O')
return 'B';
}
Können Sie mir helfen, dieses Problem zu beheben? Wenn Sie den vollständigen Code sehen möchten: https://pastebin.com/E5TzAG4t. Sorry für mein Englisch ist nur eine Sprache, die ich in der Schule (Deutschland) gelernt habe.
Edit: Dies ist der Code Checking 1. zu sehen, ob jemand 2. gewinnt ich dort ein Fehler während Nummer
einfügen gemacht wurdechar Win()
{
//Spieler X
if (matrix[0][0] == 'X' && matrix[0][1] == 'X' && matrix[0][2] == 'X')
return 'X';
if (matrix[1][0] == 'X' && matrix[1][1] == 'X' && matrix[1][2] == 'X')
return 'X';
if (matrix[2][0] == 'X' && matrix[2][1] == 'X' && matrix[2][2] == 'X')
return 'X';
if (matrix[0][0] == 'X' && matrix[1][0] == 'X' && matrix[2][0] == 'X')
return 'X';
if (matrix[0][1] == 'X' && matrix[1][1] == 'X' && matrix[2][1] == 'X')
return 'X';
if (matrix[0][2] == 'X' && matrix[1][2] == 'X' && matrix[2][2] == 'X')
return 'X';
if (matrix[0][0] == 'X' && matrix[1][1] == 'X' && matrix[2][2] == 'X')
return 'X';
if (matrix[2][0] == 'X' && matrix[1][1] == 'X' && matrix[0][2] == 'X')
return 'X';
//Spieler O
if (matrix[0][0] == 'O' && matrix[0][1] == 'O' && matrix[0][2] == 'O')
return 'O';
if (matrix[1][0] == 'O' && matrix[1][1] == 'O' && matrix[1][2] == 'O')
return 'O';
if (matrix[2][0] == 'O' && matrix[2][1] == 'O' && matrix[2][2] == 'O')
return 'O';
if (matrix[0][0] == 'O' && matrix[1][0] == 'O' && matrix[2][0] == 'O')
return 'O';
if (matrix[0][1] == 'O' && matrix[1][1] == 'O' && matrix[2][1] == 'O')
return 'O';
if (matrix[0][2] == 'O' && matrix[1][2] == 'O' && matrix[2][2] == 'O')
return 'O';
if (matrix[0][0] == 'O' && matrix[1][1] == 'O' && matrix[2][2] == 'O')
return 'O';
if (matrix[2][0] == 'O' && matrix[1][1] == 'O' && matrix[0][2] == 'O')
return 'O';
return '/';
}
char Checker()
{
if (matrix[0][0] && matrix[0][1] && matrix[0][2] && matrix[1][0] && matrix[1][1] && matrix[1][2] && matrix[2][0] && matrix[2][1] && matrix[2][2] == 'X' || 'O' || '1' || '2' || '3' || '4' || '5' || '6' || '7' || '8' || '9')
return 'B';
}
'' O'' ist immer wahr, so dass die if-Aussage immer wahr ist. Meinst du vielleicht 'Matrix [2] [2] == 'X' || Matrix [2] [2] == 'O''? Warum gibt es auch ein ';' nach 'char Checker()'? –
'char Checker();' besser loswerden '' '' hier .. – drescherjm
Wenn Sie überprüfen wollen ob 'p'' 'X'' oder' 'O'' ist, dann tun Sie' if ((p == 'X') oder (p == 'O')) ', nicht 'if (p ==' X 'oder' O ')'. – ForceBru