3 gewinnt

Ich hab den bei mir laufen lassen, und nach Syntaxfehler-Korrektur da kommt folgendes:
erster Spieler zieht
zweiter Spieler zieht
ende des programms

Die Fehler:

1.
statt
Code:
 if (zahl1==121 && zahl4==11 && zahl7==11)
  ablaufzahl=4;
muss
Code:
 if (zahl1==11 && zahl4==11 && zahl7==11)
  ablaufzahl=4;

2.
Code:
while (ablaufzahl==3)
	 {
Die Klammer } fur diese Schleife ist nicht da wo sie sein soll.

3.
schau deinen code genau an. ich kürze mal alles drum und dran. da steht eigentlich

Code:
 #include <stdio.h>
void main()
{
...
           while (ablaufzahl==1)
           {  
...
           } 
	 
           if (ablaufzahl==2) 
           {
...
           }	 
	 
           while (ablaufzahl==3)
           {
...
           }  << diese Klammer fehlte uebrigens

           if (ablaufzahl==4) 
           {
...
           }
           getchar();
}
Nach einem durchgang Spieler 1, dann Spieler 2, dann Ende. denn du hast die globalste Schleife vergessen, die den ganzen Code nochmal wiederholt.Mach das per while() oder per goto;
 
genauuu. danke dir vielmals. denn mit der } Klammer habe ich noch gefunden. Aber diesen mit der while () hätte ich nie mehr gefunden, da ich ihn am Anfang gelöscht habe. Juhu. Fast bin ich fertig. Jetzt muss ich nur den Sieg rechtzeititg feststellen. Es gibt ihn noch nicht an. Also danke dir für den aufwand
 
Hallo,
beim durschauen heute morgen bin ich auf diesen 3-Gewinnt-Thread gestossen und hab nun auch mit der Programmierung, allerdings unter Visual C++, angefangen.
Da ich erst seit kurzer Zeit programmiere, stehe ich nun vor einem kleinem Problem.
Bei mir ist das Spielfeld in einem char-Array gespeichert, während dem Ablauf soll nun dieses Array sehr oft erneut aufgebaut werden.

Meine Frage ist nun, ob ich diese Ausgabe mit der Hilfe einer Funktion auslagern kann um beliebig oft, innerhalb meines Progs, wieder aufrufen zu können.

Meine Ausgabe sieht folgendermassen aus:
Code:
// Ausgabe Anfang//    
system("cls");   
cout << "\t3 Gewinnt\n";    
cout << "\t---------\n\n";    
cout << "\t0\t1\t2\n\n";    
for( yachse = 0; yachse < 3; yachse++)      // Ausgabe des Spiel-Array//    
    {      
       cout << "   " << yachse;         
            for( xachse = 0; xachse < 3; xachse++)        
                {          
                    cout << "\t" << feld[yachse][xachse];         
                }  	
       cout << endl << endl;    
    }   
//Ausgabe Ende//
 
Meine Frage ist nun, ob ich diese Ausgabe mit der Hilfe einer Funktion auslagern kann um beliebig oft, innerhalb meines Progs, wieder aufrufen zu können.
kannst du natürlich, und der Code ist soweit in ordnung. Du musst nur noch die funktionsdeklaration um den Code schreiben, z.B. MaleFeld:
Code:
void MaleFeld()
{
/* dein Code hier */
}
 
ICH MUSS (capslock) leider nochmals zurück zu meinem Programm kommen. Habe es für mich schön formatiert und keine Syntaxfehler mehr gefunden. Das Programm ist eben ein gratis, genauer gesagt Dev-C++ man kann aber auch C machen. Jetzt die Frage. Wieso gibt es nie die Winner-Meldung aus? Mein letzter Punkt, dann laueft das Programm.


Code:
 #include <stdio.h>
