MasterOfTheDark
Grünschnabel
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char screen[6][7];
char jn;
int i,j,x;
int fertig1,fertig2;
int Zug[3];
char elements[3]={0,176,219};
char Spieler1[20],Spieler2[20];
falscheeingabe:;
system("cls");
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{ screen[i][j]=' ';}
}
fertig1=0;
fertig2=0;
printf("Geben sie bitte den Namen des ersten Spielers ein.(maximal 20 Zeichen)\n");
gets(Spieler1);
fflush(stdin);
printf("Geben sie bitte den Namen des zweiten Spielers ein.(maximal 20 Zeichen)\n");
gets(Spieler2);
do
{
printf(" 0 1 2 3 4 5 6\n");
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
printf("|%c",screen[i][j]);
}
printf("|\n");
}
do
{
if(((screen[0][6]==elements[2])||(screen[0][6]==elements[3]))&&((screen[0][5]==elements[2])||(screen[0][5]==elements[3]))&&((screen[0][4]==elements[2])||(screen[0][4]==elements[3]))&&((screen[0][3]==elements[2])||(screen[0][3]==elements[3]))&&((screen[0][2]==elements[2])||(screen[0][2]==elements[3]))&&((screen[0][1]==elements[2])||(screen[0][1]==elements[3]))&&((screen[0][0]==elements[2])||(screen[0][0]==elements[3])))
{
goto ende;
}
printf("\n\nSpieler '%s' ist dran.Bitte waehlen sie die spalte,in der sie ihren Stein einwerfen moechten.",Spieler1);
scanf("%d",&Zug[1]);
if((screen[0][Zug[1]]==elements[1])||(screen[0][Zug[1]]==elements[2])||(Zug[1]>6))
{
system("cls");
printf(" 0 1 2 3 4 5 6\n");
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
printf("|%c",screen[i][j]);
}
printf("|\n");
}
printf("Falsche Eingabe!Sie muessen eine Zahl eingeben,die zwischen 0 und 6 liegt.\nUnd die Spalte darf nicht voll sein!");
}
}while((Zug[1]>6)||(screen[0][Zug[1]]==elements[1])||(screen[0][Zug[1]]==elements[2]));
for(i=5;i>0-1;i--)
{
if(screen[i][Zug[1]]!=elements[1]&&screen[i][Zug[1]]!=elements[2])
{
screen[i][Zug[1]]=elements[1];
break;
}
}
//ANFANG der Überprüfung ob das Spiel beendet ist
char a=176;
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
if((screen[i][j]==a && screen[i+1][j]==a && screen[i+2][j]==a && screen[i+3][j]==a) ||
(screen[i][j]==a && screen[i+1][j+1]==a && screen[i+2][j+2]==a && screen[i+3][j+3]==a) ||
(screen[i][j]==a && screen[i][j+1]==a && screen[i][j+2]==a && screen[i][j+3]==a) ||
(screen[i][j]==a && screen[i-1][j+1]==a && screen[i-2][j+2]==a && screen[i-3][j+3]==a) ||
(screen[i][j]==a && screen[i-1][j]==a && screen[i-2][j]==a && screen[i-3][j]==a) ||
(screen[i][j]==a && screen[i-1][j-1]==a && screen[i-2][j-2]==a && screen[i-3][j-3]==a) ||
(screen[i][j]==a && screen[i][j-1]==a && screen[i][j-2]==a && screen[i][j-3]==a) ||
(screen[i][j]==a && screen[i+1][j-1]==a && screen[i+2][j-2]==a && screen[i+3][j-3]==a))
{
fertig2=4;
}
}
}
if(fertig2==4)
{
printf("Gratuliere '%s' Sie haben in 4 gewinnt gegen '%s' gewonnen!",Spieler1,Spieler2);
goto finish;
}
//ENDE der Überprüfung ob das Spiel beendet ist
system("cls");
printf(" 0 1 2 3 4 5 6\n");
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
printf("|%c",screen[i][j]);
}
printf("|\n");
}
do
{
if(((screen[0][6]==elements[2])||(screen[0][6]==elements[3]))&&((screen[0][5]==elements[2])||(screen[0][5]==elements[3]))&&((screen[0][4]==elements[2])||(screen[0][4]==elements[3]))&&((screen[0][3]==elements[2])||(screen[0][3]==elements[3]))&&((screen[0][2]==elements[2])||(screen[0][2]==elements[3]))&&((screen[0][1]==elements[2])||(screen[0][1]==elements[3]))&&((screen[0][0]==elements[2])||(screen[0][0]==elements[3])))
{
goto ende;
}
printf("\n\nSpieler '%s' ist dran.Bitte waehlen sie die spalte,in der sie ihren Stein einwerfen moechten.",Spieler2);
scanf("%d",&Zug[2]);
if((screen[0][Zug[2]]==elements[1])||(screen[0][Zug[2]]==elements[2])||(screen[i][j]>4))
{
system("cls");
printf(" 0 1 2 3 4 5 6\n");
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
printf("|%c",screen[i][j]);
}
printf("|\n");
}
printf("Falsche Eingabe!Sie muessen eine Zahl eingeben,die zwischen 0 und 6 liegt.\nUnd die Spalte darf nicht voll sein!");
}
}while((Zug[2]>6)||(screen[0][Zug[2]]==elements[2])||(screen[0][Zug[2]]==elements[1]));
for(i=5;i>0-1;i--)
{
if(screen[i][Zug[2]]!=elements[1]&&screen[i][Zug[2]]!=elements[2])
{
screen[i][Zug[2]]=elements[2];
break;
}
}
//ANFANG der Überprüfung ob das Spiel beendet ist
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
printf("hallo");
char b=elements[3];
if((screen[i][j]==b && screen[i+1][j]==b && screen[i+2][j]==b && screen[i+3][j]==b) ||
(screen[i][j]==b && screen[i+1][j+1]==b && screen[i+2][j+2]==b && screen[i+3][j+3]==b) ||
(screen[i][j]==b && screen[i][j+1]==b && screen[i][j+2]==b && screen[i][j+3]==b) ||
(screen[i][j]==b && screen[i-1][j+1]==b && screen[i-2][j+2]==b && screen[i-3][j+3]==b) ||
(screen[i][j]==b && screen[i-1][j]==b && screen[i-2][j]==b && screen[i-3][j]==b) ||
(screen[i][j]==b && screen[i-1][j-1]==b && screen[i-2][j-2]==b && screen[i-3][j-3]==b) ||
(screen[i][j]==b && screen[i][j-1]==b && screen[i][j-2]==b && screen[i][j-3]==b) ||
(screen[i][j]==b && screen[i+1][j-1]==b && screen[i+2][j-2]==b && screen[i+3][j-3]==b))
{
fertig2=4;
printf("Gratuliere '%s' Sie haben in 4 gewinnt gegen '%s' gewonnen!",Spieler1,Spieler2);
}
}
}
//ENDE der Überprüfung ob das Spiel beendet ist
system("cls");
}while(fertig1!=4&&fertig2!=4);
if(i==100000)
{
ende:;
printf("Keiner konnte gewinnen,wenn sie nochmal spielen wollen drücken sie 'j'");
scanf("%c",&jn);
fflush(stdin);
}
finish:;
printf("Wenn sie nochmal spielen wollen drücken sie 'j'");
scanf("%c",&jn);
fflush(stdin);
}while(jn=='j'||jn=='J');
funktioniert alles soweit,bis auf die überprüfung(im code durch kommentare am beginn und ende gekennzeichnet),sobald das programm in die if-anweisung "hinein geht" schließt sich das cmd fenster.
jemand eine ahnung woran das liegen könnte?
Lg Masta
Zuletzt bearbeitet: