Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » TicTacToe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.07.2004, 19:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
int sieger(char *spielfeld){ //todo
    
return 0;
}

int feld_frei(char *spielfeld,int x){return spielfeld[x]==' ';}

void spielfeld_ausgeben(char *spielfeld){

    for(int i=0;i<3;++i){
        for(int j=0;j<3;++j)
            printf(" %c %c",spielfeld[j+i*3],j==2?'\n':'|');
        if(i<2)printf("---|---|---\n");
    }
    printf("\n\n");
        
}

int main(){
char eingabe;
char spielfeld[9]={' ',' ',' ',' ',' ',' ',' ',' ',' '};    
    
    for(int zug=0;zug<9&&!sieger(spielfeld);++zug){
    
        spielfeld_ausgeben(spielfeld);
        printf("Spieler %d !! Bitte machen sie Ihren Zug(0 fuer Spiel beenden)\n",1+zug%2);
        eingabe='x';
        while(!isdigit(eingabe)){
            printf("Geben Sie eine Zahl von 0 bis 9 ein. Keine schon besetzten Felder verwenden...");
            scanf("%c",&eingabe);
            if(eingabe!='0' && !feld_frei(spielfeld,eingabe-1-'0'))eingabe='x';
            fflush(stdin);
        }
        if(eingabe!='0')spielfeld[eingabe-1-'0']=zug%2?'O':'X';
        else break;
    }

    spielfeld_ausgeben(spielfeld);

}



zu schreiben ist die funktion die 1 zurückliefern soll wenn spieler 1 gewonnen hat 2 wenn spieler 2 gewonnen hat sonst 0...
so da viele leute golf hassen schlage ich vor wir spielen diesmal nach tokens.. die lösung mit den wenigsten tokens gewinnt... (für die die es nicht wissen token ist z.b. jeder befehl klammer auf semikolon usw...)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.07.2004, 11:31 Uhr
9ball




C++:
int sieger (char *spielfeld)
{
    int s;
    static int pos[][3] = {{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6},
                            {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}};
    for (s=0; s<8; s++)
    {
        if ((spielfeld[pos[s][0]] | spielfeld[pos[s][1]] | spielfeld[pos[s][2]]) == 'O')
            return 1;
        if ((spielfeld[pos[s][0]] | spielfeld[pos[s][1]] | spielfeld[pos[s][2]]) == 'X')
            return 2;
    }
    return 0;
}


--
one for all and all for one
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.07.2004, 14:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@9ball
schicke lösung...
die idee mit dem lookabtable hatte ich zwar auch aber das mit der veroderung ist schön elegant...gefällt mir
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: