Lumberjacker Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 Hallo Ihr! Ich muss morgen mein Projekt in Programmieren abgeben (Tic-Tac-Toe spiel), und find einfach die fehler in meinem Programm nicht. Irgendwas haut mit der abbruchbedingung nicht hin, und ich glaub der PC überschreibt teilweise auch belegte felder: Wär ur super wenn wer den fehler findet, hab nämlich schon ur kopfweh von der vielen herumsitzerei. hier der Code: /*______________________________________ TIC TAC TOE Karl Distl ______________________________________*/ #include #include #include #include #define X 'X' #define O 'O' #define BLANK ' ' //Spieler 1 = Computer = X char Spieler1 = X; //Spieler 2 = Benutzer = O char Spieler2 = O; //2D-Array für Spielfeld char TicTacToe[3][3] = { {' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '} }; //Spielfeldausgabe void print_spielfeld(void) { int i; system("cls"); printf(" 1 2 3 \n +---+---+---+\n"); for(i = 0; i { printf(" %d | ",i+1); printf("%c",TicTacToe[0]); printf(" | "); printf("%c",TicTacToe[1]); printf(" | "); printf("%c",TicTacToe[2]); printf(" | \n"); if(i != 2) { printf(" +---+---+---+\n"); } else { printf(" +---+---+---+\n"); } } } //Setzen Spieler 2 void play2(char ch) { int row, column; printf("Wo wollen sie setzen?\n"); printf("Zeile (1-3) \b\b"); scanf("%d",&row); getchar(); printf("\nSpalte (1-3) \b\b"); scanf("%d",&column); getchar(); if(TicTacToe[row-1][column-1] == BLANK) //Zeichen in Feld eintragen { TicTacToe[row-1][column-1] = ch; print_spielfeld(); } else { printf("Dieses Feld ist bereits belegt\n"); printf("Wählen sie neu:\n"); printf("Zeile (1-3) \b\b"); scanf("%d",&row); getchar(); printf("\nSpalte (1-3) \b\b"); scanf("%c",&column); getchar(); } } //Computer-Setzfunktion void play1(char h) { //Überprüfen für spieler 1 if (TicTacToe[0][0] == Spieler2 && TicTacToe[0][1] == Spieler2) { TicTacToe[0][2] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[1][0] = h; } else if (TicTacToe[0][1] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[0][2] == Spieler2) { TicTacToe[0][1] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[2][0] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[2][1] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][1] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[2][0] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[2][1] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[1][0] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[0][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[1][2] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[0][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[0][2] = h; } //überprüfen für Spieler 2 else if (TicTacToe[0][0] == Spieler2 && TicTacToe[0][1] == Spieler2) { TicTacToe[0][2] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[1][0] = h; } else if (TicTacToe[0][1] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[0][2] == Spieler2) { TicTacToe[0][1] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[2][0] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[2][1] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[0][1] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[1][2] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[1][1] = h; } else if (TicTacToe[2][0] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[2][1] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[1][0] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[1][0] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][1] == Spieler2) { TicTacToe[0][1] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[1][2] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[1][2] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[0][2] = h; } else if (TicTacToe[0][0] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[2][2] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][2] == Spieler2) { TicTacToe[0][0] = h; } else if (TicTacToe[0][2] == Spieler2 && TicTacToe[1][1] == Spieler2) { TicTacToe[2][0] = h; } else if (TicTacToe[1][1] == Spieler2 && TicTacToe[2][0] == Spieler2) { TicTacToe[0][2] = h; } } //Überprüfen ob Sieg int if_win() { //Spieler 1 if(TicTacToe[0][0] == Spieler1 && TicTacToe[0][1] == Spieler1 && TicTacToe[0][2] == Spieler1 || TicTacToe[1][0] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[1][2] == Spieler1 || TicTacToe[2][0] == Spieler1 && TicTacToe[2][1] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][0] == Spieler1 && TicTacToe[1][0] == Spieler1 && TicTacToe[2][0] == Spieler1 || TicTacToe[0][1] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][1] == Spieler1 || TicTacToe[0][2] == Spieler1 && TicTacToe[1][2] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][0] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][2] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][0] == Spieler1) { return 1; } //Spieler 2 else if( TicTacToe[0][0] == Spieler2 && TicTacToe[0][1] == Spieler2 && TicTacToe[0][2] == Spieler2 || TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[1][2] == Spieler2 || TicTacToe[2][0] == Spieler2 && TicTacToe[2][1] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][0] == Spieler2 && TicTacToe[1][0] == Spieler2 && TicTacToe[2][0] == Spieler2 || TicTacToe[0][1] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][1] == Spieler2 || TicTacToe[0][2] == Spieler2 && TicTacToe[1][2] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][0] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][2] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][0] == Spieler2) { return 2; } else { return 0; } } //Mainfunktion int main(int argc, char *argv[]) { char c; int b, zahl, z; printf("**********************\n"); printf(" TIC TAC TOE\n"); printf("**********************\n\n"); printf("\nComputer.....X\n"); printf("Spieler......O\n"); printf("Der Zufall entscheidet, wer beginnt. Viel Spass!!!\n"); printf("\nUm ein neues Spiel zu starten, druecken sie ENTER"); getchar(); //Menü für Spiel & WH do { // Zufallszahlengenerator 1 od 2, um festzulegen, wer beginnt srand(time(0)); zahl=1+rand()%2; // zahl entw 1 od 2 if (zahl == 1) //Computer beginnt { //1. Zug des Computers = Standardzug in mitte TicTacToe[1][1] = X; print_spielfeld(); play2(O); print_spielfeld(); //2. Zug des Computers = Standardzug links oben od rechts unten if(TicTacToe[0][0] == BLANK) //Zeichen in Feld eintragen { TicTacToe[0][0] = X; print_spielfeld(); } else { TicTacToe[2][0] = X; } do //Schleife für neue Züge { print_spielfeld(); z = if_win(); play2(O); print_spielfeld(); z = if_win(); play1(X); } while (z == 0); //bis Sieg festgestellt } else //Spieler beginnt { print_spielfeld(); play2(O); print_spielfeld(); //1. Zug des Computers = Standardzug links unten od links oben if(TicTacToe[2][0] == BLANK) //Zeichen in Feld eintragen { TicTacToe[2][0] = X; print_spielfeld(); } else { TicTacToe[0][0] = X; } do //Schleife für neue Züge { print_spielfeld(); z = if_win(); play2(O); print_spielfeld(); //z = if_win(); play1(X); } while (z == 0); //bis Sieg festgestellt } if (z == 1) //Auswertung { printf("Sie haben verloren, sie Trottel!"); } else if (z == 2) { printf("Sie haben gewonnen!!!"); } else { printf("Unentschieden"); } //Menüabfrage für WH printf("\n\n\nWollen sie nochmal? Druecken sie J/N und ENTER \b\b"); scanf("%c",&c); getchar(); } while (c != 'n' || c != 'N'); getchar(); return 0; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
step Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 alles klar, abbruch und vermutetes überschreiben sind derselbe fehler. das problem ist die funktion play1(), die ja eigentlich nur eine endlose aneinanderreihung von möglichen gewinnzügen ist. da gibts mehrere probleme; schauen wir uns mal einen teil an: //Computer-Setzfunktion void play1(char h) { //Überprüfen für spieler 1 if (TicTacToe[0][0] == Spieler2 && TicTacToe[0][1] == Spieler2) { TicTacToe[0][2] = h; } 1. du überprüfst nicht, ob das feld [0][2] überhaupt noch frei ist, dh. derselbe zug wird möglicherweise wiederholt 2. deine strategie ist rein passiv; der PC gewinnt nicht selbst wenn er die möglichkeit hätte. 3. du suchst nur nach feldern, bei denen der nächste zug zum sieg für den spieler führt. 4. wenn keine der möglichkeiten zutrifft, macht der pc keinen zug. zb. folgendes spielfeld: +---+---+---+ |...|.O.|...| +---+---+---+ |.O.|...|...| +---+---+---+ |.X.|...|...| +---+---+---+ eine sinnvolle strategie habe ich hier gefunden: The machine first looked to see if it had played in 2 cells along a row with the third cell empty. If not, it looked to see if its opponent had played 2 cells along a row with the third cell empty. If neither of these situations had arisen, it played the first vacant cell in the sequence 5,1,6,7,2,9,4,3,8. As this strategy sometimes led to a loss, a special defense mode was in effect under certain "exceptional circumstances. die numerierung in dem beispiel ist einfach 1 2 3 4 5 6 7 8 9 hoffe ich hab dir damit geholfen lg -step Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lumberjacker Geschrieben 22. Juni 2005 Autor Teilen Geschrieben 22. Juni 2005 danke für die antwort. Geholfen hast mir auf jeden fall. Schaut so aus als ob ihc jetzt die KI neu programmieren muss. Hab aber noch keinen richtigen plan wie ichs angehen soll. vor allem is a bissl wenig zeit glaub ich Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
walter67 Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 Sodala, hab mal eine "simultanübersetzung von englisch nach C" des links von step gemacht und bei dir eingefügt .... Einige Fehler im drumherum hab' ich schon ausgebessert aber folgende Probs solltest du noch selbst lösen: = nach einer abgelehnten eingabe werden die nächsten versuche nicht eingetragen = der Programmabbruch mit 'n' funktioniert bei mir noch nicht ... Viel Spaß , Walter #include #include #include #include #define X 'X' #define O 'O' #define BLANK ' ' //Spieler 1 = Computer = X char Spieler1 = X; //Spieler 2 = Benutzer = O char Spieler2 = O; //2D-Array für Spielfeld char TicTacToe[3][3] = { {' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '} }; //Spielfeldausgabe void print_spielfeld(void) { int i; system("cls"); printf(" 1 2 3 \n +---+---+---+\n"); for(i = 0; i { printf(" %d | ",i+1); printf("%c",TicTacToe[0]); printf(" | "); printf("%c",TicTacToe[1]); printf(" | "); printf("%c",TicTacToe[2]); printf(" | \n"); if(i != 2) { printf(" +---+---+---+\n"); } else { printf(" +---+---+---+\n"); } } } //Setzen Spieler 2 void play2(char ch) { int row, column; printf("Wo wollen sie setzen?\n"); printf("Zeile (1-3) \b\b"); scanf("%d",&row); getchar(); printf("\nSpalte (1-3) \b\b"); scanf("%d",&column); getchar(); if(TicTacToe[row-1][column-1] == BLANK) //Zeichen in Feld eintragen { TicTacToe[row-1][column-1] = ch; print_spielfeld(); } else { printf("Dieses Feld ist bereits belegt\n"); printf("Wählen sie neu:\n"); printf("Zeile (1-3) \b\b"); scanf("%d",&row); getchar(); printf("\nSpalte (1-3) \b\b"); scanf("%c",&column); getchar(); } } //Computer-Setzfunktion void play1(char h) { int i; int row, column; int p1,p2; int frei_row, frei_column; int row_sequence[] = {1,0,1,2,0,2,1,0,2}; int column_sequence[] = {1,0,2,0,1,2,0,2,1}; // Siegchance zeile prüfen for (row=0; row { p1=p2=0; for (column=0; column { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) frei_column = column; } if (p1==2 && p2 == 0) break; } if (row { TicTacToe[row][frei_column] = h; return; } // Siegchance spalte prüfen for (column=0; column { p1=p2=0; for (row=0; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) frei_row = row; } if (p1==2 && p2 == 0) break; } if (column { TicTacToe[frei_row][column] = h; return; } // Diagonalen nicht vergessen .. p1=p2=0; for (row=0, column=0; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) { frei_row = row; frei_column = column; } if (p1==2 && p2 == 0) break; } if (row { TicTacToe[frei_row][frei_column] = h; return; } // Diagonalen nicht vergessen .. p1=p2=0; for (row=0, column=2; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) { frei_row = row; frei_column = column; } if (p1==2 && p2 == 0) break; } if (row { TicTacToe[frei_row][frei_column] = h; return; } //Nicht gewonnen, dann mal in die Defensive ... // zeile prüfen for (row=0; row { p1=p2=0; for (column=0; column { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) frei_column = column; } if (p1==0 && p2 == 2) break; } if (row { TicTacToe[row][frei_column] = h; return; } // spalte prüfen for (column=0; column { p1=p2=0; for (row=0; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) frei_row = row; } if (p1==0 && p2 == 2) break; } if (column { TicTacToe[frei_row][column] = h; return; } // Diagonalen nicht vergessen .. p1=p2=0; for (row=0, column=0; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) { frei_row = row; frei_column = column; } if (p1==0 && p2==2) break; } if (row { TicTacToe[frei_row][frei_column] = h; return; } // Diagonalen nicht vergessen .. p1=p2=0; for (row=0, column=2; row { if (TicTacToe[row][column] == X) p1++; if (TicTacToe[row][column] == O) p2++; if (TicTacToe[row][column] == BLANK) { frei_row = row; frei_column = column; } if (p1==0 && p2==2) break; } if (row { TicTacToe[frei_row][frei_column] = h; return; } // nun beides nicht moeglich/notwendig, dann ein freies Feld suchen mit der Serie 5,1,6,7,2,9,4,3,8 ... for (i=0; i { if (TicTacToe[row_sequence][column_sequence] == BLANK) { TicTacToe[row_sequence][column_sequence] = h; break; } } return; } //Überprüfen ob Sieg int if_win() { //Spieler 1 if(TicTacToe[0][0] == Spieler1 && TicTacToe[0][1] == Spieler1 && TicTacToe[0][2] == Spieler1 || TicTacToe[1][0] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[1][2] == Spieler1 || TicTacToe[2][0] == Spieler1 && TicTacToe[2][1] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][0] == Spieler1 && TicTacToe[1][0] == Spieler1 && TicTacToe[2][0] == Spieler1 || TicTacToe[0][1] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][1] == Spieler1 || TicTacToe[0][2] == Spieler1 && TicTacToe[1][2] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][0] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][2] == Spieler1 || TicTacToe[0][2] == Spieler1 && TicTacToe[1][1] == Spieler1 && TicTacToe[2][0] == Spieler1) { return 1; } //Spieler 2 else if( TicTacToe[0][0] == Spieler2 && TicTacToe[0][1] == Spieler2 && TicTacToe[0][2] == Spieler2 || TicTacToe[1][0] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[1][2] == Spieler2 || TicTacToe[2][0] == Spieler2 && TicTacToe[2][1] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][0] == Spieler2 && TicTacToe[1][0] == Spieler2 && TicTacToe[2][0] == Spieler2 || TicTacToe[0][1] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][1] == Spieler2 || TicTacToe[0][2] == Spieler2 && TicTacToe[1][2] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][0] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][2] == Spieler2 || TicTacToe[0][2] == Spieler2 && TicTacToe[1][1] == Spieler2 && TicTacToe[2][0] == Spieler2) { return 2; } else { return 0; } } //Mainfunktion int main(int argc, char *argv[]) { char c; int b, zahl, z; int i; printf("**********************\n"); printf(" TIC TAC TOE\n"); printf("**********************\n\n"); printf("\nComputer.....X\n"); printf("Spieler......O\n"); printf("Der Zufall entscheidet, wer beginnt. Viel Spass!!!\n"); printf("\nUm ein neues Spiel zu starten, druecken sie ENTER"); getchar(); //Menü für Spiel & WH do { // Zufallszahlengenerator 1 od 2, um festzulegen, wer beginnt srand(time(0)); zahl=1+rand()%2; // zahl entw 1 od 2 if (zahl == 1) //Computer beginnt { //1. Zug des Computers = Standardzug in mitte TicTacToe[1][1] = X; print_spielfeld(); play2(O); print_spielfeld(); //2. Zug des Computers = Standardzug links oben od rechts unten if(TicTacToe[0][0] == BLANK) //Zeichen in Feld eintragen { TicTacToe[0][0] = X; print_spielfeld(); } else { TicTacToe[2][0] = X; } for (i=0; i { print_spielfeld(); play2(O); if ( (z=if_win()) != 0) break; print_spielfeld(); play1(X); if ( (z=if_win()) != 0) break; } } else //Spieler beginnt { print_spielfeld(); play2(O); print_spielfeld(); //1. Zug des Computers = Standardzug links unten od links oben if(TicTacToe[2][0] == BLANK) //Zeichen in Feld eintragen { TicTacToe[2][0] = X; print_spielfeld(); } else { TicTacToe[0][0] = X; } print_spielfeld(); play2(O); for (i=0; i { print_spielfeld(); play1(X); if ( (z=if_win()) != 0) break; print_spielfeld(); play2(O); if ( (z=if_win()) != 0) break; } } print_spielfeld(); if (z == 1) //Auswertung { printf("Sie haben verloren, sie Trottel!"); } else if (z == 2) { printf("Sie haben gewonnen!!!"); } else { printf("Unentschieden"); } //Menüabfrage für WH printf("\n\n\nWollen sie nochmal? Druecken sie J/N und ENTER \b\b"); scanf("%c",&c); getchar(); memset (&TicTacToe[0][0], BLANK, 9 ); // Spielfeld löschen!!!! } while (c != 'n' || c != 'N'); getchar(); return 0; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wuphi Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 oiiiidaaaaaaaaaaa....bin i froh, dass i mir sowas nimmer anschaun muss :f: :k: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lumberjacker Geschrieben 22. Juni 2005 Autor Teilen Geschrieben 22. Juni 2005 sehr oag!!! ich dank euch allen 1000mal habst mein leben gerettet *g* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
walter67 Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 [oberlehrermode] bevor du aber jetzt behauptest C programmieren zu können, tust dich schon noch ein bisserl näher damit auseinandersetzen, gell [/oberlehrermode] ... gern geschehen, hab ja schließlich seit fast 18 Jahren damit zu tun ( komm gerade drauf, dass ich alt werde/bin) und falls du mal in Linz bist, wird natürlich ein Seiterl verrechnet ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.