Wypełnienie tablicy dwuwymiarowej

0

Witam,
Tworzę planszę do gry w warcaby - 8 na 8 pól. Stworzyłem odpowiednią tablicę, funkcję do czyszczenia i generowania planszy tzn. umieszczania pionów w odpowiednich miejscach - gdzie "1" w komórce tablicy to gracz 1, a "2" - gracz drugi. Problem występuje w przypadku dwóch pól - [4,7] oraz [3,0]. Jedynie te dwa pola się "powielają", tzn. w komórce [3,0] jest wpisana "2", a w [4,7] - "1". Jak widać, w tym kodzie nigdzie tych wartości nie przypisuję. Gdy zmieniam tam wartość na 0, to również w innych polach się ona zmienia tzn. są jakby uzależnione dwa pola od siebie:
[4,7] od [5,0] oraz [3,0] od [2,7]. Nie wiem jak to "ugryźć". Proszę o pomoc.

#include <stdio.h>
#include <stdlib.h>
int planszaENG[7][7];
void Wyczysc(int plansza[7][7])
{
//tutaj prawidłowo działające czyszczenie tablicy
}
void NowaGra(int plansza[7][7])
{
    Wyczysc(plansza);
    /*
    Gracz pierwszy
    */
    plansza[5][0] = 1;
    plansza[5][2] = 1;
    plansza[5][4] = 1;
    plansza[5][6] = 1;
    plansza[6][1] = 1;
    plansza[6][3] = 1;
    plansza[6][5] = 1;
    plansza[6][7] = 1;
    plansza[7][0] = 1;
    plansza[7][2] = 1;
    plansza[7][4] = 1;
    plansza[7][6] = 1;
    /*
    Gracz drugi
    */
    plansza[0][1] = 2;
    plansza[0][3] = 2;
    plansza[0][5] = 2;
    plansza[0][7] = 2;
    plansza[1][0] = 2;
    plansza[1][2] = 2;
    plansza[1][4] = 2;
    plansza[1][6] = 2;
    plansza[2][1] = 2;
    plansza[2][3] = 2;
    plansza[2][5] = 2;
    plansza[2][7] = 2;

    //reszta
    //plansza[3][0] = 0;
    //plansza[4][7] = 0;
    //plansza[5][0] = 1;

}

void wyswietl(int plansza[7][7])
{
    int i,j;
    for(i=0; i<8; i++)
    {
        for(j=0; j<8; j++)
            printf("[%d][%d]=%d ",i,j,plansza[i][j]);
        printf("\n");
    }
    printf("[4,7]: %d " ,plansza[4][7]);
    printf("[5,0]: %d\n",plansza[5][0]);
}
int main()
{
    NowaGra(planszaENG);
    wyswietl(planszaENG);
    return 0;
}
0

int planszaENG[8][8];
void Wyczysc(int plansza[8][8])
void NowaGra(int plansza[8][8])
void wyswietl(int plansza[8][8])

0

Indeks o wartości 7 jest poza zakresem tablicy. Tablica mająca 7 elementów może być indeksowana wartościami od 0 do 6.

0

Dziękuję za pomoc...
To rzeczywiście głupi błąd i taki się nie powinien zdarzyć. Liczbę [7,x] wziąłem jako maksymalny indeks, nie zaś jako liczbę elementów tablicy. Tak jeszcze raz dziękuję za pomoc i mogę się już zapaść pod ziemię ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1