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;
}
 

1 komentarz