Forse sto chiedendo troppo a me stesso ...per ora!
visto che non ho finito di studiarmi tutto il linguaggio 'C'
Cmq non ho ben capito cos'è una struct, ho dato una lettura veloce, ma dovrei approfondire...
L'idea che mi sono fatto è che una struct è un altro contenitore che contiene più variabili insieme...forse sto dicendo una caxxata... non lo so non voglio osare oltre.
Però mi hai fatto venire altre idee.
cmq sia per il seme che per il valore della carta uso una variabile CHAR, mentre la matrice è un vettore d 'interi... dato che con il codice ASCI posso rappresentare proprio i semi cuori quadri picche e fiori.
#include <stdio.h>
#include <stdlib.h>
#define R 4 /*riga*/
#define C 13/*colonna*/
/**PROTOTYPE**/
char valore_carta_figurativo(int cf); /*A-2-3...J-Q-K*/
char seme_carta(int s); /*CUORI, FIORI,PICCHE QUADRI*/
/**//**//**//**/
int main()
{
int mazzo[R][C]={1,2,3,4,5,6,7,8,9,10,11,12,13,
1,2,3,4,5,6,7,8,9,10,11,12,13,
1,2,3,4,5,6,7,8,9,10,11,12,13,
1,2,3,4,5,6,7,8,9,10,11,12,13,};
char seme, carta;
int x,y,i;
int hole_card=2; /* CARTE UTENTE MAX 2*/
srand(time(NULL));
/**CARTE UTENTE*/
while(hole_card!=0) /* CONTA A RITROSO DELLE HOLE CARD*/
{
x=rand()%4;
y=rand()%13;
if(mazzo[x][y]!=-1)/* SE LA CARTA NON E' STATA PESCATA SEGNA LA CARTA*/
{
mazzo[x][y]=-1;
carta=valore_carta_figurativo(y);
seme=seme_carta(x);
printf("%c%c",carta,seme);
hole_card--;
}
}
return 0;
}
/*****FUNZIONI*/
char valore_carta_figurativo(int cf)/** FUNZIONE CHE RESTITUIESCE IL VALORE FIGURATIVO DELLA CARTA (A..K)*/
{
char valore;
int v;
v=cf;
switch (cf) /* TRAFORMA L'INTERO RICEVEUTO NEL VALORE DELLA CARTA*/
/* LE CARTE VANNO DA CASE 0=A...CASE 12=K*/
/**0=A,1=2..9=T...12=K**/
{
case 0:
valore = '\A';
break;
case 1:
valore = '2';
break;
case 2:
valore = '3';
break;
case 3:
valore = '4';
break;
case 4:
valore = '5';
break;
case 5:
valore = '6';
break;
case 6:
valore = '7';
break;
case 7:
valore = '8';
break;
case 8:
valore = '9';
break;
case 9:
valore = '\T';
break;
case 10:
valore = '\J';
break;
case 11:
valore = '\Q';
break;
case 12:
valore = '\K';
break;
}
return valore;
}
char seme_carta(int s)/** FUNZIONE CHE RESTITUISCE IL SEME DELLA CARTA*/
{
char seed;
switch(s) /* TRASFORMA L'INTERO RICEVUTO NEL SIMBOLO DEL SEME
IN CODICE ASCI ESEMPIO (ASCI=CUORI, ASCI=PICCHE....) */
/** 3=CUORI, 6=PICCHE, 4=QUADRI, 5=FIORI **/
{
case 0 :
seed= 6 ; /*PICCHE*/
break;
case 1 :
seed= 4 ; /*QUADRI*/
break;
case 2 :
seed= 5 ; /*FIORI*/
break;
case 3 :
seed= 3 ; /*CUORI*/
break;
}
return seed;
}
Io ho scritto questo, però credo di essere sulla strada sbagliata...se non sbagliatissima!!!
ci può essere qualche variabile di troppo, poichè ho riscritto il codice 100 volte per trovare una soluzione funzionale ed elegante.
Grazie x la risposta!
Come faccio ad usare quel riquadro che hai usato tu dove hai scritto il codice?
Ora comincia ad essere tutto più chiaro ahahah grazie!