Salve a tutti. Sto lavorando per un progetto universitario, si tratta del gioco delle biglie, come dice appunto il titolo. Ho un problema riguardo l'interazione delle biglie con le buche. Non riesco a far andare le biglie nelle buche. Vorrei fare tipo che quando la biglia va sulla buca, il gioco finisce, ho rappresentato il tavolo da gioco con una griglia 50x50, le buche con l'asterisco * e la biglia con la O maiuscola. Questo è il codice che ho fatto:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 50
#define bucap '*'
int main()
{
char griglia[SIZE][SIZE];
int colonna,riga,c1,c2,c3,a, x1, y1, z1;
int cont=0;
char biglia, b2;
srand( (unsigned)time(NULL) );
for(colonna=0;colonna<SIZE;colonna++)
for(riga=0;riga<SIZE;riga++)
griglia[riga][colonna] = '.';
c1 = 0;
c2 = 0;
c3 = 0;
int xlose=x1;
int ylose=y1;
while(c1 < 40)
{
colonna = rand() % SIZE;
riga = rand() % SIZE;
griglia[riga][colonna] = '.';
c1++;
}
while(c2 < 20)
{
colonna = rand() % SIZE;
riga = rand() % SIZE;
b2=griglia[riga][colonna] = '*';
c2++;
}
while(c3 < 1)
{
colonna = rand() % SIZE;
riga = rand() % SIZE;
griglia[riga][colonna] = '*';
c3++;
}
x1=rand() %50;
y1=rand() %50;
z1=rand() %50;
biglia=griglia[x1][y1] = 'O';
int xpos = x1;
int ypos = y1;
int zpos = z1;
while (cont<50)
{
system("cls||clear");
for(colonna=0;colonna<SIZE;colonna++)
{
for(riga=0;riga<SIZE;riga++)
printf(" %c ",griglia[riga][colonna]);
putchar('\n');
}
printf("Lancio %d \n", cont);
printf("1 Sinistra - 2 Destra - 3 Su - 4 Giu' - 5 Giu' a sinistra - 6 Su a sinistra - 7 Giu' a destra - 8 Su a destra \n");
int savex = xpos;
int savey = ypos;
int move = 0;
scanf("%d", &move);
char c;
switch (move)
{
case 1: if (xpos > 0) xpos--; break;
case 2: if (xpos < 49) xpos++; break;
case 3: if (ypos > 0) ypos--; break;
case 4: if (ypos < 49) ypos++; break;
case 5: zpos=x1; if (zpos > 0) xpos--; ypos++; break;
case 6: zpos=x1; if (zpos < 49) xpos--; ypos--; break;
case 7: zpos=x1; if (zpos > 0) xpos++; ypos++; break;
case 8: zpos=x1; if (zpos < 49) xpos++; ypos--; break;
}
griglia[savex][savey] = '.';
griglia[xpos][ypos] = 'O';
cont++;
}
printf("GAME OVER");
return 0;
}
Ho provato ad usare vari modi per far finire il gioco, ma niente, quando la biglia va sulla buca, non succede niente. Aspetto qualche vostro consiglio. Grazie in anticipo.