Allora il codice che avevo fatto in precedenza è quello che vi ho postato da scaricare nel link che vi avevo scritto nel post da voi bloccato. Non vi resta che sbirciare lì!
E quello nuovo è questo:
Adesso quello nuovo è questo in cui ho dovuto ricostruirlo creando una matrice dinamica ed eccolo qui:
#include <stdio.h>
#include <stdlib.h>
#define NUM_LETTERE 46
int numeroRandom(int lBound, int uBound); //Funzione integer:
void inizio(void);
int main()
{
inizio();
char menu1,menu2;
system("color 0A");
fflush(stdin);
menu1 = getch();
system("cls");
switch(menu1)
{
case '1':
{
char nome_giocatore[30]; //Variabile di dichiarazione character:
char caratteri[NUM_LETTERE+1] = {"ABCDEFGHILMNOPQRSTUVZWHKYJ1234567890£$^&=?!<>-"}; //Variabile di dichiarazione character:
int caratteriUtilizzati[NUM_LETTERE];
char** matrice; //Variabile di dichiarazione character:
int i, j, lt;
int lettereDaInserire;
int nRighe, nColonne;
puts("Inserire nome giocatore:");
scanf("%s",&nome_giocatore);
system("cls");
for (i = 0; i < NUM_LETTERE; i++)
caratteriUtilizzati[i] = 0;
printf("Numero righe: ");
fflush(stdin);
scanf("%d",&nRighe);
printf("Numero colonne: ");
fflush(stdin);
scanf("%d",&nColonne);
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");
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();
switch(tolower(menu2)) //Funzione switch:
{
case '1':
{
scopri_carte();
break;
}
case '2': //Funzione di salvataggio da vedere
{
puts("Salvataggio effettuato!!!");
sleep(1000);
system("cls");
break;
}
case '3': //Funzione di caricamento da vedere
{
puts("Caricamento effettuato!!!");
sleep(1000);
system("cls");
break;
}
}
system("pause");
}
break;
case '2':
istruzioni();
system("cls");
break;
case '3':
puts("GRAZIE PER AVER SCELTO MEMORY!!");
sleep(2000);
exit(0);
default:
system("cls");
puts("Lettera errata. Riprovare!");
sleep(1000);
system("cls");
}
}
int scopri_carte()
{
printf("QUESTA E' LA PARTE DI MERDA PIU' DIFFICILE DA RIFARE PER COLPA DELLA MATRICE FISSA!");
system("pause");
}
int numeroRandom(int lBound, int uBound)
{
int valore, diff;
diff = uBound-lBound;
if (diff != 0)
return lBound + (rand()+time(NULL))%(diff+1);
else
return lBound;
}
void inizio(void)
{
puts(" M M EEEE M M OOOOO RRRR Y Y");
puts(" MM MM E MM MM O O R R Y Y ");
puts(" M M M EEEE M M M O O RRRR Y ");
puts(" M M E M M O O R R Y ");
puts(" M M EEEE M M OOOOO R R Y ");
puts("");
puts(" Cristian Capannini\n");
puts(" @@@@@@@@@@@@@ ");
puts(" @ @");
puts(" @ [1] Gioca @");
puts(" @ [2] Info @");
puts(" @ [3] Esci @");
puts(" @ @");
puts(" @@@@@@@@@@@@@ ");
puts("");
printf(" -> ");
}
int istruzioni()
{
system("cls");
puts("\nUniversita': Scienze dell'informazione - Cesena\n");
puts("ISTRUZIONI\n");
puts("In questo gioco devi trovare ogni coppia di carte uguali.");
puts("Per trovarle vi verranno chieste le coordinate per scoprirle.");
puts("Per scoprire una carta dovete digitare in questo modo:");
puts("Numero riga spazio numero colonna. Per esempio: 0 0.");
puts("Se indovinate vincete due punti altrimenti verrà tolto 1 punto.\n");
system("pause");
system("cls");
main();
}
Adesso quello che mi chiedo è come posso fare il blocco scoprilecarte nel nuovo progetto? Come lo devo trasformare?![]()
![]()
![]()
![]()
Se volete modificare e compilare vi prego di usare dev-c++ postato nel link.
Grazie e arrivederci!Come vi sembra il codice? :master: