#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX_CARTE 40
typedef struct
{
char palo;
int numero;
} Carte;
typedef struct
{
Carte vett_carte[MAX_CARTE];
int num_carte;
} CarteNapoletane;
/* dichiarazioni di funzioni */
void leggi_da_file(CarteNapoletane *dat);
void stampa_a_video(CarteNapoletane dat);
int main()
{
CarteNapoletane carte;
leggi_da_file(&carte);
stampa_a_video(carte);
return 0;
}
/* definizione della funzione per leggere da file.txt */
void leggi_da_file(CarteNapoletane *dat)
{
/* dichiarazioni delle variabili */
FILE *file; /* lavoro: puntatore al file di input */
int carte_lette; /* output: numero delle carte lette */
dat->num_carte = 0; /* variabile di tipo puntatore a struttura inizializzata a zero */
/* apri il file */
file = fopen("file.txt", "r");
/* prima lettura: assegna a chiavi_lette fscanf */
carte_lette = fscanf(file,"%d%c", &dat->vett_carte[dat->num_carte].numero,
&dat->vett_carte[dat->num_carte].palo);
/* cicla gli studenti che hanno effettivamente le chiavi cognome matricola e voto */
while(carte_lette == 2)
{
dat->num_carte++; /* scorrimento di tutti gli studenti presenti nel database */
/* seconda lettura: leggi nuovamente da file */
carte_lette = fscanf(file,"%d%c", &dat->vett_carte[dat->num_carte].numero,
&dat->vett_carte[dat->num_carte].palo);
}
/* chiudi i file */
fclose(file);
}
/* definizione di funzione di scrittura a video */
void stampa_a_video(CarteNapoletane dat)
{
/* dichiarazioni delle variabili */
FILE *file; /* lavoro: puntatore al file di output */
int i, j, k; /* indice di scorrimento ciclo for */
Carte temp;
char nome_giocatore[30]; /* nome del giocatore */
int butta_tu; /* carta pescata che decide chi iniziare */
int scelta; /* carte che butta l'utente */
/* MENU */
/* acquisire nome giocatore */
printf("\nNome giocatore\n");
scanf("%s",
nome_giocatore);
printf("\n < Si inizia a giocare - %s - >\n", nome_giocatore);
printf("\n\n Le carte decidono chi buttare per primo\n\n");
/* pesca carta per chi buttare prima */
srand(time(0));
butta_tu = 1+rand() % 10;
switch(butta_tu) {
case 1: printf("\t PER ME... 1\n");
break;
case 2: printf("\t PER ME... 2\n");
break;
case 3: printf("\t PER ME... 3\n");
break;
case 4: printf("\t PER ME... 4\n");
break;
case 5: printf("\t PER ME... 5\n");
break;
case 6: printf("\t PER ME... 6\n");
break;
case 7: printf("\t PER ME... 7\n");
break;
case 8: printf("\t PER ME... 8\n");
break;
case 9: printf("\t PER ME... 9\n");
break;
case 10: printf("\t PER ME... 10\n");
break;
}
if(butta_tu == 1 ||
butta_tu == 3 ||
butta_tu == 5 ||
butta_tu == 7 ||
butta_tu == 9)
{
printf("\n Tocca a me buttare per primo!\n");
}
printf("\n\n\nCARTE PC -> ");
/* stampa a video le carte giocatore */
for(i = 0; i < 3; ++i)
printf("%d%c ", dat.vett_carte[i].numero,
dat.vett_carte[i].palo);
/* stampa a video la BRISCOLA */
for(k = 3; k < 4; ++k)
printf("\n\n\nBRISCOLA -> %d%c", dat.vett_carte[k].numero,
dat.vett_carte[k].palo);
printf("\n\n\nLE TUE CARTE -> ");
/* stampa a video le carte giocatore */
for(j = 4; j < 7; ++j)
printf("%d%c ", dat.vett_carte[j].numero,
dat.vett_carte[j].palo);
printf("\n [1] [2] [3]\n");
if(butta_tu == 2 ||
butta_tu == 4 ||
butta_tu == 6 ||
butta_tu == 8 ||
butta_tu == 10 ||
butta_tu == 1 ||
butta_tu == 3 ||
butta_tu == 5 ||
butta_tu == 7 ||
butta_tu == 9)
{
printf("\n Tocca a te buttare per primo!\n");
scanf("%d",
&scelta);
if(scelta == 1)
{
if(dat.vett_carte[j].palo == dat.vett_carte[k].palo)
{
printf("E' una briscola\n");
}
else if(dat.vett_carte[j].palo != dat.vett_carte[k].palo)
printf("Non e' una briscola\n");
}
}
}