RISOLTO Banale Programma C Problemino

Robert T.

Utente Attivo
Tralasciando la sintassi "antica" visto che sto su un libro abbastanza vecchiotto, data la seguente sintassi quando vado a compilare con gcc, mi appare il seguente messaggio di errore.

SORGENTE:
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// Costanti di enumerazione che rappresentano lo stato del gioco

enum Status { CONTINUE, WON, LOST };

int rollDice(void);

int main() {
    int sum; // Somma del punteggio del lancio dei dadi
    int myPoint; // punti guadagnati

    enum Status gameStatus; // Può contenere continue, won e lost

                            // randomicca il generatore di numeri casuali usando l'ora corrente

    srand(time(NULL));

    sum = rollDice(); // Primo lancio del dado

                     // Determina lo stato del gioco in base al punteggio dei dadi

    switch (sum) {
        // Vince al primo lancio
    case 7:
    case 11:
        gameStatus = WON;
        break;

        // Perde al primo lancio
    case 2:
    case 3:
    case 12:
        gameStatus = LOST;
        break;

        // memorizza il punteggio
    default:
        gameStatus = CONTINUE;
        myPoint = sum;
        printf("Point is %d\n", myPoint);
        break;
    }

    // finchè il gioco non è completato

    while (gameStatus == CONTINUE) {
        sum = rollDice(); //Continua a lanciare

                         //determina lo stato del gioco

        if (sum == myPoint) {
            gameStatus = WON;
        }
        else {
            if (sum == 7) {
                gameStatus = LOST; // il gioco è finito, il giocatore ha perso
            }
        }
    }

    // Visualizza un messaggio di vittoria o di sconfitta
    if (gameStatus == WON) {
        printf("Player wins\n");
    }
    else {
        printf("Players loses\n");
    }

    return 0;
}

int rolldDice(void) {
    int die1; // punteggio del primo dado
    int die2; //punteggio del secondo dado
    int workSum; // somma dei punteggi del dado

    die1 = 1 + (rand() % 6); // genera punteggio casuale di die1;
    die2 = 1 + (rand() % 6); // genera punteggio casuale di die2;
    workSum = die1 + die2;

    // Visualizza i risultati di questo lancio;
    printf(" Player rolled %d + %d = %d\n", die1, die2, workSum);

    return workSum; // restituisce la somma del punteggio dei dadi;
}

ERRORE
/tmp/ccAEM01I.o: nella funzione "main":
fig05_10.c:(.text+0x1a): riferimento non definito a "rollDice"
fig05_10.c:(.text+0x6b): riferimento non definito a "rollDice"
collect2: error: ld returned 1 exit status
 

Entra

oppure Accedi utilizzando