void main()
{
	 
	 int zahl1=65;
	 int zahl2=66;
	 int zahl3=67;
	 int zahl4=68;
	 int zahl5=69;
	 int zahl6=70;
	 int zahl7=71;
	 int zahl8=72;
	 int zahl9=73;
	 int ablaufzahl=1;
	 char buffer[5];
	 int etwas=0;
	 printf("Willkommen beim Tic Tac Toe Game");
while (etwas==0)
{
	  
	 //Spieler 1 ist an der Reihe
	 if (ablaufzahl==1)
	 {   
		 
		 printf("\n\nSpieler 1: x\n");
		 printf("Spieler 2: o\n\n");  
		 
		 
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl1, zahl2, zahl3);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl4, zahl5, zahl6);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl7, zahl8, zahl9);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 
		 
		 printf("\n\nSpieler 1 ist an der Reihe.Geben sie bitte einen Buchstaben ein: ");
		 scanf("%s", buffer); // Einlesen der Daten, AdressOf-Operator überflüssig da buffer char * ist
		 fflush(stdin);
	
		 // Zuordnung der Werte
		 if(strcmp("A", buffer) == 0  && zahl1!=111 && zahl1!=120)
		 {
		   zahl1 = 120; // ASCII-Code für X speichern
		 }
		 
		 if(strcmp("B", buffer) == 0  && zahl2!=111 && zahl2!=120)
		 {
		   zahl2 = 120;
		 }
		   
		 if(strcmp("C", buffer) == 0  && zahl3!=111 && zahl3!=120)
		 {
		   zahl3 = 120; 
		 }
		   
		 if(strcmp("D", buffer) == 0  && zahl4!=111 && zahl4!=120)
		 {
		   zahl4 = 120;
		 }
		   
		 if(strcmp("E", buffer) == 0  && zahl5!=111 && zahl5!=120)
		 {
		   zahl5 = 120; 
		 }
		   
		 if(strcmp("F", buffer) == 0  && zahl6!=111 && zahl6!=120)
		 {
		   zahl6 = 120; 
		 }
		   
		 if(strcmp("G", buffer) == 0  && zahl7!=111 && zahl7!=120)
		 {
		   zahl7 = 120; 
		 }  
		 
		 if(strcmp("H", buffer) == 0  && zahl8!=111 && zahl8!=120)
		 {
		   zahl8 = 120; 
		 }
		   
		 if(strcmp("I", buffer) == 0  && zahl9!=111 && zahl9!=120)
		 {
		   zahl9 = 120; 
		 }
		   
		 ablaufzahl = 2;
		   
	 }
		
		
	 //Überprüfung ob Spieler 1 Tic Tac Toe hat
	 if (ablaufzahl==2)
	 {
			 
		 if (zahl1==120 && zahl2==120 && zahl3==120)
		 {
		   ablaufzahl = 3;
		 }
		   
		 if (zahl4==120 && zahl5==120 && zahl6==120)
		 {
		   ablaufzahl = 3;
		 }
		   
		 if (zahl7==120 && zahl8==120 && zahl9==120)
		 {
		   ablaufzahl = 3;
		 }
		  
		 if (zahl1==120 && zahl4==120 && zahl7==120)
		 {
		  ablaufzahl = 3;
		 }
		   
		 if (zahl2==120 && zahl5==120 && zahl8==120)
		 {
		   ablaufzahl = 3;  
		 }
		   
		 if (zahl3==120 && zahl6==120 && zahl9==120)
		 {
		   ablaufzahl = 3;  
		 }
		   
		 if (zahl1==120 && zahl5==120 && zahl9==120)
		 {
		   ablaufzahl = 3;
		 }
		   
		 if (zahl3==120 && zahl5==120 && zahl7==120)
		 {
		   ablaufzahl = 3; 
		 }
		   
		 ablaufzahl = 4;
	 }
	   
		   
	 //Wenn Spieler 1 Tic Tac Toe hat, kommt die Winner-Meldung
	 if (ablaufzahl==3) 
	 {
		 printf("\n\n\nSpieler 1 hat das Spiel gewonnen");
   
		 printf("\n\n\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl1, zahl2, zahl3);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl4, zahl5, zahl6);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl7, zahl8, zahl9);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 
		 ablaufzahl = 7;
		   
	 }   
	  
	  
	 //Wenn Spieler 1 kein Tic Tac Toe hat, ist Spieler 2 an der Reihe
	 if (ablaufzahl==4)
	 {
					   
		 printf("\n\nSpieler 1: x\n");
		 printf("Spieler 2: o\n\n");  
		 
		 
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl1, zahl2, zahl3);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl4, zahl5, zahl6);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl7, zahl8, zahl9);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 
		 
		 printf("\n\nSpieler 2 ist an der Reihe.Geben sie bitte einen Buchstaben ein: ");
		 scanf("%s", buffer); // Einlesen der Daten, AdressOf-Operator überflüssig da buffer char * ist
		 fflush(stdin);
	
		 // Zuordnung der Werte
		 if(strcmp("A", buffer) == 0  && zahl1!=111 && zahl1!=120)
		 {
		   zahl1 = 111; // ASCII-Code für X speichern
		 }  
		 
		 if(strcmp("B", buffer) == 0  && zahl2!=111 && zahl2!=120)
		 {
		   zahl2 = 111; // ASCII-Code für X speichern
		 }
		   
		 if(strcmp("C", buffer) == 0  && zahl3!=111 && zahl3!=120)
		 {
		   zahl3 = 111; 
		 }
		   
		 if(strcmp("D", buffer) == 0  && zahl4!=111 && zahl4!=120)
		 {
		   zahl4 = 111;
		 }
		   
		 if(strcmp("E", buffer) == 0  && zahl5!=111 && zahl5!=120)
		 {
		   zahl5 = 111; 
		 }
		   
		 if(strcmp("F", buffer) == 0  && zahl6!=111 && zahl6!=120)
		 {
		   zahl6 = 111; 
		 } 
		 
		 if(strcmp("G", buffer) == 0  && zahl7!=111 && zahl7!=120)
		 {
		   zahl7 = 111;   
		 }		   
		 
		 if(strcmp("H", buffer) == 0  && zahl8!=111 && zahl8!=120)
		 {
		   zahl8 = 111; 
		 }
		 
		 if(strcmp("I", buffer) == 0  && zahl9!=111 && zahl9!=120)
		 {
		   zahl9 = 111; 
		 }
		  
		 ablaufzahl = 5;
		   
	 }
		   
		   
	 //Überprüfung ob Spieler 2 Tic Tac Toe hat
	 if (ablaufzahl==5)
	 {
					   
		 if (zahl1==111 && zahl2==111 && zahl3==111)
		 {
		   ablaufzahl = 6;
		 }
		   
		 if (zahl4==111 && zahl5==111 && zahl6==111)
		 {  
		   ablaufzahl = 6;
		 }  
		 if (zahl7==111 && zahl8==111 && zahl9==111)
		 {  
		   ablaufzahl = 6;
		 }  
		 
		 if (zahl1==111 && zahl4==111 && zahl7==111)
		 {
		   ablaufzahl = 6;
		 }  
		 if (zahl2==111 && zahl5==111 && zahl8==111)
		 {
		   ablaufzahl = 6;  
		 }  
		 
		 if (zahl3==111 && zahl6==111 && zahl9==111)
		 {
		   ablaufzahl = 6;  
		 }  
		 
		 if (zahl1==111 && zahl5==111 && zahl9==111)
		 {
		   ablaufzahl = 6;
		 }  
		 
		 if (zahl3==111 && zahl5==111 && zahl7==111)
		 {
		   ablaufzahl = 6; 
		 }
		 
		 ablaufzahl = 1;  
	 }

	 //Wenn Spieler 2 Tic Tac Toe hat, kommt die Winner-Meldung
	 if (ablaufzahl==6) 
	 {
						
	   printf("\n\n\nSpieler 2 hat das Spiel gewonnen");
	   
		 printf("\n\n\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl1, zahl2, zahl3);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl4, zahl5, zahl6);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
		 printf("\n|	   |	   |	   |");
		 printf("\n|   %c   |   %c   |   %c   |", zahl7, zahl8, zahl9);
		 printf("\n|	   |	   |	   |");
		 printf("\n ------- ------- ------- ");
	   
	   ablaufzahl=7;
	   
	 }
	 
	 
	 //Abfrage nach einem weiteren Spiel
	 if (ablaufzahl==7)
	 {
					   
		 printf("\n\n\nWollen Sie noch einmal Tic Tac Toe spielen?");
		 
		 printf("\n\nDruecken Sie folgende Tasten");
		 printf("\n1 fuer Ja");
		 printf("\n2 fuer Nein");
		 
		 printf("\n\nIhre Wahl bitte: ");
		 scanf("%i", &ablaufzahl);
		 fflush(stdin);
		 
	 }
	 
	 
}
	 getchar();
	 
}
 
mein programm läuft nun fehlerlos. ihr müsst nicht mehr antworten. danke für die vielen hilfen. ihr habt mir sehr geholfen.

thx for help

von mir aus --> closed
 
Zurück