codice:
#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 j,r,i,c,simulatore=0,tennista=0,palla,n_lanci=50000,vittorie=0,sconfitte=0,perc_respinte=0,perc_respinte2=0;
int campo[4][5];
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("%c",&gioc.nome);
fflush(stdin);
printf("-- Inserisci il tuo cognome -- \n");
scanf("%c",&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=1;i<100;i++)
for(j=1;j<500;j++)
{ char campo2[RIGHE][COLONNE]={
{'B','B','B','B','B'},
{'B','G',' ','G','B'},
{'B','A',' ','A','B'},
{'B','G',' ','G','B'}};
//INIZIO FOR
palla=1+rand()%10;
do{ //INIZIO REPEAT UNTIL
r=1+rand()%4;
c=1+rand()%5;
} //FINE REPEAT UNTIL
while((r!=2 && c!=3) || (r!=3 && c!=3) || (r!=4 && c!=3)) ;
campo[r][c]=palla;
fflush(stdin);
campo2[r-1][c-1]='X';
visualizza_mat(campo2,RIGHE,COLONNE);
printf("%d comb: r=%d c=%d pall=%d\n",j,r,c,palla);
if((r==3 && c ==2) || (r==3 && c==4))
tennista++;
else if((r==2 && c==2) || (r==2 && c==4) || (r==4 && c==2) || (r==4 && c==4)){
if(palla<3)
tennista++;
else
simulatore++;}
if((r==1 && c==1) || (r==1 && c==2) || (r==1 && c==3) || (r==1 && c==4) || (r==1 && c==5) || (r==2 && c==1) || (r==2 && c==5) || (r==3 && c==1) || (r==3 && c==5) || (r==4 && c==1) || (r==4 && c==5))
tennista++;
if(tennista>perc_respinte2)
vittorie++;
else
sconfitte++;
} //FINE FOR
printf("\n-- Il giocatore ha totalizzato %d punti --\n",tennista);
printf("\n-- Il simulatore ha totalizzato %d punti --\n",simulatore);
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(tennista>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");
}
}
però la pallina da tennis indicata nella matrice dalla 'X' si trova anche nelle posizioni in cui nn dovrebbe ossia al centro della matrice(da leggere il testo e vedere l'immagine) se poi cambio la condizione del repeat until