Problema nella scrittura del primo programma con funzioni

di il
8 risposte

Problema nella scrittura del primo programma con funzioni

Buonasera a tutti, essendo il mio primo "post" mi presento brevemente. Sono uno studente di matematica che si sta affacciando con un certe interesse alla programmazione. Essendo stato il corso seguito molto poco esaustivo, il mio studio è compiuto prevalentemente da autodidatta. Come manuale utilizzo il testo "King" consigliatomi dal docente. Ho deciso di iscrivermi a questo forum per avere più opinioni e/o correzioni sui programmi da me scritti per esercitarmi.
Attualmente sto scrivendo il mio primo programma con l'implemento di funzioni.
Prima di scrivere il programma vi riporto la traccia dell'esercizio propostomi dal docente.
Simulare un certo numero di mani del gioco CRAPS, alla fine di ogni mano si chieda all'utente se vuole continuare. Quando l'utente decide di smettere si stampa il numero di partite vinte e perse.
Le regole del gioco sono:
-il giocatore lancia due dadi: se il risultato è 7 oppure 11 l'utente vince, se il risultato è 2,3 oppure 11 l'utente perde. In tutti gli altri casi si dice "punto".
-il giocatore lancia i dadi continuamente finché non realizza nuovamente il punto 7. Nel primo caso vince, nel secondo perde.
Il programma da me scritto (che non funziona) è:


int lanciodadi()
{
int n;
n=srand()%11+2;
return n;
}

int manocraps ()
{
int x;
x=lanciodadi();
if (x=7 || x=11)
return 1;
else
{
if (x=2 || x= 3 || x=11)
return 0;
else
while (lanciodadi()=7)
return 1;
}
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int vinte;
int perse;
char c;
vinte=0;
perse=0;
srand(time(NULL));
do
{
if(manocraps()==1)
vinte++;
else perse++;
printf("\nvuoi continuare a giocare(S/N)?");
scanf("%c", &c);
}
while (c=='S');
printf("\nhai vinto %d partite e ne hai perse %d", vinte ,perse);
return 0;
}


I problemi scaturiscono dalla funzione manocraps. Il programma mi riporta 3 errori, rispettivamente nei 2 if e nel while. In tutti e 3 i casi riporta la scritta "Expression is not assignable". Il programma poi mi porta anche 3 indicazioni di colore giallo che però destano meno la mia attenzione. Non capisco proprio perché mi dia errore nell'utilizzare gli operatori logici (sempre che l'errore sia quello).
Mi scuso per la lunghezza del mio messaggio (e per eventuali errori grammaticali) e ringrazio in anticipo chiunque vorrà provare ad aiutarmi a capire gli errori da me commessi.
Ps. Uso xcode su mac.

8 Risposte

Devi accedere o registrarti per scrivere nel forum
8 risposte