Prosze o pomoc gra gomoku jez. C
creed
Witam wszystkich musze zrobic grę gomoku ( cos jak kółko krzyzyk tylko na planszy 15x15 i aby wygrac musi być ustawionych 5 znaków)
Poniższym kodem gdy włączam grę wszystko działa tylko że na planszy 5x5 w reszcie nic się nie dzieje chociaż ustawie 5 znaków,
proszę o pomoc gdzie robię błąd :)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <conio.h>
/* Funkcja czyszcąca planszę */
void wyczysc(char plansza[15][15])
{
int i, j;
for (i = 0; i<15; i++)
for (j = 0; j<15; j++)
plansza[i][j] = ' ';
}
/* Funkcja rysująca planszę na ekranie */
void wypisz(char plansza[15][15])
{
system("cls"); // czyśc ekran. Są szybsze sposoby czyszczenia, ale ten jest w miare uniwersalny
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[0][0], plansza[0][1], plansza[0][2], plansza[0][3], plansza[0][4], plansza[0][5], plansza[0][6], plansza[0][7], plansza[0][8], plansza[0][9], plansza[0][10], plansza[0][11], plansza[0][12], plansza[0][13], plansza[0][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[1][0], plansza[1][1], plansza[1][2], plansza[1][3], plansza[1][4], plansza[1][5], plansza[1][6], plansza[1][7], plansza[1][8], plansza[1][9], plansza[1][10], plansza[1][11], plansza[1][12], plansza[1][13], plansza[1][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[2][0], plansza[2][1], plansza[2][2], plansza[2][3], plansza[2][4], plansza[2][5], plansza[2][6], plansza[2][7], plansza[2][8], plansza[2][9], plansza[2][10], plansza[2][11], plansza[2][12], plansza[2][13], plansza[2][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[3][0], plansza[3][1], plansza[3][2], plansza[3][3], plansza[3][4], plansza[3][5], plansza[3][6], plansza[3][7], plansza[3][8], plansza[3][9], plansza[3][10], plansza[3][11], plansza[3][12], plansza[3][13], plansza[3][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[4][0], plansza[4][1], plansza[4][2], plansza[4][3], plansza[4][4], plansza[4][5], plansza[4][6], plansza[4][7], plansza[4][8], plansza[4][9], plansza[4][10], plansza[4][11], plansza[4][12], plansza[4][13], plansza[4][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[5][0], plansza[5][1], plansza[5][2], plansza[5][3], plansza[5][4], plansza[5][5], plansza[5][6], plansza[5][7], plansza[5][8], plansza[5][9], plansza[5][10], plansza[5][11], plansza[5][12], plansza[5][13], plansza[5][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[6][0], plansza[6][1], plansza[6][2], plansza[6][3], plansza[6][4], plansza[6][5], plansza[6][6], plansza[6][7], plansza[6][8], plansza[6][9], plansza[6][10], plansza[6][11], plansza[6][12], plansza[6][13], plansza[6][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[7][0], plansza[7][1], plansza[7][2], plansza[7][3], plansza[7][4], plansza[7][5], plansza[7][6], plansza[7][7], plansza[7][8], plansza[7][9], plansza[7][10], plansza[7][11], plansza[7][12], plansza[7][13], plansza[7][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[8][0], plansza[8][1], plansza[8][2], plansza[8][3], plansza[8][4], plansza[8][5], plansza[8][6], plansza[8][7], plansza[8][8], plansza[8][9], plansza[8][10], plansza[8][11], plansza[8][12], plansza[8][13], plansza[8][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[9][0], plansza[9][1], plansza[9][2], plansza[9][3], plansza[9][4], plansza[9][5], plansza[9][6], plansza[9][7], plansza[9][8], plansza[9][9], plansza[9][10], plansza[9][11], plansza[9][12], plansza[9][13], plansza[9][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[10][0], plansza[10][1], plansza[10][2], plansza[10][3], plansza[10][4], plansza[10][5], plansza[10][6], plansza[10][7], plansza[10][8], plansza[10][9], plansza[10][10], plansza[10][11], plansza[10][12], plansza[10][13], plansza[10][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[11][0], plansza[11][1], plansza[11][2], plansza[11][3], plansza[11][4], plansza[11][5], plansza[11][6], plansza[11][7], plansza[11][8], plansza[11][9], plansza[11][10], plansza[11][11], plansza[11][12], plansza[11][13], plansza[11][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[12][0], plansza[12][1], plansza[12][2], plansza[12][3], plansza[12][4], plansza[12][5], plansza[12][6], plansza[12][7], plansza[12][8], plansza[12][9], plansza[12][10], plansza[12][11], plansza[12][12], plansza[12][13], plansza[12][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[13][0], plansza[13][1], plansza[13][2], plansza[13][3], plansza[13][4], plansza[13][5], plansza[13][6], plansza[13][7], plansza[13][8], plansza[13][9], plansza[13][10], plansza[13][11], plansza[13][12], plansza[13][13], plansza[13][14]);
//printf("\n");
printf("[%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c][%c]\n", plansza[14][0], plansza[14][1], plansza[14][2], plansza[14][3], plansza[14][4], plansza[14][5], plansza[14][6], plansza[14][7], plansza[14][8], plansza[14][9], plansza[14][10], plansza[14][11], plansza[14][12], plansza[14][13], plansza[14][14]);
}
int pelna(char plansza[15][15])
{
int i, j;
for (i = 0; i<15; i++)
for (j = 0; j<15; j++)
if (plansza[i][j] == ' ')
return 0;
return 1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void ruch_gracza(char plansza[15][15])
{
unsigned int i = 15, j;
wypisz(plansza);
printf("\nPodaj wiersz i kolumne w ktorej chcesz wstawic krzyzyk\n");
while ((i>14) || (j>14) || (plansza[i][j] != ' '))
scanf_s("%u %u", &i, &j);
plansza[i][j] = 'x';
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
void ruch_komputera(char plansza[15][15])
{
unsigned int i = 15, j;
wypisz(plansza);
printf("\nPodaj wiersz i kolumne w ktorej chcesz wstawic kolko\n");
while ((i>14) || (j>14) || (plansza[i][j] != ' '))
scanf_s("%u %u", &i, &j);
plansza[i][j] = 'O';
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
char sprawdz(char plansza[15][15])
{
int i;
for (i = 0; i<15; i++)
{
if ((plansza[i][0] != ' ')
&& (plansza[i][0] == plansza[i][1])
&& (plansza[i][0] == plansza[i][2])
&& (plansza[i][0] == plansza[i][3])
&& (plansza[i][0] == plansza[i][4]))
return plansza[i][0];
if ((plansza[0][i] != ' ')
&& (plansza[0][i] == plansza[1][i])
&& (plansza[0][i] == plansza[2][i])
&& (plansza[0][i] == plansza[3][i])
&& (plansza[0][i] == plansza[4][i]))
return plansza[0][i];
} // for
if ((plansza[0][0] != ' ')
&& (plansza[0][0] == plansza[1][1])
&& (plansza[0][0] == plansza[2][2])
&& (plansza[0][0] == plansza[3][3])
&& (plansza[0][0] == plansza[4][4]))
return plansza[0][0];
if ((plansza[2][0] != ' ')
&& (plansza[2][0] == plansza[1][3])
&& (plansza[2][0] == plansza[2][2])
&& (plansza[2][0] == plansza[3][1])
&& (plansza[2][0] == plansza[0][4]))
return plansza[4][0];
if (pelna(plansza) == 1)
return 1;
return 0;
} //sprawdz
int uzupelnij(char plansza[15][15], char c)
{
int i, j;
for (i = 0; i<15; i++)
{
for (j = 0; j<15; j++)
{
if ((plansza[i][j] == c) && (plansza[i][(j + 1) % 5] == c) && (plansza[i][(j + 2) % 5] == c) && (plansza[i][(j + 3) % 5] == c)
&& (plansza[i][(j + 4)] % 5 == ' '))
{
plansza[i][(j + 4) % 5] = 'o';
return 1;
} // if
if ((plansza[j][i] == c) && (plansza[(j + 1) % 5][i] == c) && (plansza[(j + 2) % 5][i] == c) && (plansza[(j + 3) % 5][i] == c)
&& (plansza[(j + 4) % 5][i] == ' '))
{
plansza[(j + 4) % 5][i] = 'o';
return 1;
} //if
}// for
if ((plansza[i][2 - i] == c)
&& (plansza[(i + 1) % 5][4 - (i + 1) % 5] == c)
&& (plansza[(i + 2) % 5][4 - (i + 2) % 5] == c)
&& (plansza[(i + 3) % 5][4 - (i + 3) % 5] == c)
&& (plansza[(i + 4) % 5][4 - (i + 4) % 5] == ' '))
{
plansza[(i + 4) % 5][4 - (i + 4) % 5] = 'o';
return 1;
}//if
}//for
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
{
int ruch = 1;
char wynik = 0;
char plansza[15][15];
printf("********************************************************************************\n");
printf("-============================== KOLKO I KRZYZYK ================================\n");
srand(time(NULL));
wyczysc(plansza);
while (wynik == 0)
{
if (ruch == 0)
ruch_gracza(plansza);
else
ruch_komputera(plansza);
ruch = 1 - ruch;
wynik = sprawdz(plansza);
}
wypisz(plansza);
if (wynik == 1)
printf("Remis\n");
else
if (wynik == 'x')
{
printf("Wygral gracz X\n");
printf("Nacisnij ENTER aby kontynowac\n");
getchar();
getchar();
}
else
{
printf("Wygral gracz O\n");
printf("Nacisnij ENTER aby kontynowac\n");
getchar();
getchar();
}
// for
return 0;
}
@kq: