|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[C]cosa c'è di errato?
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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
Codice:
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void deal(const int wMazzo[][13], char *wFace[], 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');
}
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
}
}
int main(){
char *suit[] = {"Cuori", "Denari", "Bastoni", "Spade"};
char *face[] = {"Asso","Due","Tre","Quattro","Cinque","Sei","Sette","Otto","Nove","Dieci","Fante","Regina","Re"};
int mazzo[4][13];
for (int i=0;i<4;i++){
for (int j=0;j<13;j++){
mazzo[i][j]=0;
}
}
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
system ("PAUSE");
return 0;
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ok, grazie...cosa c'era di sbagliato?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
guarda non mi ricordo ma non so se è giusto quello che fai io ho solo messo a posto per compilarlo.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
boo a me continua a dare problemi anche con la versione che mi hai dato te...
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
scusa non riesci a compilarlo??
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 699
|
Codice:
while(wmazzo[riga][colonna] != 0)
{
riga = rand()%4;
colonna = rand()%13;
}
Se non esce dopo es. 100 tentativi gli trovi una posizione libera cercandola sequenzialmente.
__________________
Adepto del "La polvere è vita" clan. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:51.



















