ha realizzato questo codice...
codice:
#include <stdio.h>
#include <stdlib.h>
#define NUM_LETTERE 46
int richiesta_nome_giocatore();
int numeroRandom(int lBound, int uBound); //Variabile di tipo integer: dichiarazione del blocco in cui verrà svolto la random
void inizio(void); //Variabile di tipo void: dichiarazione della chiamata della schermata principale del gioco
void istruzioni(void);
int main()
{
int i, j, lt; //Variabile di tipo integer: dichiarazioni delle variabili da utilizzare nei cicli successivi for
int lettereDaInserire;
int nRighe, nColonne;
int riga_carta1, colonna_carta1, riga_carta2, colonna_carta2;
int tentativi,punti,mosse_errate,mosse_corrette;
int caratteriUtilizzati[NUM_LETTERE];
char nome_giocatore[30]; //Variabile di tipo character: dichiarazione della variabile che conterrà la stringa del nome del giocatore
char caratteri[NUM_LETTERE+1] = {"ABCDEFGHILMNOPQRSTUVZWHKYJ1234567890£$^&=?!<>-"}; //Variabile di tipo character: dichiarazione dell'elenco dei caratteri da utilizzare nella random
char** matrice; //Variabile di tipo character: dichiarazione della matrice con doppio puntatore
char** gioco;
char menu1,menu2;
inizio();
fflush(stdin);
menu1 = getch();
system("cls");
/*Menu primario in cui si hanno delle scelte */
switch(menu1)
{
case '1':
{
for (i = 0; i < NUM_LETTERE; i++)
caratteriUtilizzati[i] = 0;
/* Richiesta del nome del giocatore */
puts("Inserire nome giocatore:");
scanf("%s",&nome_giocatore);
system("cls");
/* Richiesta delle righe e colonne per creazione di matrice dinamica */
printf("Numero righe: ");
fflush(stdin);
scanf("%d",&nRighe);
printf("Numero colonne: ");
fflush(stdin);
scanf("%d",&nColonne);
/*Costruzione della matrice dinamica utilizzando le variabili ottenute dall'utente*/
lettereDaInserire = nRighe * nColonne;
if (lettereDaInserire % 2 == 1 || lettereDaInserire == 0)
{
printf("\nNumero di celle non valido!");
exit(0);
}
matrice = (char **)malloc(sizeof(char*)*nRighe);
for (i = 0; i < nRighe; i++)
*(matrice + i) = (char *)malloc(sizeof(char)*nColonne);
for (i = 0; i < nRighe; i++)
for (j = 0; j < nColonne; j++)
*(*(matrice + i) + j) = ' ';
do
{
lt = numeroRandom(0,NUM_LETTERE-1);
if (!caratteriUtilizzati[lt])
{
do
{
i = numeroRandom(0,nRighe-1);
j = numeroRandom(0,nColonne-1);
}
while (*(*(matrice + i) + j) != ' ');
*(*(matrice + i) + j) = caratteri[lt];
do
{
i = numeroRandom(0,nRighe-1);
j = numeroRandom(0,nColonne-1);
}
while (*(*(matrice + i) + j) != ' ');
*(*(matrice + i) + j) = caratteri[lt];
caratteriUtilizzati[lt] = 1;
lettereDaInserire-=2;
}
}
while(lettereDaInserire > 0);
printf("\n\n");
/*Stampa della matrice per prova */
for (i = 0; i <nRighe; i++)
{
for (j = 0; j < nColonne; j++)
printf("matrix [%d] [%d] = %c\n",i,j,*(*(matrice + i) + j)); //da trascurare la stampa
}
/*Stampa della vera matrice */
int k = 0;
int n = 0;
for (j = 0; j < nColonne; j++)
{
printf(" %d",k++);
}
printf("\n");
for (i = 0; i < nRighe; i++)
{
printf("%d",n++);
for (j = 0; j < nColonne; j++)
printf(" %c",*(*(matrice + i) + j)/*= '#'*/);
printf("\n");
}
printf("\n");
printf("Menu'",nome_giocatore);
puts("");
puts("[1] - Scopri le carte\n[2] - Salva la partita\n[3] - Carica la partita");
puts("[4] - Visualizza lista mosse\n[5] - Istruzioni\n[6] - Esci");
printf("Che cosa vuoi fare, %s?\n");
menu2 = getch();
/*Menu secondario in cui si hanno delle scelte */
switch(tolower(menu2)) //Funzione switch:
{
case '1':
{
tentativi = 0;
mosse_errate = 0;
punti = 0;
mosse_corrette = 0;
puts("Carta 1:");
fflush(stdin);
scanf("%d %d",&riga_carta1,&colonna_carta1);
if (((riga_carta1>=0) && (colonna_carta1>=0)) && ((riga_carta1<nRighe) && (colonna_carta1<nColonne)))
{
*(*(gioco+riga_carta1)+colonna_carta1) = *(*(matrice+riga_carta1)+colonna_carta1);
system("cls");
for(i=0; i<nRighe;i++)
{
for(j=0; j<nColonne; j++)
printf("%c",*(*(gioco+i)+j));
printf("\n");
}
puts("Carta 2");
fflush(stdin);
scanf("%d %d",&riga_carta2,&colonna_carta2);
if (((riga_carta2>=0) && (colonna_carta2>=0)) && ((riga_carta2<nRighe) && (colonna_carta2<nColonne )))
{
*(*(gioco+riga_carta2)+colonna_carta2) = *(*(matrice+riga_carta2)+colonna_carta2);
system("cls");
for(i=0; i<nRighe;i++)
{
for(j=0; j<nColonne; j++)
printf("%c",*(*(gioco+i)+j));
printf("\n");
}
if (*(*(gioco+riga_carta1)+colonna_carta1) != *(*(gioco+riga_carta2)+colonna_carta2))
{
tentativi--;
mosse_errate++;
punti--;
printf("Hai sbagliato, ritenta!!!\n");
sleep(1000);