Taka chwila dla debila ;]
#include<iostream> #include<string> #include<sstream> using namespace std; string mapa="_______\n|1|2|3|\n|4|5|6|\n|7|8|9|\n-------"; bool tab[9]={false}; int playerArr[9]; void Ruch( bool player1) { int pole; cout<<"\nPodaj pole: "; cin>>pole; if(tab[pole-1]==false) { char znak; if(player1) { playerArr[pole-1]=1; tab[pole-1]=true; znak='x'; } else { playerArr[pole-1]=0; tab[pole-1]=true; znak='o'; } stringstream ss; ss<<pole; string miejsce; ss>>miejsce; int pos=mapa.find(miejsce); mapa[pos]=znak; } else {//zajete jeszce raz probuje Ruch(player1); } } bool Sprawdz(); void Wygrana(); bool ActualPlayer=0; int main() { for(int a=0;a<9;a++){playerArr[a]=-1;} cout<<mapa; while(1) { ActualPlayer=!ActualPlayer; Ruch(ActualPlayer); cout<<mapa; if(Sprawdz())break; } system("pause"); } bool Sprawdz() { if(( playerArr[0]==0 &&playerArr[4]==0 &&playerArr[8]==0) || ( playerArr[0]==1 &&playerArr[4]==1 &&playerArr[8]==1) || ( playerArr[2]==0 &&playerArr[4]==0 &&playerArr[6]==0) || ( playerArr[2]==1 &&playerArr[4]==1 &&playerArr[6]==1)) { Wygrana(); return true; } //dla rzedow int pos=0; for(int b=0;b<2;b++) { for(int a=0;a<3;a++) { if( playerArr[pos]==b &&playerArr[pos+1]==b &&playerArr[pos+2]==b) { Wygrana(); return true; } pos+=3; } pos=0; } //dla kolumn pos=0; for(int b=0;b<2;b++) { for(int a=0;a<3;a++) { if( playerArr[pos]==b &&playerArr[pos+3]==b &&playerArr[pos+6]==b) { Wygrana(); return true; } pos+=1; } pos=0; } return false; } //wygrana void Wygrana() { cout<<"\nKoniec Gry! Wygral gracz:"; if(ActualPlayer)cout<<"1"; else cout<<"2"; }
Prosta wersja gry kółkoVSkrzyżyk. Aby zrozumieć program potrzeba znać podstawowe operacje+funkcje+tablice.
Jak ktoś czegoś nie rozumie pytać.
Jak coś o tablicach krótko można poczytać tu:
http://www.warp.nazwa.pl/Warp_strona/cc … .php?id=17
od strony 41.
Offline