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