PDA

View Full Version : [C] Gioco d'azzardo


Cadetto Entusiasta
03-02-2009, 16:42
Oggi ho ricopiato dal libro "C Corso completo di programmazione" di Deitel&Deitel il gioco d'azzardo proposto, ma non mi funziona; penso di averlo copiato pedestremente, l'ho ricontrollato due volte, ma non me lo fa partire. Mi sapreste dire cosa c'è che non va?



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

/* Non funziona */

enum status;

int rolldice (void);

int main()
{
int sum, MyPoint;

enum Status gameStatus;

srand(time(NULL));

sum = rollDice();

switch (sum)
{
case 7:
case 11:
gameStatus = WON;
break;

case 2:
case 3:
case 12:
gameStatus = LOST;
break;

default:
gameStatus = CONTINUE;
myPoint = sum;
printf(" Point is %d \n", myPoint);
break;
}
while (gamStatus == CONTINUE)
{
sum = rollDice();
if (sum == myPoint)
{
gameStatus = WON;
}
else
{
if (sum == 7)
{
gameStatus = LOST;
}
}
}
if (gameStatus == WON)
{
printf(" Player wins \n");
}
else
{
printf(" Player loses \n");
}

return 0;

}


int rollDice (void)
{
int die1;
int die2;
int workSum;

die1 = 1 + (rand() % 6);
die2 = 1 + (rand() % 6);
workSum = die1 + die2;

printf(" Player rolled %d + %d = %d \n", die1, die2, workSum);

return workSum;
}

gugoXX
03-02-2009, 17:23
Quando compili che cosa ti scrive?

||ElChE||88
03-02-2009, 17:31
1)
enum status;
è
enum status { WON, LOST, CONTINUE};
2)
enum Status gameStatus;
è
enum status gameStatus;
3)
int sum, MyPoint;
è
int sum, myPoint;
4)
while (gamStatus == CONTINUE)
è
while (gameStatus == CONTINUE)

PS: Il C è case sensitive.
PS2: Sono tutti errori che leggendo il log del compilatore si trovano subito.

Cadetto Entusiasta
03-02-2009, 17:44
Questo è qll ke mi viene fuori come problemi:

http://img26.imageshack.us/img26/526/senzatitolo2id0.th.jpg (http://img26.imageshack.us/my.php?image=senzatitolo2id0.jpg)

la riga 15 è:
enum Status gameStatus;

la riga 19 è:
sum = rollDice();

la riga 25 è:
gameStatus = WON;

la riga 31 è:
gameStatus = LOST;

la riga 35 è:
gameStatus = CONTINUE;

la riga 36 è:
myPoint = sum;

la riga 40 è:
while (gamStatus == CONTINUE)

Cadetto Entusiasta
03-02-2009, 17:51
1)
enum status;
è
enum status { WON, LOST, CONTINUE};
2)
enum Status gameStatus;
è
enum status gameStatus;
3)
int sum, MyPoint;
è
int sum, myPoint;
4)
while (gamStatus == CONTINUE)
è
while (gameStatus == CONTINUE)

PS: Il C è case sensitive.
PS2: Sono tutti errori che leggendo il log del compilatore si trovano subito.

:D Grasie mille, i tuoi punti 3 e 4 sono mancanze mie, ma i punti 1 e 2 non sono proprio così sul libro, non ci sono o comunque sono diversi.
Grazie