Gioco dell'Asino
raga ho scritto questo programma che dovrebbe simulare il famoso gioco dell'asino, ma il compilatore in questione (Dev - c++) mi da il seguente codice di errore :
non riesco proprio a capire da cosa dipenda!!! -.-'
il codice è il seguente :
Permission denied ld returned 1 exit status
non riesco proprio a capire da cosa dipenda!!! -.-'
il codice è il seguente :
#include <iostream> #include <ctime> #include <conio.h> using namespace std; const char *semi[] = {"Ori", "Coppe", "Spade", "Bastoni"}; const char *numeri[] = {"Asso", "Due", "Tre", "Quattro", "Cinque", "Sei", "Sette", "Donna", "Cavallo", "Re"}; const int Max = 40; bool mani_vuote(int player[], int dim); void mischia_mazzo(int Mazzo[]); void crea_mazzo(int Mazzo[]); void dai_carte(int Player_Uno[], int Player_Due[]); int trova_ciuccio(int Mazzo[]); int dai_carte(int Player[], int Mazzo[], int & cont); int elimina_coppie(int player[], int dim, bool & trovato); int gioca(int giocatore1[], int giocatore2[], bool & Mani_vuote1, bool & Mani_vuote2, int dim1, int dim2); void stampa(int giocatore[], int dim); int pesca(int giocatore1[], int giocatore2[], int dim1, int dim2); int main() { srand(time(NULL)); bool Mani_vuote1 = false, Mani_vuote2 = false; int Mazzo[Max] = {0}; int cont = 0, cont1 = 0; crea_mazzo(Mazzo); mischia_mazzo(Mazzo); int Player_Uno[20] = {0}, Player_Due[19] = {0}, Ciuccio; Ciuccio = trova_ciuccio(Mazzo); cout << "togliamo dal gioco " << numeri[Ciuccio%10] << " di " << semi[Ciuccio/10] << endl; cout << "premi invio per cominciare a giocare:\n"; getch(); for(int i = 0; i < Max; i++) if(Mazzo[i] == Ciuccio) Mazzo[i] = -1; for(int i = 0; i < Max / 2; i++) { dai_carte(Player_Uno, Mazzo, cont); if(cont1 < 19) dai_carte(Player_Due, Mazzo, cont1); } bool cerca; elimina_coppie(Player_Uno, 20, cerca); elimina_coppie(Player_Due, 19, cerca); while(Mani_vuote1 != true || Mani_vuote2 != true) { gioca(Player_Uno, Player_Due, Mani_vuote1, Mani_vuote2, 20, 19); } if(Mani_vuote1) cout << "\nha vinto il giocatore uno!\n"; else cout << "\nha vinto il giocatore due\n"; system("pause"); return 0; } void crea_mazzo(int Mazzo[]) { for(int i = 0; i < Max; i++) Mazzo[i] = i; } void mischia_mazzo(int Mazzo[]) { srand(time(NULL)); int temp, x, y; for(int i = 0; i < Max / 2; i++) { x = rand()%20; y = rand()%20 + 20; temp = Mazzo[x]; Mazzo[x] = Mazzo[y]; Mazzo[y] = temp; } } int trova_ciuccio(int Mazzo[]) { for(int i = 0; i < Max; i++) { if(Mazzo[i]%10 == 8) return Mazzo[i]; } } int dai_carte(int Player[], int Mazzo[], int & cont) { for(int i = 0; i < Max; i++) { if(Mazzo[i] != -1) { Player[cont] = Mazzo[i]; Mazzo[i] = -1; cont++; return 0; } } } int elimina_coppie(int player[], int dim, bool & trovato) { for(int i = 0; i < dim; i++) { if(player[i] != -1) { for(int j = 0; j < dim; j++) { if(player[i]%10 == player[j]%10 && i != j) { player[i] = -1; player[j] = -1; trovato = true; } } } } return 0; } int gioca(int giocatore1[], int giocatore2[], bool & Mani_vuote1, bool & Mani_vuote2, int dim1, int dim2) { bool trovato = false; system("CLS"); cout << "giocatore1 ha le seguenti carte in mano:\n"; stampa(giocatore1, dim1); cout << "\ngiocatore1 pesca a caso nella mano di giocatore2:\n"; pesca(giocatore1, giocatore2, dim1, dim2); Mani_vuote1 = mani_vuote(giocatore1, dim1); cout << "\nclick to continue...\n"; getch(); system("CLS"); cout << "\nora giocatore1 uno ha le seguenti carte:\n"; stampa(giocatore1, dim1); cout << "\nclick to continue...\n"; getch(); system("CLS"); cout << "\ngiocatore2 ha le seguenti carte in mano:\n"; stampa(giocatore2, dim1); cout << "\ngiocatore2 pesca a caso nella mano di giocatore1:\n"; pesca(giocatore2, giocatore1, dim2, dim1); Mani_vuote2 = mani_vuote(giocatore2, dim2); cout << "\nclick to continue...\n"; getch(); system("CLS"); cout << "\nora giocatore2 ha le seguenti carte:\n"; stampa(giocatore2, dim2); cout << "\nclick to continue...\n"; getch(); return 0; } void stampa(int giocatore[], int dim) { int cont = 0; for(int i = 0; i < dim; i++) { if(giocatore[i] != -1) { cout << cont << ") " << numeri[giocatore[i]%10] << " di " << semi[giocatore[i]/10] << endl; cont++; } } } int pesca(int giocatore1[], int giocatore2[], int dim1, int dim2) { bool trovato = false; int x; do{ x = rand()%dim2; }while(giocatore2[x] == -1); for(int i = 0; i < dim1; i++) if(giocatore1[i] != -1) giocatore1[i] = giocatore2[x]; giocatore2[x] = -1; elimina_coppie(giocatore1, dim1, trovato); if(trovato) cout << "\ncoppia trovata...\n"; else cout << "\ncoppia non trovata...\n"; return 0; } bool mani_vuote(int player[], int dim) { for(int i = 0; i < dim; i++) { if(player[i] != -1) return false; } return true; }
Risposte
Il problema non sembra motivato dal tuo codice, ma dal compilatore. Sembra che il linker non abbia i permessi per fare qualcosa. Su che sistema operativo stai lavorando? Secondo me è meglio se cambi il tuo IDE, prova con CodeBlocks oppure Visual C++ Express. DevC++ è pieno di bug e non più aggiornato o supportato.
avevi ragione passando sul visual c++ express ora funziona ...XD maledetto DEV -.-'
anche con me è capitato
"apatriarca":
Il problema non sembra motivato dal tuo codice, ma dal compilatore. Sembra che il linker non abbia i permessi per fare qualcosa. Su che sistema operativo stai lavorando? Secondo me è meglio se cambi il tuo IDE, prova con CodeBlocks oppure Visual C++ Express. DevC++ è pieno di bug e non più aggiornato o supportato.