D4rkAng3l
14-02-2005, 10:58
Questo programma viene compilato ma si impalla...che c'è di sbagliato?
/* Programma che mescola e distribuisce un mazzo di carte da gioco */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int [][13]);
void deal(const int[][13], const char *[], const char *[]);
int main(){
char *suit[4] = {"Cuori", "Denari", "Bastoni", "Spade"};
char *face[13] = {"Asso","Due","Tre","Quattro","Cinque","Sei","Sette","Otto","Nove","Dieci","Fante","Regina","Re"};
int mazzo[4][13] = {0}; // Dichiaro la matrice mazzo e ne azzero il contenuto
srand(time(NULL)); // Insemino la funzione rand
shuffle(mazzo); // Invoco la funzione shuffle e gli passo come argomento la matrice mazzo
deal(mazzo, face, suit); // Invoco la funzione deal per distribuire le carte e gli passo la matrice e i 2 vettori
return 0;
}
void shuffle(int wmazzo[][13]){
int carta, riga, colonna;
for(carta=1; carta<=52; carta++){
riga = rand()%4; // Seleziona casualmente una riga (un seme)
colonna = rand()%13; // Seleziona casualmente una colonna (un valore)
while(wmazzo[riga][colonna] != 0){
riga = rand()%4; // Seleziona casualmente una riga (un seme)
colonna = rand()%13; // Seleziona casualmente una colonna (un valore)
}
wmazzo[riga][colonna] = carta; // Se la posizione all'interno della matrice è 0 mettici il valore di carta
}
}
void deal(const int wMazzo[][13], const char *wFace[], const char *wSuit[]){
int carta, riga, colonna;
for(carta=1; carta<=52; carta++)
for(riga=0; riga<=12; riga++)
for(colonna=0; colonna<=3; colonna++)
if(wMazzo[riga][colonna] == carta)
printf("%5s of %-8c", wFace[riga], wSuit[colonna], carta%2==0 ? '\n':'\t');
}
Grazie
/* Programma che mescola e distribuisce un mazzo di carte da gioco */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int [][13]);
void deal(const int[][13], const char *[], const char *[]);
int main(){
char *suit[4] = {"Cuori", "Denari", "Bastoni", "Spade"};
char *face[13] = {"Asso","Due","Tre","Quattro","Cinque","Sei","Sette","Otto","Nove","Dieci","Fante","Regina","Re"};
int mazzo[4][13] = {0}; // Dichiaro la matrice mazzo e ne azzero il contenuto
srand(time(NULL)); // Insemino la funzione rand
shuffle(mazzo); // Invoco la funzione shuffle e gli passo come argomento la matrice mazzo
deal(mazzo, face, suit); // Invoco la funzione deal per distribuire le carte e gli passo la matrice e i 2 vettori
return 0;
}
void shuffle(int wmazzo[][13]){
int carta, riga, colonna;
for(carta=1; carta<=52; carta++){
riga = rand()%4; // Seleziona casualmente una riga (un seme)
colonna = rand()%13; // Seleziona casualmente una colonna (un valore)
while(wmazzo[riga][colonna] != 0){
riga = rand()%4; // Seleziona casualmente una riga (un seme)
colonna = rand()%13; // Seleziona casualmente una colonna (un valore)
}
wmazzo[riga][colonna] = carta; // Se la posizione all'interno della matrice è 0 mettici il valore di carta
}
}
void deal(const int wMazzo[][13], const char *wFace[], const char *wSuit[]){
int carta, riga, colonna;
for(carta=1; carta<=52; carta++)
for(riga=0; riga<=12; riga++)
for(colonna=0; colonna<=3; colonna++)
if(wMazzo[riga][colonna] == carta)
printf("%5s of %-8c", wFace[riga], wSuit[colonna], carta%2==0 ? '\n':'\t');
}
Grazie