C Code / Tic tac toe



  • I habe in Linux begonnen zu programmieren und nun auf Windows umgstiegen (Dev-C)
    Warum 1) wird nun System ("clear") nicht mehr als gültig dargestellt. Was ist in Windows (Vista) anders einzutragen damit das klappt? (Der Bildschirm wird gelöscht)

    warum springt er jeweils nach den Abfragen wieder an die Hauptmenustelle zurück.. möchte ja nicht immer wieder mich durchklicken sondern spielen können.

    und wie kriege ich das eintragen (resp. der X und O) hin?

    /* Das Tic Tac Toe Programm */
    /* Datei: tictactoe.c */

    #include <stdio.h>
    #include <stdlib.h>

    //Initialisierungen von Methoden

    void hauptmenu(); //Hauptmenuaufruf
    void spielen(); //Ausgabe des Spiel
    void credit(); //Ausgabe von credit
    void spielart(); //Spielvariante (normal tic tac toe,...)
    void spielertypen(); //Human,random
    void output_field(); //Ausgabe des Spielfeldes
    void spielstart(); //wer mit welcher Form
    void set_mark(int player, int pos); //Spielermarkierung setzen
    void check_field(); //gibt es einen Gewinner?
    void game_again(); //nochmals spielen?

    char board [3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};

    int player=0; //0= Human 1=Random
    int pos;
    int gameende=0; //überprüfen ob spiel zu ende

    int main (void)
    { hauptmenu(); //Hauptmenu aufruf
    return 0;
    }
    void hauptmenu() {
    int a;

    do{
    system("clear");
    printf("TicTacToe\n");
    printf("==========\n");
    printf("1) Spielen\n");
    printf("2) Credits\n");
    printf("3) Beenden\n");

    printf("\n");
    printf("\n");
    printf("Ihre Eingabe:\n");

    scanf("%d",&a);
    do { } while (getchar() != '\n');
    switch (a){
    case 1:
    spielen();
    break;
    case 2:
    credit();
    break;
    case 3:
    system("clear");
    break;
    default:
    printf("Ungueltige Eingabe\n");
    }

    } while(a!=3);
    }

    void spielen () {
    int b;
    system("clr");
    printf("TicTacToe\n");
    printf("==========\n");
    printf("1) Spielart\n");
    printf("2) Spieltypen\n");

    printf("\n");
    printf("\n");
    printf("Ihre Eingabe:\n");
    scanf("%d",&b);
    do { } while (getchar() != '\n');
    switch (b){
    case 1:
    spielart();
    break;
    case 2:
    spielertypen();
    break;
    default:
    printf("Ungueltige Eingabe\n");
    }
    output_field();
    spielstart();

    }
    //Ausgabe der Creditzeilen
    void credit() {
    char b;
    system("clear");
    printf("\n");
    printf("\n");
    printf("\n");
    printf("Tic Tac Toe Version 0.4.0a \n");
    printf("Stand: 13.Juli 2009 \n");
    printf("Programmiert in C\n");
    printf("von Niklaus Rohrer\n");
    printf("\n");
    printf("\n");
    printf("\n");
    scanf("%c",&b);
    }

    //Auswahl der Spielart
    void spielart() {
    printf("TicTacToe (normal)\n");
    }
    //Auswahl der Spieltypen (noch nicht verstanden)
    void spielertypen(){
    }

    void output_field(){
    int i,j;
    system("clear");
    printf("TIC TAC TOE\n");
    printf("==============\n");
    printf("+---+---+---+\n");

    for (i=0;i<3;i++){
    for (j=0;j<3;j++){
    printf("+ ");
    printf("%d", board[i][j]);
    printf(" ");
    }
    printf("+\n");
    printf("+---+---+---+\n");
    }
    }

    void spielstart(){
    int frand = rand();
    frand =frand%2; //Coins Flip, wer beginnt!

    if(frand <1)
    {printf("Sie beginnen mit X\n");
    player=0;}
    else {printf("Random beginnen mit O\n");
    player=1;
    }

    set_mark(player, pos);
    }

    void set_mark(int player, int pos){
    char xoro;
    if (player==0){
    xoro='X';
    printf("Ihre gewünschte Position:\n");
    scanf("%d",&pos);
    while ((pos <1) || (pos >9))
    {printf("Ungültige Zahl, nochmals:\n");}
    }
    else {
    printf("Computer am Zug\n");
    xoro='O';
    int frand = rand();
    frand =frand%10; //Random
    if (frand<1) pos=1;
    else if (frand<2) pos=2;
    else if (frand<3) pos=3;
    else if (frand<4) pos=4;
    else if (frand<5) pos=5;
    else if (frand<6) pos=6;
    else if (frand<7) pos=7;
    else if (frand<8) pos=8;
    else pos=9;
    }
    printf("Random position: ");
    printf("%d",pos);
    printf("\n");

    }

    /*--------- bis hier alles ok -----------*/

    /*do
    {
    output_field();
    set_mark(player,pos);
    check_field();//gibt es einen gewinner?
    }
    while (gameende!=99);

    /*void check_field()
    { if (((board[0][0] == "X") && (board[0][1] == "X") &&
    (board[0][2] == "X")) ||
    ((board[1][0] == "X") && (board[1][1] == "X") &&
    (board[1][2] == "X")) ||
    ((board[2][0] == "X") && (board[2][1] == "X") &&
    (board[2][2] == "X")) ||
    ((board[0][0] == "X") && (board[1][0] == "X") &&
    (board[2][0] == "X")) ||
    ((board[0][1] == "X") && (board[1][1] == "X") &&
    (board[2][1] == "X")) ||
    ((board[0][2] == "X") && (board[1][2] == "X") &&
    (board[2][2] == "X")) ||
    ((board[0][0] == "X") && (board[1][1] == "X") &&
    (board[2][2] == "X")) ||
    ((board[2][0] == "X") && (board[1][1] == "X") &&
    (board[0][2] == "X")))
    { //X Spieler gewinnt
    gameende=99;
    }
    else if (((board[0][0] == "O") && (board[0][1] == "O") && (board[0][2]
    == "O")) ||
    ((board[1][0] == "O") && (board[1][1] == "O") &&
    (board[1][2] == "O")) ||
    ((board[2][0] == "O") && (board[2][1] == "O") &&
    (board[2][2] == "O")) ||
    ((board[0][0] == "O") && (board[1][0] == "O") &&
    (board[2][0] == "O")) ||
    ((board[0][1] == "O") && (board[1][1] == "O") &&
    (board[2][1] == "O")) ||
    ((board[0][2] == "O") && (board[1][2] == "O") &&
    (board[2][2] == "O")) ||
    ((board[0][0] == "O") && (board[1][1] == "O") &&
    (board[2][2] == "O")) ||
    ((board[2][0] == "O") && (board[1][1] == "O") &&
    (board[0][2] == "O")))
    {//o Spieler gewinnt
    gameende=99;
    }
    }

    switch (pos){
    case 1:
    if ((board[0][0]) = 1) {
    (board[0][0])= xoro;}//wird gesetzt wenn 1
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 2:
    if ((board[0][1]) = 2) {
    (board[0][1])= xoro;}//wird gesetzt wenn 2
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 3:
    if ((board[0][2]) = 3) {
    (board[0][2])= xoro;}//wird gesetzt wenn 3
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 4:
    if ((board[1][0]) = 4) {
    (board[1][0])= xoro; }//wird gesetzt wenn 4
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 5:
    if ((board[1][1]) = 5) {
    (board[1][1])= xoro; }//wird gesetzt wenn 5
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 6:
    if ((board[1][2]) = 6) {
    (board[1][2])= xoro;}//wird gesetzt wenn 6
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    break;
    case 7:
    if ((board[2][0]) = 7) {
    (board[2][0])= xoro;}//wird gesetzt wenn 7
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 8:
    if ((board[2][1]) = 😎 {
    (board[2][1])= xoro;}//wird gesetzt wenn 8
    vorhanden
    else //schon vorhanden, neue Eingabe
    break;
    case 9:
    if ((board[2][2]) = 9) {
    (board[2][2])= xoro;
    }//wird gesetzt wenn 9 vorhanden
    else //schon vorhanden, neue Eingabe
    break;

    player=1-player;
    default:
    printf("Ungueltige Eingabe\n");
    }
    else(printf("normals bitte, keine gültige Position");

    printf("Wurde gesetzt");

    }
    */



  • Registriert und kennt immernoch keine Cpp-Tags...



  • system("cls")


Anmelden zum Antworten