Jump to content

TicTacToe C-Programm schreiben


Tr!Xx

Empfohlene Beiträge

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...