Salve a tutti, sono un ragazzo universitario della facoltà di ingegneria di Palermo e per via di un esame ci è stato chiesto di ricreare un solitario a nostra scelta e di proporlo ricreandolo come programma in C.
La scelta del mio gruppo di lavoro è ricaduta su una tipologia di solitario molto semplice chiamato CORTE.
In questo solitario si hanno 8 pile formate da mazzetti di 4 carte di cui solo l'ultima è scoperta, le carte 32 carte in questione sono solamente le figure (A,J,Q,K) in 8 copie per figura e distribuite casualmente nelle 8 pile.
il giocatore, molto semplicemente, deve trovare le carte con la stessa figura indipendentemente dal seme e accoppiarle per rimuoverle dal gioco.
una volta che delle carte vengono rimosse dalle pile si scopre la carte subito sotto quest'ultime.
il giocatore vince la partita quando tutte le carte vengono tutte rimosse dal tavolo.
avendo questo tipo di gioco con queste determinate regole ho predisposto un prototipo con una matrice 4x8 che mi permettesse di generare valori casuali nel range fra 1 11 12 13 riempiendo la matrice con i soli valori che mi servivano.
ho anche creato una bozza di presentazione del gioco colorata per rendere più carina la visualizzazione del nome del gioco e per differenziare le regole del gioco spiegate rispetto alla matrice.
volevo chiedere dei consigli e delle informazioni riguardanti i seguenti problemi che in quanto novizio al momento non sono del tutto in grado di risolvere:
1) come posso fare in modo che la mia matrice diventi dinamica introducendo la possibilità di selezionare e confrontare valori interni ad essa e rimuoverli qualora l'uguaglianza venga rispettata?
2)come potrei trattare in maniera visualmente carina le carte coperte e renderle impossibili da utilizzare qualora ci sia una carta sotto di essa?
3) necessitando soltanto delle figure ci sarebbe un modo per affibbiare ai valori numerici all'interno della matrice le lettere maiuscole delle figure permettendo di visualizzare solo quelle? inoltre come posso visualizzare secondo voi la visualizzazione del seme che sebbene ai fini del gioco sia irrilevante è comunque richiesta dal mio docente?
qui di seguito il codice da me già scritto
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#define dim 32
void stampatitolo();
int textcolor(int color);
void stampa_matrice(int matrice[4][8]);
void random(int matrice[4][8]);
int main()
{
stampatitolo();
int p=7;
textcolor(p);
int matrice[4][8]={1 ,11 ,12 ,13 ,1 ,11 ,12 ,13 ,1 ,11 ,12 ,13 ,1 ,11 ,12 ,13 ,1 ,11 ,12 ,13 , 1,11 ,12 ,13 ,1 ,11 ,12 ,13 ,1 ,11 ,12 ,13 };
random( matrice);
stampa_matrice( matrice);
return 0;
}
void stampatitolo()
{
int p=5;
textcolor(p);
printf("\t\t\t\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n");
printf("\t\t\t\t º º\n");
printf("\t\t\t\t º CORTE º\n");
printf("\t\t\t\t º º");
printf("\n\t\t\t\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n");
printf("Benvenuto al Solitario Corte, per Vincere dovrai rimuovere tutte le carte accoppiando fra di loro le carte dello stesso valore (indipendentemente dal seme) a patto che siano libere e non chiuse da altre \n");
}
int textcolor (int color)
{
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), color);
}
void stampa_matrice(int matrice[4][8])
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
printf("%3i", matrice[i][j]);
printf("\n\n");
}
}
void random(int matrice[4][8])
{
time_t t;
srand((unsigned) time(&t));
int i,j,temp;
for ( i=0 ; i<4 ; i++)
for ( j=0 ; j<8 ; j++){
int j1 = (rand() % 4);
int j2 = (rand() % 8);
temp = matrice[i][j];
matrice[i][j] = matrice[j1][j2];
matrice[j1][j2] = temp;
}
}