Chciałbym się poradzić Was w dwóch sprawach. Po pierwsze prosiłbym o ocenę tego kodu, czy nie jest zbyt chaotyczny i czy nie ma w nim żadnych błędów wynikających z mojej strony. A drugie pytanie, chciałbym się podardzić Was w sprawie sztucznej inteligencji dotyczącej gry w kółko krzyżyk komputera...
Opis:
Kółko krzyżyk, to w tym przypadku gra między komputerem, a użytkownikiem.
Chciałbym aby komputer na ocenie ruchów potrafił wybrać najlepszą pozycje...
Prosił bym o jakieś przykładowe akrtykóły albo projekty.
#include <iostream>
using namespace std;
void plansza ( char tablica[], int rozmiar ){
system("cls");
for ( int i=0 ; i<rozmiar ; i++ ){
cout << tablica[i];
if ( ((i+1) % 3) == 0 ) cout << endl;
}
}
void tablica_default ( char tablica[], int rozmiar ){
for ( int i=0 ; i<rozmiar ; i++ ){
tablica[i]='-';
}
plansza ( tablica, rozmiar );
}
void ruch ( int gracz, int wybor, char plansza[], int &player ){
if ( gracz==1 ){
plansza[wybor-1]='x';
player++;
}
if ( gracz==2 ){
plansza[wybor-1]='o';
player--;
}
}
int wybor ( char plansza[] ){
bool pole=true;
int wybor;
while ( pole != false ){
cout << "Wybor: "; cin >> wybor;
if ( plansza[wybor-1] != '-' ) pole = true;
else pole = false;
}
return wybor;
}
int sedzia ( char plansza[], int rozmiar ){
for ( int i=0 ; i<rozmiar; i++ ){
if (i%3==0 && plansza[i]=='x' && plansza[i+1]=='x' && plansza[i+2]=='x') return 1;
if ( i<3 && plansza[i]=='x' && plansza[i+3]=='x' && plansza[i+6]=='x' ) return 1;
if ( ( i==0 && plansza[i]=='x' && plansza[i+4]=='x' && plansza [i+8]=='x' ) ||
( i==2 && plansza[i]=='x' && plansza[i+2]=='x' && plansza[i+4]=='x' ) ) return 1;
if (i%3==0 && plansza[i]=='o' && plansza[i+1]=='o' && plansza[i+2]=='o') return 2;
if ( i<3 && plansza[i]=='o' && plansza[i+3]=='o' && plansza[i+6]=='o' ) return 2;
if ( ( i==0 && plansza[i]=='o' && plansza[i+4]=='o' && plansza [i+8]=='o' ) ||
( i==2 && plansza[i]=='o' && plansza[i+2]=='o' && plansza[i+4]=='o' ) ) return 2;
}
return 0;
}
int main(){
int rozmiar = 9, player=1, krok=0;
char tablica[rozmiar];
tablica_default( tablica, rozmiar );
do{
krok++;
ruch ( player, wybor( tablica ), tablica, player );
plansza ( tablica, rozmiar );
}while ( ( sedzia ( tablica, rozmiar ) == 0 ) && (krok <=8) );
system("cls");
cout << "\n\n**** Gracz: " << sedzia( tablica, rozmiar ) << " wygrywa rozgrywke, GRATULACJE ****\n\n\n\n";
system("pause");
}