Oppure

Loading
06/07/10 18:54
Leonhearth
Raga io avrei questo codice che ho realizzato e dovrei "sistemarlo" con procedure o function.. però nn riesco a farlo mi escono sempre molti errori.. ora posto il codice tt fatto nel main qualcuno può aiutarmi a renderlo + guardabile usando function e procedure? grazie =)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define COLONNE    5  
#define RIGHE      4
void visualizza_mat(char b[RIGHE][COLONNE],int n,int m);
struct giocatore {
       char nome[10];
       char cognome[10];
                };
    typedef struct giocatore gt;
       void main()
       {
      
           int totT=0,totS=0,j,r,i,c,simulatore=0,tennista=0,palla,n_lanci=50000,vittorie=0,sconfitte=0,perc_respinte=0,perc_respinte2=0;

           gt gioc ;
char campo2[RIGHE][COLONNE]={
    {'B','B','B','B','B'},
    {'B','G',' ','G','B'},
    {'B','A',' ','A','B'},
    {'B','G',' ','G','B'}};
           printf("Benvenuto nel programma di simulazione del gioco del tennis vuoi giocare?\n");
           visualizza_mat(campo2,RIGHE,COLONNE);
           printf("\n-- Inserisci il tuo nome -- \n");
           scanf("%s",gioc.nome);
           printf("-- Inserisci il tuo cognome -- \n");
           scanf("%s",gioc.cognome);                     
      					 srand(time(NULL)); 
               perc_respinte=(n_lanci*80)/100;
                perc_respinte2=(500*80)/100;
printf(">> IL GIOCO PUO' INIZIARE <<\n\n");


for(i=0;i<100;i++){
    totT=totT+tennista;
    totS=totS+simulatore;
    tennista=0;
    simulatore=0;
for(j=0;j<500;j++)    {                            //INIZIO for
     char  campo2[RIGHE][COLONNE]={
    {'B','B','B','B','B'},
    {'B','G',' ','G','B'},
    {'B','A',' ','A','B'},
    {'B','G',' ','G','B'}};
     palla=1+rand()%10;
     do{                                    //INIZIO REPEAT UNTIL
        r=rand()%4;
        c=rand()%5;
     }                                        //FINE REPEAT UNTIL
     while ((c == 2) && (r == 1 || r == 2 || r == 3));
    
                 fflush(stdin);
          campo2[r][c]='X';
        

          if((r==2 && c ==1) || (r==2 && c==3))
              tennista++;
          else if((r==1 && c==1) || (r==1 && c==3) || (r==3 && c==1) || (r==3 && c==3)){
          
              if(palla<3)
                  tennista++;
              else
                  simulatore++;
                 }
                       
             if(((r==0) && (c==0 || c==1 || c==2 || c==3 || c==4)) || (r==1 && c==0) || (r==1 && c==4) || (r==2 && c==0) || (r==2 && c==4) || (r==3 && c==0) || (r==3 && c==4))            
                     tennista++;
                   }
                  printf("%dTennista:%d\n",i,tennista);
                  if(tennista>perc_respinte2)
                      vittorie++;
                  else
                      sconfitte++;
                                       }        //FINE for
printf("\n-- Il giocatore ha totalizzato %d punti --\n",totT);
printf("\n-- Il simulatore ha totalizzato %d punti --\n",totS);
printf("\n-- Le partite vinte sono: %d quelle perse invece sono: %d --\n",vittorie,sconfitte);

printf("\nPer vincere il giocatore deve totalizzare un numero di punti maggiore della \npercentuale di lanci respinti che risulta essere: %d, di conseguenza :\n",perc_respinte);
if(totT>perc_respinte)
     printf("\n-- Hai vinto tu giocatore!! --\n");
else
     printf("\n-- Mi dispiace hai perso, ha vinto il simulatore --\n");

}


void visualizza_mat(char b[RIGHE][COLONNE],int n,int m)
{
    int i,j;
    printf("\n");
    printf("ECCO IL CAMPO DI TENNIS: \n");
    for(i=0;i<RIGHE;i++)
    {    
        for(j=0;j<COLONNE;j++)
            printf("  %c",b[i][j]);
        printf("\n");
    }
}


grazie!
aaa
06/07/10 19:03
qualcuno
Prova a sistemarlo tu tramite l'uso di funzione e procedure. Se ti da degli errori di compilazione o di altra natura posti il codice insieme agli errori/warning del compilatore oppure se non si comporta come ti aspetti, dici cosa fa, quale valore ti da in uscita (l'output del programma) e l'output che ti aspetti tu in corrispondenza dei medesimi dati di input.
Inoltre il titolo del thread è troppo generico...
Ultima modifica effettuata da qualcuno 06/07/10 19:06
aaa
06/07/10 19:03
ShellC91
Per quanto riguarda il ciclo che genera casualmente gli eventi della partita ti consiglio di mettere tutto dentro a una funzione separata che ritorna quei valori in modo da rendere più leggibile il programma.
aaa
06/07/10 19:12
però nn riesco a farlo mi escono sempre molti errori.


Cominciamo da qui ... cosa avevi scritto e quali errori avevi ?
06/07/10 19:28
HeDo

è bello sentire "molti errori", da un che di mistico alla programmazione :D
aaa
06/07/10 19:30
Leonhearth
il prbl principale era il passaggio dei parametri soprattutto qnd lavoro con gli struct :\ ad es nel 2 ciclo for vorrei togliere di mezzo tt quel casino, che parametri dovrei passare alla procedura secondo voi?
p.s. nn posso riportare gli errori perchè sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD
aaa
06/07/10 19:33
ShellC91
Postato originariamente da Leonhearth:

il prbl principale era il passaggio dei parametri soprattutto qnd lavoro con gli struct :\ ad es nel 2 ciclo for vorrei togliere di mezzo tt quel casino, che parametri dovrei passare alla procedura secondo voi?
p.s. nn posso riportare gli errori perchè sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD

Devi passare il puntatore della struttura.
Cerca di scrivere in un italiano comprensibile e senza abbraviazioni...
aaa
06/07/10 19:38
HeDo
Postato originariamente da Leonhearth:
p.s. nn posso riportare gli errori perchè sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD


torna a giocare che è meglio, quando vuoi venir qui a lavorare fai un fischio, la gente qui non accetta scuse di questo tipo XD
aaa