Per la buca vincente ti ho già detto
Memorizza in due variabili anche le coordinate della buca vincente e controlla anche quelle.
P.S. Non rispondere con una riga per volta ...
Per la buca vincente ti ho già detto
Memorizza in due variabili anche le coordinate della buca vincente e controlla anche quelle.
P.S. Non rispondere con una riga per volta ...
Va bene va bene
Uno spunto... elimina b2 e b3 e all'inizio
#define BUCA '*'e nel main
int rBucaV, cBucaV;quando metti una buca
griglia[riga][colonna] = BUCA;quando scegli la buca vincente
griglia[riga][colonna] = BUCA; rBucaV=riga; cBucaV=colonna;quando fai i controlli
if(griglia[xpos][ypos]==BUCA) { if(rBucaV==xpos && cBucaV==ypos) // sei nella buca vincente else // sei in un'altra buca }... a te il resto ...
Ho fatto tipo così per differenziare le buche:
while(c2 < 20)
{
colonna = rand() % SIZE;
riga = rand() % SIZE;
griglia[riga][colonna] = BUCA;
rBucaP=riga;
cBucaP=colonna;
c2++;
}
while(c3 < 1)
{
colonna = rand() % SIZE;
riga = rand() % SIZE;
griglia[riga][colonna] = BUCA;
rBucaV=riga;
cBucaV=colonna;
c3++;
}
Adesso provo a far funzionare gli if
Allora adesso ho provato usando questi if:
if(griglia[xpos][ypos]==BUCA) { if(rBucaV==xpos && cBucaV==ypos) { printf("Hai vinto"); return 0; } if(rBucaP==xpos && cBucaP==ypos) { printf("Hai perso"); return 0; } else { griglia[savex][savey] = '-'; } }Succede che la buca vincente funziona e anche quella perdente, però c'è il problema che solo poche buche perdenti funzionano, oppure solo una, quando vado sulle altre buche che dovrebbero essere perdenti ci passa sopra, senza chiudere il programma.
Adesso ho fatto in questo modo:
if(griglia[xpos][ypos]==BUCA) { if(rBucaV==xpos && cBucaV==ypos) { printf("Hai vinto"); return 0; } else { printf("Hai perso"); return 0; } }Ho provato e mi trova le buche perdenti
Ultima modifica di Shoot; 14-11-2020 19:59
Un momento forse ho capito cosa fare
Aggiornamento
Tutte le buche funzionano, tranne quelle nascoste che cerco di farle funzionare, adesso rimane soltanto la questione della buca vincente quando viene beccata al primo lancio
Ultima modifica di Shoot; 14-11-2020 20:10
Non capisco ... è quello che controlla questa rigaadesso rimane soltanto la questione della buca vincente quando viene beccata al primo lancio
if(rBucaV==xpos && cBucaV==ypos)
Quindi?
Quindi devo fare che quando al primo lancio becco la buca vincente, vinco. Forse devo mettere anche la condizione del cont?
All'inizio avrai la biglia in posizione x1 e y1. Quindi PRIMA di assegnare il simbolo nella griglia, ovvero PRIMA di
biglia=griglia[x1][y1] = 'O';
devi usare una
if(griglia[x1][y1]==BUCA && rBucaV==x1 && cBucaV==y1)
...
Scusa ma forse hai capito che la posizione della biglia spawnata ad inizio gioco debba essere uguale alla buca vincente? Chiedo per capire se per caso ho sbagliato a spiegare il problema. Se per caso hai capito così, intendevo che quando mi sposto e becco la buca vincente, mi esce un'altra frase.