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