Ok, forse e` una domanda un po` idiota ma
Allora, ecco il problema:
Io ho questo programma, che simula il gioco dei dadi craps, e` presente solo la funzione main() e quella che simula il lancio casuale dei dadi tiro()
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int tiro(void);
main() {
int stato, somma, punteggio;
srand(time(NULL));
somma = tiro();
switch (somma) {
case 7: case 11:
stato = 1;
break;
case 2: case 3: case 12:
stato = 2;
break;
default:
stato = 0;
punteggio = somma;
printf ("il punteggio e` %d \n" , punteggio);
break;
}
while (stato == 0) {
somma = tiro();
if (somma == punteggio)
stato = 1;
else if (somma == 7)
stato = 2;
}
if (stato == 1)
printf ("hai vinto!\n");
else printf ("hai perso\n");
return 0;
}
int tiro(void)
{
int dado1, dado2, sommadadi;
dado1 = 1 + (rand() %6);
dado2 = 2 + (rand() %6);
sommadadi = dado1 + dado2;
printf ("la somma di %d e %d e` %d \n" , dado1 , dado2, sommadadi);
return sommadadi;
}
Ora io dovrei impacchettare la funionem main() che esegue il gioco in una funzione normale, e avere una main che permetta al giocatore di eseguire una puntata.
Tutto filerebbe liscio, se non fosse per il fatto che non so come richiamare la funzione gioco() [la vecchia main]
Il programma mi verrebbe cosi`, dove ci sono i commenti dovrei caricare la funzione gioco e tutte le variabili che contiene. Come fare? :master:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int gioco();
int tiro(void);
main() {
int puntata, soldi;
soldi = 1000;
printf ("gioco dei dadi craps - \n");
do {
printf ("inserisci una puntata valida \n");
scanf (" %d " , &puntata);
// qui dovrei far partire la funzione gioco()
if (stato == 1) {
printf ("hai vinto la tua puntata! \n");
soldi = soldi + puntata;
printf ("ora hai un totale di %d soldi \n" , soldi);
}
else {
printf ("peccato, hai perso la tua puntata \n");
soldi == soldi - puntata;
printf (" ora hai un totale di %d soldi \n" , &soldi);
}
while (puntata <== soldi);
return 0;
}
int gioco() {
int stato, somma, punteggio;
srand(time(NULL));
somma = tiro();
switch (somma) {
case 7: case 11:
stato = 1;
break;
case 2: case 3: case 12:
stato = 2;
break;
default:
stato = 0;
punteggio = somma;
printf ("il punteggio e` %d \n" , punteggio);
break;
}
while (stato == 0) {
somma = tiro();
if (somma == punteggio)
stato = 1;
else if (somma == 7)
stato = 2;
}
if (stato == 1)
printf ("hai vinto!\n");
else printf ("hai perso\n");
return gioco();
}
int tiro(void)
{
int dado1, dado2, sommadadi;
dado1 = 1 + (rand() %6);
dado2 = 2 + (rand() %6);
sommadadi = dado1 + dado2;
printf ("la somma di %d e %d e` %d \n" , dado1 , dado2, sommadadi);
return sommadadi;
}
Grazie a tutti.