Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto function e procedure in C
Forum - C/C++ - Aiuto function e procedure in C

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 20:54
Martedì, 06/07/2010
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 =)
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define COLONNE    5  
  6. #define RIGHE      4
  7. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m);
  8. struct giocatore {
  9.        char nome[10];
  10.        char cognome[10];
  11.                 };
  12.     typedef struct giocatore gt;
  13.        void main()
  14.        {
  15.      
  16.            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;
  17.  
  18.            gt gioc ;
  19. char campo2[RIGHE][COLONNE]={
  20.     {'B','B','B','B','B'},
  21.     {'B','G',' ','G','B'},
  22.     {'B','A',' ','A','B'},
  23.     {'B','G',' ','G','B'}};
  24.            printf("Benvenuto nel programma di simulazione del gioco del tennis vuoi giocare?\n");
  25.            visualizza_mat(campo2,RIGHE,COLONNE);
  26.            printf("\n-- Inserisci il tuo nome -- \n");
  27.            scanf("%s",gioc.nome);
  28.            printf("-- Inserisci il tuo cognome -- \n");
  29.            scanf("%s",gioc.cognome);                    
  30.                                          srand(time(NULL));
  31.                perc_respinte=(n_lanci*80)/100;
  32.                 perc_respinte2=(500*80)/100;
  33. printf(">> IL GIOCO PUO' INIZIARE <<\n\n");
  34.  
  35.  
  36. for(i=0;i<100;i++){
  37.     totT=totT+tennista;
  38.     totS=totS+simulatore;
  39.     tennista=0;
  40.     simulatore=0;
  41. for(j=0;j<500;j++)    {                            //INIZIO for
  42.      char  campo2[RIGHE][COLONNE]={
  43.     {'B','B','B','B','B'},
  44.     {'B','G',' ','G','B'},
  45.     {'B','A',' ','A','B'},
  46.     {'B','G',' ','G','B'}};
  47.      palla=1+rand()%10;
  48.      do{                                    //INIZIO REPEAT UNTIL
  49.         r=rand()%4;
  50.         c=rand()%5;
  51.      }                                        //FINE REPEAT UNTIL
  52.      while ((c == 2) && (r == 1 || r == 2 || r == 3));
  53.    
  54.                  fflush(stdin);
  55.           campo2[r][c]='X';
  56.        
  57.  
  58.           if((r==2 && c ==1) || (r==2 && c==3))
  59.               tennista++;
  60.           else if((r==1 && c==1) || (r==1 && c==3) || (r==3 && c==1) || (r==3 && c==3)){
  61.          
  62.               if(palla<3)
  63.                   tennista++;
  64.               else
  65.                   simulatore++;
  66.                  }
  67.                        
  68.              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))            
  69.                      tennista++;
  70.                    }
  71.                   printf("%dTennista:%d\n",i,tennista);
  72.                   if(tennista>perc_respinte2)
  73.                       vittorie++;
  74.                   else
  75.                       sconfitte++;
  76.                                        }        //FINE for
  77. printf("\n-- Il giocatore ha totalizzato %d punti --\n",totT);
  78. printf("\n-- Il simulatore ha totalizzato %d punti --\n",totS);
  79. printf("\n-- Le partite vinte sono: %d quelle perse invece sono: %d --\n",vittorie,sconfitte);
  80.  
  81. 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);
  82. if(totT>perc_respinte)
  83.      printf("\n-- Hai vinto tu giocatore!! --\n");
  84. else
  85.      printf("\n-- Mi dispiace hai perso, ha vinto il simulatore --\n");
  86.  
  87. }
  88.  
  89.  
  90. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m)
  91. {
  92.     int i,j;
  93.     printf("\n");
  94.     printf("ECCO IL CAMPO DI TENNIS: \n");
  95.     for(i=0;i<RIGHE;i++)
  96.     {    
  97.         for(j=0;j<COLONNE;j++)
  98.             printf("  %c",b[i][j]);
  99.         printf("\n");
  100.     }
  101. }



grazie!

PM Quote
Avatar
qualcuno (Ex-Member)
Rookie


Messaggi: 37
Iscritto: 30/06/2010

Segnala al moderatore
Postato alle 21:03
Martedì, 06/07/2010
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 il 06/07/2010 alle 21:06


Nothing is impossible; impossible itself says "I' m possible"...
Qualunque sia la risposta tu non ce l'hai. (Gregory House)
PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 21:03
Martedì, 06/07/2010
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.


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:12
Martedì, 06/07/2010
Testo quotato

però nn riesco a farlo mi escono sempre molti errori.



Cominciamo da qui ... cosa avevi scritto e quali errori avevi ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:28
Martedì, 06/07/2010

è bello sentire "molti errori", da un che di mistico alla programmazione :D


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 21:30
Martedì, 06/07/2010
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

PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 21:33
Martedì, 06/07/2010
Testo quotato

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...


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:38
Martedì, 06/07/2010
Testo quotato

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


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:38
Martedì, 06/07/2010
Testo quotato

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  



Si partecipa ad un forum scrivendo in italiano. Quando non lo si può fare, si evita. E' una questione di rispetto per chi legge.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo