Witam wszystkich. Piszę grę kółko-krzyżyk o rozmiarach planszy 10x10, 5 skreslen ma wygrywać. Mam z kodem dwa problemy-po pierwsze gdy wygrywa kólko to program sie wylancza, natomiast gry wygrywa krzyzyk to nic sie nie dzieje. Byłbym wdzieczny za rady i wskazówki jak usprawnic moj program
Oto kod:
#include<stdio.h>
#include<stdlib.h>
char znak;
char pole[10][10];
int x,y,liczba,licznik=0;
using namespace std;
void wyswietl()
{
printf (" AXIS X\n");
printf (" 0 1 2 3 4 5 6 7 8 9\n");
printf (" -----------------------------\n");
printf (" 0 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][0], pole[1][0], pole[2][0], pole[3][0], pole[4][0], pole[5][0], pole[6][0], pole[7][0], pole[8][0], pole[9][0]);
printf (" -----------------------------\n");
printf (" 1 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][1], pole[1][1], pole[2][1], pole[3][1], pole[4][1], pole[5][1], pole[6][1], pole[7][1], pole[8][1], pole[9][1]);
printf (" -----------------------------\n");
printf (" 2 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][2], pole[1][2], pole[2][2], pole[3][2], pole[4][2], pole[5][2], pole[6][2], pole[7][2], pole[8][2], pole[9][2]);
printf (" -----------------------------\n");
printf (" 3 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][3], pole[1][3], pole[2][3], pole[3][3], pole[4][3], pole[5][3], pole[6][3], pole[7][3], pole[8][3], pole[9][3]);
printf (" -----------------------------\n");
printf (" 4 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][4], pole[1][4], pole[2][4], pole[3][4], pole[4][4], pole[5][4], pole[6][4], pole[7][4], pole[8][4], pole[9][4]);
printf (" AXIS Y -----------------------------\n");
printf (" 5 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][5], pole[1][5], pole[2][5], pole[3][5], pole[4][5], pole[5][5], pole[6][5], pole[7][5], pole[8][5], pole[9][5]);
printf (" -----------------------------\n");
printf (" 6 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][6], pole[1][6], pole[2][6], pole[3][6], pole[4][6], pole[5][6], pole[6][6], pole[7][6], pole[8][6], pole[9][6]);
printf (" -----------------------------\n");
printf (" 7 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][7], pole[1][7], pole[2][7], pole[3][7], pole[4][7], pole[5][7], pole[6][7], pole[7][7], pole[8][7], pole[9][7]);
printf (" -----------------------------\n");
printf (" 8 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][8], pole[1][8], pole[2][8], pole[3][8], pole[4][8], pole[5][8], pole[6][8], pole[7][8], pole[8][8], pole[9][8]);
printf (" -----------------------------\n");
printf (" 9 |%c |%c |%c |%c |%c |%c |%c |%c |%c |%c |\n", pole[0][9], pole[1][9], pole[2][9], pole[3][9], pole[4][9], pole[5][9], pole[6][9], pole[7][9], pole[8][9], pole[9][9]);
printf (" -----------------------------\n");
}
void czyszczenie()
{
for(int j=0;j<=9;j++)
for(x=0; x<=9; x++) pole[x][j]=' ';
}
bool sprawdzenie()
{
int licz=0;
for(int j=0;j<=9;j++)
for(int i=0;i<=9;i++)
{
if(pole[j][i]=='O')
if(licz<5)
if(pole[j][i+1]=='O')
licz++;
}
for(int j=0;j<=9;j++)
for(int i=0;i<=9;i++)
{
if(pole[i][j]=='O')
if(licz<5)
if(pole[i+1][j]=='O')
licz++;
}
for(int i=0, j=0;i<=9;i++,j++)
{
if(pole[j][i]=='O')
if(licz<5)
if(pole[j+1][i+1]=='O')
licz++;
}
for(int i=9, j=9;i<=0;i--,j--)
{
if(pole[j][i]=='O')
if(licz<5)
if(pole[j-1][i-1]=='O')
licz++;
}
if(licz==4)
return 0;
else return 1;
}
void gra(int nr)
{
printf(" Tic Tac Toe\n");
printf(" PLAYER 1: CIRCLE\n");
printf(" PLAYER 2: CROSS\n");
wyswietl();
printf(" PLAYER Move\n");
printf(" Give Coordinate:\n");
printf(" Give X:");
scanf("%d", &x);
printf(" Give Y:");
scanf("%d", &y);
if (pole[x][y]==' ')
{
pole[x][y]=znak;
licznik++;
}
else
{
printf("This Field Has Already Been Used, CHOOSE ANOTHER ONE.\n");
getchar();
if (liczba==1) liczba=2; else liczba=1;
getchar();
}
}
int main()
{
znak='O';
liczba=1;
czyszczenie();
do
{
gra(liczba);
system("cls");
if(liczba==1)
{
liczba=2;
znak='X';
}
else
{
liczba=1;
znak='O';
}
if (licznik==100) break;
}
while ( (sprawdzenie()));
printf(" Tic Tac Toe");
wyswietl();
if (!sprawdzenie())
{
if(liczba==1) liczba=2; else liczba=1;
printf(" PLAYER HAS WON !!!");
}
else printf("DRAW!");
getchar();
}