Salve a tutti, cercavo aiuto per il seguente progetto in c, si tratta del gioco delle biglie
Gioco delle biglie Si vuole sviluppare un programma per la simulazione del gioco delle biglie. Supponiamo di avere un giocatore che gioca su di un campo di dimensione 50x50. Il giocatore (rosso in figura) in ogni istante può lanciare in una delle 8 direzioni. Nel campo da gioco esiste una sola buca, scelta in modo casuale all’inizio del gioco, che permette di terminare il gioco ed è nota al giocatore.
Il giocatore può incontrare diverse difficoltà durante il percorso
• 40 buche nascoste al giocatore fanno andare la palla in un’altra posizione scelta casualmente
• 20 buche fanno terminare il gioco senza arrivare alla fine del gioco
Il gioco procede in questo modo:
• La posizione iniziale del giocatore è casuale ma non può corrispondere con quella della buca.
• Ad ogni lancio viene visualizzato il campo da gioco e la posizione del giocatore. Viene chiesto al giocatore la direzione di lancio della palla.
• La palla che va fuori va rimessa in una posizione casuale sul bordo da dove è uscita.
• Il gioco termina o quando la palla va nella buca principale o quando si superano 50 tiri
L’algoritmo usa la function rand() in stdlib per generare numeri casuali: si ricorda che, per esempio, se numero_casuale è un int, la chiamata numero_casuale=rand()%11; genera un numero casuale intero (distribuzione uniforme) nell’insieme (0,1,2,3,4,5,6,7,8,9,10).
Ora beh io ho iniziato ad inizializzare il campo da gioco, ovviamente considerando una matrice 50X50 ma non capisco come dovrei andare a scrivere che 40 di queste 100 posizioni devono essere buche casuali,20 perdenti, 1 vincente e il resto caselle normali, in piu vorrei avere qualche indicazione su come dovrei inizializzare la pedina del giocatore, e su come andare a costruire le function riguardo lo spostamento della biglia.
ho iniziato a generare dei campi, uno finto su cui va visualizzata solo la pedina e un altro a cui fare riferimento nel caso si dovesse incontrare una buca, ma sto avendo dei problemi.. in pratica nel campo non mi visualizza la pedina ho provato a fare cosi
codice:
enum fipo {prato,bucaC,bucaP,bucaV};typedef enum fipo Tipo;
/*dichiaro il tipo struct per inserire le diverse celle*/
typedef struct {
Tipo tipo;
}Campo;
/*prototipi funzione */
void generacampo(Campo [][50]);
void visualizza2D(Campo [][50] , int , int);
int main()
{
int n,m,i,j,xc,yc;
char c;
n=50; m=50;
Campo campo1[50][50]={prato};
Campo campov[50][50]={prato};
Tipo pedina;
printf("GIOCO DELLE BIGLIE.\nHAI A DISPOSIZIONE 50 TIRI.\n");
printf("inserisci il numero che vuoi assegnare alla tua posizione di partenza\n"); //identifico la posizione di partenza con un numero letto da tastiera//
scanf("%d",&pedina);
generacampo(campov);//genero il campo di riferimento//
srand(time(NULL));
xc=rand()%49;
yc=rand()%49;
if(campov[xc][yc].tipo!=BUCAC && campov[xc][yc].tipo!=BUCAP && campov[xc][yc].tipo!=BUCAV){
campo1[xc][yc].tipo=pedina;
}
se vi serve vedere altre parti del codice basta chiedere
Grazie per la considerazione!