Salve a tutti è da un po che ho iniziato a studiare c e arrivato a questo esercizio mi sono bloccato non riesco ad andare avanti
#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 struct 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()%1;
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;
}
void mischia_carte(Carta mazzo[],int n_carte,int qvmix)
{
int i,j,k;
for(k=1;k<=qvmix*n_carte;k++)
{
i=rand()%n_carte;
j=rand()%n_carte;
scambia_carte(mazzo,i,j);
}
}
void scambiare_carte(Carta mazzo[],int i,int j)
{
Carta temp;
temp=mazzo[i];
mazzo[i]=mazzo[j];
mazzo[j]=mazzo[i];
}
probabilmente gli errori saranno macroscopici lo so.
questi gli errori:
In function `main':
145 syntax error before "void"
72 confused by earlier errors, bailing out