PDA

View Full Version : Linguaggio C - Gioco delle coppie di carte


melaNik89
20-10-2011, 17:49
Salve ragazzi, sono nuovo del forum, e colgo l'occasione per salutare tutti! :D
Ora, ecco la domanda: mi sono cimentato nella compilazione del codice per il gioco delle coppie di carte, ma mi da come errore la seguente frase:
-undefined reference to 'mischia_carte'-
Se mi potreste dare qualche suggerimento, ve ne sarei grato; di seguito vi posto il codice del programma, grazie in anticipo!!! :D

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

typedef enum
{
denari,
bastoni,
spade,
coppe,

}
Semi_nap;
struct carta
{
int valore;
Semi_nap seme;
}

typedef carta, Carta;

void mischia_carte(Carta mazzo[],int n_carte,int qvmix);
void scambiare_carte(Carta mazzo[],int i, int j);

int main()
{
int iniz,i,j,puntiprimogiocatore=0,puntisecondogiocatore=0,k=0,puntitotali,qvmix,n_carte=40;
char giocatoreuno[20], giocatoredue[20];
Carta mazzo[40]={
{1,denari},{2,denari},{3,denari},{4,denari},{5,denari},{6,denari},{7,denari},{8,denari},{9,denari},{10,denari},
{1,bastoni},{2,bastoni},{3,bastoni},{4,bastoni},{5,bastoni},{6,bastoni},{7,bastoni},{8,bastoni},{9,bastoni},{10,bastoni},
{1,spade},{2,spade},{3,spade},{4,spade},{5,spade},{6,spade},{7,spade},{8,spade},{9,spade},{10,spade},
{1,coppe},{2,coppe},{3,coppe},{4,coppe},{5,coppe},{6,coppe},{7,coppe},{8,coppe},{9,coppe},{10,coppe}};

printf("Inserire il nome del primo giocatore/n");
gets(giocatoreuno);
printf("Inserire il nome del secondo giocatore/n");
gets(giocatoredue);

iniz = rand()%2;
if(iniz==0)
{
printf("Il primo a giocare sarà %s/n",giocatoreuno);
}
else
{
printf("Il primo giocatore sarà %s/n",giocatoredue);
}
printf("Quante volte vuoi mischiare il mazzo?");
scanf("%d",&qvmix);
mischia_carte(mazzo,n_carte,qvmix);

do
{
printf("le posizioni delle carte ancora coperte");
for(k=0;k<=39;k++)
{
if(mazzo[k].valore==0)
{
continue;
}
else
{
printf("%d",k);
}
}
if(iniz==0)
{
printf("%s scegli la posizione della prima carta/n",giocatoreuno);
scanf("%d",&i);
if(mazzo[i].valore==0)
{
printf("la carta è gia stata scelta/n");

}
else
{
printf("La carta scelta è %d, %s/n",mazzo[i].valore,mazzo[i].seme);
}
printf("%s scegli la posizione dell seconda carta/n",giocatoreuno);
scanf("%d",&j);
if(mazzo[j].valore==0)
{
printf("la carta è gia stata scelta/n");
continue;
}
else
{
printf("La carta scelta è %d, %s/n",mazzo[i].valore,mazzo[i].seme);
}
}
else
{
printf("%s scegli la posizione della prima carta/n",giocatoredue);
scanf("%d",&i);
if(mazzo[i].valore==0)
{
printf("la carta è gia stata scelta/n");
continue;
}
else
{
printf("La carta scelta è %d, %s/n",mazzo[i].valore,mazzo[i].seme);
}
printf("%s scegli la posizione seconda carta/n",giocatoredue);
scanf("%d",&j);
if(mazzo[j].valore==0)
{
printf("la carta è gia stata scelta/n");
continue;
}
else
{
printf("La carta scelta è %d, %s/n",mazzo[j].valore,mazzo[j].seme);
}
if(mazzo[i].valore==mazzo[j].valore)
{
printf("Giusto le due carte sono uguali! ricevi un punto/n");
if(iniz==0)
{
puntiprimogiocatore++;
}
else
{
puntisecondogiocatore++;
mazzo[i].valore=0;
mazzo[j].valore=0;
}
}
else
{
printf("Le due carte non sono uguali! Il tuo turno è finito.");
}
if(iniz==0)
{
iniz=1;
}
else
{
iniz=0;
}
}
puntitotali=puntiprimogiocatore+puntisecondogiocatore;
}while(puntitotali<20);

system("PAUSE");
return 0;
}

Floris
20-10-2011, 19:35
Ti consiglio di inserire il codice nei tag CODE.