Zum Inhalt springen

Dringend HILFE in C !!!!


 Teilen

Empfohlene Beiträge

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;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sodala, hab mal eine "simultanübersetzung von englisch nach C" :sm: 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ß :wink: ,

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;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

[oberlehrermode] bevor du aber jetzt behauptest C programmieren zu können, tust dich schon noch ein bisserl näher damit auseinandersetzen, gell :look: [/oberlehrermode]

 

... gern geschehen, hab ja schließlich seit fast 18 Jahren damit zu tun :cool:;) ( :eek: komm gerade drauf, dass ich alt werde/bin) und falls du mal in Linz bist, wird natürlich ein Seiterl verrechnet ... :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

×
×
  • Neu erstellen...