Tr!Xx Geschrieben 25. Juni 2007 Melden Share Geschrieben 25. Juni 2007 Hallo Jungs, Ich muss in der Schule ein C-Programm schreiben.. Jetzt hab ich mal angefangen und hänge an einem ganz großen Schritt. Das C-Programm soll Mensch gegen Mensch gespielt werden. Mein Problem ist, wie bringe ich dem Compiler bei wo er Kreuz und Kreis hinsetzten soll. Also die Funktion Zug... Das habe ich bereits geschrieben: #include<stdio.h>#include <conio.h> // für clrscr, gotoxy, clreol void welcome(void); void zeigespielfeld(void); void neuesspiel(void); void tschuess(void); int feld[3][3]; main(void) { char wahl = '\0'; welcome(); do { neuesspiel(); zeigespielfeld(); fflush(stdin); printf("\n\n\nWeiterspielen ??? (j/n) :"); scanf("%c",&wahl); } while(wahl=='j'); tschuess(); fflush(stdin); return 0; } void welcome(void) //Funktionsaufruf der Begrüssung { clrscr (); //löscht den Bildschirm noch vor der Ausgabe printf("*******************************\n"); printf("* T I C T A C T O E *\n"); printf("*******************************\n"); printf("\n\npress any key"); getch(); return; } void zeigespielfeld(void) { int xstart = 10, ystart = 2; // Einrahmungssymbole aus Zeichensatz der DOS-Box: #define loe 201 // linke obere Ecke #define roe 187 // rechte obere Ecke #define lue 200 // linke untere Ecke #define rue 188 // rechte untere Ecke #define azu 203 // Abzweigung nach unten #define azo 202 // Abzweigung nach oben #define azl 185 // Abzweigung nach links #define azr 204 // Abzweigung nach rechts #define krz 206 // Kreuzung #define hor 205 // horizontal #define ver 186 // vertikal // Spielfeld besteht aus 9 * 9 Zeichen, die Rahmensymbole und Beschriftungen // darin sind fest, sie lassen ein Feld von 3 * 3 variablen Zeichen frei. // Das Feld beginnt bei xstart (links), ystart(oben), // die variablen Positionen sind bei xstart+2, xstart+4, xstart+6 bzw. // ystart+2, ystart+4, ystart+6 const char spielfeld[8][8] = {{' ','A',' ','B',' ','C',' '}, {' ',loe,hor,azu,hor,azu,hor,roe}, {'1',ver,' ',ver,' ',ver,' ',ver}, {' ',azr,hor,krz,hor,krz,hor,azl}, {'2',ver,' ',ver,' ',ver,' ',ver}, {' ',azr,hor,krz,hor,krz,hor,azl}, {'3',ver,' ',ver,' ',ver,' ',ver}, {' ',lue,hor,azo,hor,azo,hor,rue} }; int x,xs,y,ys; // Festen Teil zeigen for (ys=0; ys<8;ys++) for (xs=0; xs<8;xs++) { gotoxy(xs+xstart,ys+ystart); printf ("%c",spielfeld[ys][xs]); } // Variablen Teil zeigen for (x=0; x<3;x++) for (y=0; y<3;y++) { gotoxy(xstart+2+2*x, ystart+2+2*y); if (feld[x][y] == 0) printf(" "); else if (feld[x][y] == 1) printf("X"); else if (feld[x][y] == 2) printf("O"); } getch(); } void neuesspiel(void) { int feld[3][3] = { (' ',' ',' '), (' ',' ',' '), (' ',' ',' ') }; clrscr(); } void tschuess(void) //Funktionsaufruf von Tschüss { clrscr (); //löscht den Bildschirm noch vor der Ausgabe printf("\nTschuess...\n"), printf("\npress any key"); getch(); return; } Mein Problem ist das ich nur den Zug schreiben muss. Die Gewinnerermittlung übernimmt ein Anderer. Als Anhang hab ich euch die fertige vom Lehrer ausgegebene Exe-Datei angehängt: Programm Ein Teil des Codes haben wir vorgeben bekommen: hier Die Beschreibung zum Programm gibts hier Vielen Dank für eure Hilfe im Voraus. Mfg Tr!Xx Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
KSM2002 Geschrieben 26. Juni 2007 Melden Share Geschrieben 26. Juni 2007 das kannste genau so regeln, wie auch der Spielfeldaufbau statt gefunden hat. Definiere dir Kreis und X. Die Positionierung kannst du dir fast 1 zu 1 vom Spielfeldaufbau "stibizen"; musst eben nur die dortigen "Leerstrings" beschreiben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tr!Xx Geschrieben 26. Juni 2007 Autor Melden Share Geschrieben 26. Juni 2007 Das blöde ist nur das wir den Aufbau vorgegeben bekommen haben. Hab ich also nicht selbst geschrieben.... Mfg Tr!Xx Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
imh0 Geschrieben 26. Juni 2007 Melden Share Geschrieben 26. Juni 2007 Wenn ich das nach kurzem Überfliegen richtig verstehe, musst du dich doch noch nicht mal groß um irgendwas kümmern. Du musst nur feld[][] mit Werten füttern. Bei einer '0' bleibt das Feld leer, bei einer '1' kommt ein X und bei einer '2' ein O. Sorry, nimms mir nicht krumm, aber ich habe das Gefühl du überschätzt dich etwas, wenn man den anderen Thread noch liest. Du solltest dich wirklich hinsetzen und es selber versuchen. Das hier ist keine schwere Aufgabe. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.