Mancato output dei messaggi

di il
4 risposte

Mancato output dei messaggi

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>
//variabili di ogni carta
struct carte{
	char nome[30]; //nome della carta es. Asse di spade
	int id; //numero compreso tra 1 e 10 che identifica il num della carta es. asse spade id=1; 2 di bastoni id=1, ecc.
	int id_generico; // numero compreso tra 1 e 40 che identifica TUTTE le carte es. asse s ha id 0, asse b ha id 10
	int seme; // 1 spade, 2 bastoni, 3 denari, 4 coppe
	int punti; // valore dei punti di ogni carta es asse--> punti=11
	int valore_strozzo; //numero per identificare quale fra 2 carte dello stasso seme è > es. 2 spade ha val di strozzo=0 asse di spade val di strozzo=9 3 di spade val s=8 ecc.
	int status; //se status=0 carta non pescata, se status=1 carta pescata
	int briscola; // se bricola=0 il seme non è briscola se 1 lo è
	int carta_sotto; //se 1 questa carta è quella sotto tutte e definisce la briscola e sara l'ultima pescata
	};
struct giocatore{
	int turno; //chi gioca per primo se turno=1 inizi per primo se = a 2 per secondo //p.s devo ancora capire come usarla bene
	char nome[30];
	struct carte carte_mano[3];
};
int main(int argc, char*argv[]){
	int i,j,k;//variabili per i cicli o altro(possono essere inutili)
	int resto; //vedi nel primo for
	int punti_fatti; //punti del giocatore
	int id_generato;
	struct carte carta[41];//41 perche carta[0] non lo usiamo ma solo da 1 a 40
	struct giocatore umano, AI;
	int scelta;//decidere che carta giocare
	srand(time(NULL)); //inizializzazione generatore
	j=0;
	k=0;



	// Dichiarazione carte
	for(i=1; i<41; i++)
	{
		// ID carta, seme
		if(i/10 <= 1) 
		{
			carta[i].id=i; //spade 1-10
			carta[i].seme=1;
		}
			
		if(i/10 > 1 && i/10 <= 2)
		{
			carta[i].id=i-10; //bastoni 11-20
			carta[i].seme=2;
		}
			
		if(i/10 > 2 && i/10 <= 3)
		{
			carta[i].id=i-20; //denari 21-30
			carta[i].seme=3;
		}
			
		if(i/10 > 2 && i/10 <=40)
		{
			carta[i].id=i-30; //coppe 31-40
			carta[i].seme=4;
		}
				
		// ID carta generico
		carta[i].id_generico=i; 
		
		// punti, strozzo
		if(i==1 || i==11 || i==21 || i==31) 
		{
			carta[i].punti=11; // asse
			carta[i].valore_strozzo=9;
		}
			
		if(i==2 || i==12 || i==22 || i==32)
		{
			carta[i].punti=0; // 2
			carta[i].valore_strozzo=0;
		}
		 
		if(i==3 || i==13 || i==23 || i==33)
		{
			carta[i].punti=10; // 3
			carta[i].valore_strozzo=8;
		}
			
		if(i==4 || i==14 || i==24 || i==34) 
		{
			carta[i].punti=0; // 4
			carta[i].valore_strozzo=1;
		}
			
		if(i==5 || i==15 || i==25 || i==35) 
		{
			carta[i].punti=0; // 5
			carta[i].valore_strozzo=2;
		}
			
		if(i==6 || i==16 || i==26 || i==36) 
		{
			carta[i].punti=0; // 6
			carta[i].valore_strozzo=3;
		}
			
		if(i==7 || i==17 || i==27 || i==37) 
		{
			carta[i].punti=0; // 7
			carta[i].valore_strozzo=4;
		}
			
		if(i==8 || i==18 || i==28 || i==38)
		{
			carta[i].punti=2; // fante
			carta[i].valore_strozzo=5;
		}
		
		if(i==9 || i==19 || i==29 || i==39)
		{
			carta[i].punti=3; // cavallo
			carta[i].valore_strozzo=6;
		}
				
		if(i==10 || i==20 || i==30 || i==40)
		{
			carta[i].punti=4; // re
			carta[i].valore_strozzo=7;
		}
		
		// status
		carta[i].status=0;
		
		// briscola
		carta[i].briscola=0;
		
		// carta sotto
		carta[i].carta_sotto=0;
		
	}
	
	
	
	
	strcpy(carta[1].nome,"asse spade");
	strcpy(carta[2].nome,"2 spade");
	strcpy(carta[3].nome,"3 spade");
	strcpy(carta[4].nome,"4 spade");
	strcpy(carta[5].nome,"5 spade");
	strcpy(carta[6].nome,"6 spade");
	strcpy(carta[7].nome,"7 spade");
	strcpy(carta[8].nome,"fante spade");
	strcpy(carta[9].nome,"cavallo spade");
	strcpy(carta[10].nome,"re spade");
	strcpy(carta[11].nome,"asse bastoni");
	strcpy(carta[12].nome,"2 bastoni");
	strcpy(carta[13].nome,"3 bastoni");
	strcpy(carta[14].nome,"4 bastoni");
	strcpy(carta[15].nome,"5 bastoni");
	strcpy(carta[16].nome,"6 bastoni");
	strcpy(carta[17].nome,"7 bastoni");
	strcpy(carta[18].nome,"fante bastoni");
	strcpy(carta[19].nome,"cavallo bastoni");
	strcpy(carta[20].nome,"re bastoni");
	strcpy(carta[21].nome,"asse denari");
	strcpy(carta[22].nome,"2 denari");
	strcpy(carta[23].nome,"3 denari");
	strcpy(carta[24].nome,"4 denari");
	strcpy(carta[25].nome,"5 denari");
	strcpy(carta[26].nome,"6 denari");
	strcpy(carta[27].nome,"7 denari");
	strcpy(carta[28].nome,"fante denari");
	strcpy(carta[29].nome,"cavallo denari");
	strcpy(carta[30].nome,"re denari");
	strcpy(carta[31].nome,"asse coppe");
	strcpy(carta[32].nome,"2 coppe");
	strcpy(carta[33].nome,"3 coppe");
	strcpy(carta[34].nome,"4 coppe");
	strcpy(carta[35].nome,"5 coppe");
	strcpy(carta[36].nome,"6 coppe");
	strcpy(carta[37].nome,"7 coppe");
	strcpy(carta[38].nome,"fante coppe");
	strcpy(carta[39].nome,"cavallo coppe");
	strcpy(carta[40].nome,"re coppe");

	for(i=0; i<6;i++){ //6 perché sono 3 carte per te e 3 per il computer
		resto=i%2; 
		if(resto==0){
	
		do{
			id_generato=rand()%40+1;
    	}while(carta[id_generato].status=1);
		carta[id_generato].status=1;
		umano.carte_mano[j]=carta[id_generato];
		j++;
	
	}
	else
	{
		do{
			id_generato=rand()%40+1;
    	}while(carta[id_generato].status=1);
		carta[id_generato].status=1;
		AI.carte_mano[k]=carta[id_generato];
		k++;}
	}

	//scelta carta sotto e impostazione della briscola su tutte le carte

	do{
		id_generato=rand()%41;
	}while(carta[id_generato].status=1);
    carta[id_generato].status=1;
    carta[id_generato].carta_sotto=1;
    for(i=1; i<41; i++){
    	if(carta[i].seme==carta[id_generato].seme){
    		carta[i].briscola=1;
		}
	}
	//inizio partita vera e propria
	
	for(i=0;i<19;i++){  //ho messo 19 perche le mani giocate tutte in egual modo quindi esclusa l'ultima(che integreremo con alte if per ora tengo questo poi lo cambieremo)
	printf("sciegli la carta da giocare\n");
	printf("1)%s\n2)%s3)%s\n",umano.carte_mano[0].nome,umano.carte_mano[1].nome,umano.carte_mano[2]);
	scanf("%d",&scelta);
	}
system("PAUSE");
return 0;
}
Buongiorno, ho scritto la parte sopra riportata di un programma che non ho ancora ultimato però già così come è dovrebbe darmi in output alcuni messaggi(come quelli nella parte finale) ma ciò non accade, invece se ne metto uno appena dopo le dichiarazioni quello me lo comunica(solamente quello). Sapreste dirmi perchè?

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte