Ostatnio już pisałem tutaj o tym problemie ale nikt mi poprawnie nie odpowiedział. Problem polega na tym że w grze kółko i krzyżyk (na razie bez wygrywania) po zmianie 8 punktów, dziewiąty ani drgnie, a guzik do resetu który ustawiłem wcześniej również nie działa. Podejrzewam przez to że po prostu jest jakiś problem z opuszczeniem pętli losującej odpowiedź[ruch] komputera.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include <time.h>
#include <iostream>
#include <conio.h>
#include <string>
int xo[] = {2,2,2,2,2,2,2,2,2};
int zt(int a)
{
xo[0] = a;
xo[1] = a;
xo[2] = a;
xo[3] = a;
xo[4] = a;
xo[5] = a;
xo[6] = a;
xo[7] = a;
xo[8] = a;
}
int cls()
{
system("cls");
}
int main()
{
srand( time( NULL ) );
bool q = false;
int r;
int w;
int e;
int c;
int y;
bool t=false;
std::string b;
bool a = false;
std::cout << "Menu:" <<std::endl;
while(a==false)
{
//<--
cls();
e=0;
if(xo[0]==2) std::cout << "@|";
if(xo[0]==1) std::cout << "X|";
if(xo[0]==0) std::cout << "O|";
if(xo[1]==2) std::cout << "@|";
if(xo[1]==1) std::cout << "X|";
if(xo[1]==0) std::cout << "O|";
if(xo[2]==2) std::cout << "@" << std::endl;
if(xo[2]==1) std::cout << "X" << std::endl;
if(xo[2]==0) std::cout << "O" << std::endl;
if(xo[3]==2) std::cout << "@|";
if(xo[3]==1) std::cout << "X|";
if(xo[3]==0) std::cout << "O|";
if(xo[4]==2) std::cout << "@|";
if(xo[4]==1) std::cout << "X|";
if(xo[4]==0) std::cout << "O|";
if(xo[5]==2) std::cout << "@" <<std::endl;
if(xo[5]==1) std::cout << "X" <<std::endl;
if(xo[5]==0) std::cout << "O" <<std::endl;
if(xo[6]==2) std::cout << "@|";
if(xo[6]==1) std::cout << "X|";
if(xo[6]==0) std::cout << "O|";
if(xo[7]==2) std::cout << "@|";
if(xo[7]==1) std::cout << "X|";
if(xo[7]==0) std::cout << "O|";
if(xo[8]==2) std::cout << "@" <<std::endl;
if(xo[8]==1) std::cout << "X" <<std::endl;
if(xo[8]==0) std::cout << "O" <<std::endl;
while(q==false){
w=getch();
if(w==51 && xo[8]!=0 && e==0 && xo[8]!=1)
{xo[8]=1;
e = 1;
Sleep(10);
q=true;}
if(w==50 && xo[7]!=0 && e==0 && xo[7]!=1)
{xo[7]=1;
e = 1;
Sleep(10);
q=true;}
if(w==49 && xo[6]!=0 && e==0 && xo[6]!=1)
{xo[6]=1;
e = 1;
Sleep(10);
q=true;}
if(w==54 && xo[5]!=0 && e==0 && xo[5]!=1)
{xo[5]=1;
e = 1;
Sleep(10);
q=true;}
if(w==53 && xo[4]!=0 && e==0 && xo[4]!=1)
{xo[4]=1;
e = 1;
Sleep(10);
q=true;}
if(w==52 && xo[3]!=0 && e==0 && xo[3]!=1)
{xo[3]=1;
e = 1;
Sleep(10);
q=true;}
if(w==57 && xo[2]!=0 && e==0 && xo[2]!=1)
{xo[2]=1;
e = 1;
Sleep(10);
q=true;}
if(w==56 && xo[1]!=0 && e==0 && xo[1]!=1)
{xo[1]=1;
e = 1;
Sleep(10);
q=true;}
if(w==55 && xo[0]!=0 && e==0 && xo[0]!=1)
{xo[0]=1;
e = 1;
Sleep(10);
q=true;}
}
q=false;
if(w==114)
{
zt(2);
}
while(t==false) //<--
{
r = ( rand() % 9 ) + 0;
if(r==0 && xo[0]!=2){
continue;
}
if(r==1 && xo[1]!=2){
continue;
}
if(r==2 && xo[2]!=2){
continue;
}
if(r==3 && xo[3]!=2){
continue;
}
if(r==4 && xo[4]!=2){
continue;
}
if(r==5 && xo[5]!=2){
continue;
}
if(r==6 && xo[6]!=2){
continue;
}
if(r==7 && xo[7]!=2){
continue;
}
if(r==8 && xo[8]!=2){
continue;
}
if(r==0 && xo[0]==2){
xo[0]=0;
t=true;
}
if(r==1 && xo[1]==2){
xo[1]=0;
t=true;
}
if(r==2 && xo[2]==2){
xo[2]=0;
t=true;
}
if(r==3 && xo[3]==2){
xo[3]=0;
t=true;
}
if(r==4 && xo[4]==2){
xo[4]=0;
t=true;
}
if(r==5 && xo[5]==2){
xo[5]=0;
t=true;
}
if(r==6 && xo[6]==2){
xo[6]=0;
t=true;
}
if(r==7 && xo[7]==2){
xo[7]=0;
t=true;
}
if(r==8 && xo[8]==2){
xo[8]=0;
t=true;
} //<--
}
t=false;
}
return 0;
}