0 Daumen
412 Aufrufe

Hallo Zusammen,

Es geht um diesen Code hier:



Ich schreibe ein TicTacToe Programm in dem ein Spieler O gegen einen Spieler X spielt.
Es sind zwei echte Spieler also kei AI, und das grid.h ist bereits gegeben.


Schilderung

Der Spieler O fängt an (Erster Zug bzw Zug bei jeder ungeraden Nummer 1,3,5,7,9)
Danach gibt O seinen Wert ein, i=Zeile, j=Spalte. 

Danach wird in einer while-Schleife überprüft ob die Stellen im Grid überhaupt getroffen werden und ob auch keine von seinen eingegebenen bereits vorher besetzt sind. 
Falls dies nicht zutrifft, wird er aufgefordert die Koordinaten neu einzugeben.
Falls die Koordinaten dann mit der Bedingung stimmen, gehen sie nicht mehr in die Whileschleife zurück.

Ok, ich nehme an die Koordinaten stimmen jetzt und werden  ins Grid eingefügt.

Nun, überprüft eine if-Anweisung ob O gewonnen hat, falls dies zutrifft, printet er "O won!" falls nicht, geht er weiter und überprüft ob X gewonnen hat.

Weiter sollte ich: 
Überprüfen wenn alle Felder besetzt sind, wenn dies zutrifft sollte "draw" ausgeprintet werden. 

ist er mit den Überprüfungen fertig, sollte es wieder ganz oben anafangen und mit Spieler X weiter gehen. 

Das Grid sieht folgendermassen aus
__  __  __
__  __  __ 
__  __  __


Die Koordinaten des Grids sind folgendermassen:

 00 01 02
 10  11 12
 20 21  22



Problem: Es kompiliert so weit nicht und Fehlermeldung.

Ich erhalte folgende Fehlermeldung:

"/home/cxrun/projectfiles/main.cpp: In function 'int main()':
/home/cxrun/projectfiles/main.cpp:56:77: error: expected primary-expression before '||' token
    (grid(0,0) == grid(0,1) && grid(0,1) == grid(0,2) && grid(0,0) == 'O')) || //First row
                                                                            ^~
/home/cxrun/projectfiles/main.cpp:77:77: error: expected primary-expression before '||' token
    (grid(0,0) == grid(0,1) && grid(0,1) == grid(0,2) && grid(0,0) == 'X')) || //First row"

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Hallo limonade,

error: expected primary-expression before '||' token

-> Der Compiler erwartet vor dem '||' einen Ausdruck/eine Aussage (bzw. Wahrheitswert), kann diesen aber nicht finden.
Dann schau dir den Code davor mal genau an, weil eigentlich steht dort ja die Aussage

grid(0,0) == grid(0,1) && grid(0,1) == grid(0,2) && grid(0,0) == 'O'

Aber warum erkennt der Compiler die jetzt nicht?

if(
    //Horizontal rows
    (grid(0,0) == grid(0,1) && grid(0,1) == grid(0,2) && grid(0,0) == 'O')) ||

Einfach weil da die rote Klammer zu viel gesetzt wurde! Der gleiche Fehler findet sich auch in alle weiteren Zeilen. Wenn du das verbesserst compiliert der Code ohne Probleme.

Gruß

EmNero

Avatar von

Super jetzt funktionierts und ich konnte nachfolgende Probleme auch lösen.


Besten Dank ! :)

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community