Ergebnis 1 bis 14 von 14
  1. #1
    Informationstechnologe Avatar von prophet550
    Registriert seit
    Feb 2009
    Ort
    Wien
    Beiträge
    208

    Standard TicTacToe - C#

    Hallo hab ne frage und zwar würde ich gern ein tic tac toe spiel in c# basteln... hat jemand nen link zu nem tut oder so ?

    danke

  2. #2
    - Avatar von Boesmann
    Registriert seit
    Feb 2006
    Ort
    Bremerhaven
    Beiträge
    3.501

    Standard Re: TicTacToe - C#

    Also möchtest du es eher irgendwo abschreiben, oder?

  3. #3
    Informationstechnologe

    (Threadstarter)

    Avatar von prophet550
    Registriert seit
    Feb 2009
    Ort
    Wien
    Beiträge
    208

    Standard Re: TicTacToe - C#

    Zitat Zitat von Boesmann Beitrag anzeigen
    Also möchtest du es eher irgendwo abschreiben, oder?
    nicht umbedingt, ich hätte nur gern sowas wie ne vorlage. ich möchte es ja schließlich auch verstehen..

  4. #4
    \o/ Avatar von sumisumi
    Registriert seit
    Jan 2008
    Beiträge
    4.039

    Standard Re: TicTacToe - C#


  5. #5
    Informationstechnologe

    (Threadstarter)

    Avatar von prophet550
    Registriert seit
    Feb 2009
    Ort
    Wien
    Beiträge
    208

    Standard Re: TicTacToe - C#

    Zitat Zitat von sumisumi Beitrag anzeigen
    sehr witzig. nein ein paar tipps zum schreiben des codes..was man so braucht ..

  6. #6

  7. #7
    Informationstechnologe

    (Threadstarter)

    Avatar von prophet550
    Registriert seit
    Feb 2009
    Ort
    Wien
    Beiträge
    208

    Standard Re: TicTacToe - C#

    oh dankeschön!
    der erste link war schrott aber der 2te hat mir total geholfen danke!

  8. #8
    Mitglied Avatar von usagichan
    Registriert seit
    Nov 2008
    Ort
    Mondpalast
    Beiträge
    2.406

    Standard Re: TicTacToe - C#

    Für TicTacToe brauchst du nicht gleich einen Minimax Algorithmus anwerfen.

    Diese einfache Strategie reicht bereits, um einen optimal spielenden Computergegner zu bekommen.

  9. #9
    Mitglied Avatar von Abby
    Registriert seit
    Jan 2005
    Beiträge
    885

    Standard Re: TicTacToe - C#

    Zitat Zitat von usagichan Beitrag anzeigen
    Für TicTacToe brauchst du nicht gleich einen Minimax Algorithmus anwerfen.
    Mein erstes 4 Gewinnt Spiel war sogar noch einfacher aufgebaut.

    1. Mensch setzt den ersten Stein
    2. Computer wird zufällig einen Stein

    Immer wenn der Computer dran ist, läuft es folgendermaßen:

    1. Computer prüft, ob er gewinnen kann
    2. Sollte die erste Möglichkeit nicht zutreffen, prüft der Computer, ob Mensch gewinnen kann und verhindert dies mit einer 90%igen Wahrscheinlichkeit
    3. Sollte 2 nicht zutreffen, sucht der Computer, ob der Mensch bereits 2 Steine in einer Reihe hat und macht die Kombination zu 50% kaputt.
    4. Sollte Bedingung 3 nicht zutreffen, prüft der PC, ob er bereits 2 Steine in einer Reihe hat und tut den dritten drauf.
    5. Sollte 4 nicht zu treffen, sucht der Computer sich einen Stein, von ihm. Sollte der bereits "zugebaut" sein, oder ungünstig liegen, wird zufällig ein anderer irgendwo platziert.

  10. #10
    Mitglied Avatar von forflo
    Registriert seit
    Nov 2008
    Beiträge
    147

    Standard Re: TicTacToe - C#

    Hier bitteschön

    ...zugegeben, der Code ist grausam formatiert, aber was soll man Anderes machen wenn man den "mal eben so" hinkotzt...

    Code:
    #include <stdio.h>
    #include <string.h>
    #include <windows.h>
    
    char spiel1[30]="+---+---+---+\n|   |   |   |";/*16,20,25*/
    char spiel2[30]="\n+---+---+---+\n|   |   |   |";/*17,21,25*/
    char spiel3[45]="\n+---+---+---+\n|   |   |   |\n+---+---+---+";/*17,21,25*/
    
    void print_array(int abc[][3]){
        int a,b;
        for(a=0;a<=2;a++){
            for(b=0;b<=2;b++){
                printf("[ %i ]",abc[a][b]);    
            }    
            printf("\n");
        }    
    }
    
    void print_spielfeld(void){
        printf("%s",spiel1);   
        printf("%s",spiel2);
        printf("%s",spiel3); 
        printf("\n\n");
    }
    
    int spielende(int abc[][3]){
        int a;
        for(a=0;a<=2;a++){
            if(abc[a][0]==1 && abc[a][1]==1 && abc[a][2]==1){
                return 1;
                
            }
        }
        for(a=0;a<=2;a++){
            if(abc[0][a]==1 && abc[1][a]==1 && abc[2][a]==1){
                return 1;
            }   
        }
        
        if(abc[0][0]==1 && abc[1][1]==1 && abc[2][2]==1 || 
           abc[0][2]==1 && abc[1][1]==1 && abc[2][0]==1)  {
            return 1;
        }   
        
        for(a=0;a<=2;a++){
            if(abc[a][0]==0 && abc[a][1]==0 && abc[a][2]==0){
                return 0;
            }
        }
        for(a=0;a<=2;a++){
            if(abc[0][a]==0 && abc[1][a]==0 && abc[2][a]==0){
                return 0;
            }   
        }
        
        if(abc[0][0]==0 && abc[1][1]==0 && abc[2][2]==0 || 
           abc[0][2]==0 && abc[1][1]==0 && abc[2][0]==0)  {
            return 0;
        } 
        
        return 2;
    }
    
    
    void change_spielfeld(int abc[][3],int z,int s,int c){
        char sur;
        system("cls");
        
        if (c==1){
            sur='X';
        } else {
            sur='0';   
        }
        
        switch(z) {
            case 1:
                
                switch(s){
                    case 1:
                        spiel1[16]=sur;
                        if (c==1){
                            abc[0][0]=1;
                        } else {
                            abc[0][0]=0; 
                        }
                        break;
                    case 2:
                        spiel1[20]=sur;
                        if (c==1){
                            abc[0][1]=1;
                        } else {
                            abc[0][1]=0; 
                        }
                        break;
                    case 3:
                        spiel1[24]=sur;
                        if (c==1){
                            abc[0][2]=1;
                        } else {
                            abc[0][2]=0; 
                        }
                        break;
                }
                break;
                
            case 2:
                
                switch(s){
                    case 1:
                        spiel2[17]=sur;
                        if (c==1){
                            abc[1][0]=1;
                        } else {
                            abc[1][0]=0; 
                        }
                        break;
                    case 2:
                        spiel2[21]=sur;
                        if (c==1){
                            abc[1][1]=1;
                        } else {
                            abc[1][1]=0; 
                        }
                        break;
                    case 3:
                        spiel2[25]=sur;
                        if (c==1){
                            abc[1][2]=1;
                        } else {
                            abc[1][2]=0; 
                        }
                        break;
                }   
                break;
                
            case 3:
                
                switch(s){
                    case 1:
                        spiel3[17]=sur;
                        if (c==1){
                            abc[2][0]=1;
                        } else {
                            abc[2][0]=0; 
                        }
                        break;
                    case 2:
                        spiel3[21]=sur;
                        if (c==1){
                            abc[2][1]=1;
                        } else {
                            abc[2][1]=0; 
                        }
                        break;
                    case 3:
                        spiel3[25]=sur;
                        if (c==1){
                            abc[2][2]=1;
                        } else {
                            abc[2][2]=0; 
                        }
                        break;
                }
                break;
        }
        print_spielfeld();
    }
    
    int main(void){
        int z,s,n=0,durch=0,stat=0,zz=0;
        int abc[3][3];
        int a,b;
        
        for(a=0;a<=2;a++){
            for(b=0;b<=2;b++){
                abc[a][b]=2;
            }    
        }
        print_spielfeld();
        do{
            print_array(abc);
            printf("Zeile(1-3): ");
            scanf("%i",&z);
            printf("\nSpalte(1-3): ");
            scanf("%i",&s);
            
            change_spielfeld(abc,z,s,zz);
            a=spielende(abc);
            if (a!=2){
                printf("Gratulation\nDer Spieler mit dem Zeichen %c hat gewonnen!",(a==1)?'X':'0'); 
                Sleep(10000);
                return 1;
            }
            
            if(zz==0){
                zz=1;    
            } else {
                zz=0;
            }
            durch++;
            
        } while(durch < 9 && stat==0);
        
        printf("\nLeider hat keiner von beiden gewonnen\n");
        
        return 1;
    }

  11. #11
    Mitglied Avatar von forflo
    Registriert seit
    Nov 2008
    Beiträge
    147

    Standard Re: TicTacToe - C#

    Anmerkung zum vorherigen Post.

    Dies ist KEIN C#
    sondern ANSI C Code.

    Dieser soll dir einfach nur meine Lösung aufzeigen, und dir eine Art Stütze bieten, an denen du dich mit deinen zitternden Anfängerfingern festklammern kannst ...
    Übrigens ist keine KI implementiert. Du sollst ja auch nicht alles rauskopieren...

    Viel Spaß

  12. #12
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    72

    Standard Re: TicTacToe - C#

    Auch wenn der Thread etwas alt ist, hier ein Tutorial:
    http://tuts4you.de/component/content...rial-tictactoe

    sg

  13. #13
    Brain-Progger Avatar von Yoshi Party
    Registriert seit
    Apr 2006
    Beiträge
    3.493

    Question Re: TicTacToe - C#

    Zitat Zitat von Jonny132 Beitrag anzeigen
    Auch wenn der Thread etwas alt ist, hier ein Tutorial:
    http://tuts4you.de/component/content...rial-tictactoe

    sg
    Helfer-Syndrom?

  14. #14
    Mitglied Avatar von user710
    Registriert seit
    May 2009
    Beiträge
    135

    Standard Re: TicTacToe - C#

    Zitat Zitat von Yoshi Party Beitrag anzeigen
    Helfer-Syndrom?
    Wohl eher Autor des Tutorials Er hat sich anscheined Mühe gemacht, also hat er auch das Recht, das Tutorial zu verbreiten

  15.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •