juego de craps (1000)tiradas , histograma de frecuencia y tiradas..

Iniciado por manuel_venezuela, 3 Agosto 2011, 17:07 PM

0 Miembros y 1 Visitante están viendo este tema.

manuel_venezuela

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define LANZAMIENTOS 1000

#define SIZE 22//PARA EL OTRO

int tiradados(void);

main()
{

   int estado_juego,sum,myPoint;
   int ganados[SIZE]={0},perdidos[SIZE]={0};
   int frecuencia[LANZAMIENTOS]={0};
   int lanzamiento;
   float longitud=0;
   int z,i,j,k;
   int ganado=0,perdido=0;

   float probabilidad=0;


   srand(time(0));

   for(i=1;i<=LANZAMIENTOS;i++)//para simular 1000 lanzamientos
   {
         
         
   sum=tiradados();/*primer tiro de los dados*/
   
   lanzamiento=1;

   switch(sum){
   

   case 7:case 11:     
      estado_juego=1;   
      ++frecuencia[sum];
      break;

   case 2:case 3:case 12:
      estado_juego=2;
      ++frecuencia[sum];
      break;
   
   default:
      estado_juego=0;
      myPoint=sum;
      printf("su punto es: %d\n",myPoint);
      ++frecuencia[sum];
      break;      

      
   }
   
      

   

   





while(estado_juego==0){

   
   sum=tiradados();
   ++lanzamiento;

printf("%d",lanzamiento);
if(sum==myPoint)
         estado_juego=1;
else
   if(sum==7)               
         estado_juego=2;

   
   
   }
if(lanzamiento>21)
   lanzamiento=21;

//if(estado_juego==1){
      
      //++ganados;
   
//   }

   
//   if(estado_juego==2){
   //   ++perdidas[lanzamiento];
      //++perdidas;
         
//   }
   


   if(estado_juego==1){
      printf("Player wins\n");
      ++ganado;
      ++ganados[lanzamiento];         
   }

   else{
      printf("Player loses\n");
   ++perdido;

      ++perdidos[lanzamiento];

   }


}
      
               

   


   printf("juegos ganados: %d\n",ganado);
   printf("juegos perdidos: %d\n",perdido);

   //probabilidad=(float)ganado/LANZAMIENTOS;
   probabilidad=100.0*ganado/(ganado+perdido);
   printf("la probabilidad de ganar es: %f\n",probabilidad);
   
   printf("\n");

   printf("%s%13s\n","valor","frecuencia");

   for(j=2;j<=SIZE2-1;j++)
      printf("%d%13d\n",j,frecuencia[j]);

      
   printf("Juegos ganados o perdidos antes de 20 lanzamientos\n"
      "y despues de 21 lanzamientos\n\n");
   
   for(z=1;z<=21;++z){
      if (!(z % 3))
         printf("\n");
      printf("ganados fueron:   %d   %d   \n",z,ganados[z]);
      }
   printf("\n");

   printf("********perdidos**********");
   printf("\n");
   for(z=1;z<=21;++z){
      if (!(z % 3))
         printf("\n");
      printf("perdidos fueron:   %d   %d   \n",z,perdidos[z]);
      }

   for(k=1;k<=21;k++)
      longitud+=ganados[k]*k+perdidos[k]*k;
   
   printf("el promedio del juego es %f:\n",longitud/1000.0);
      
               

   return 0;

}



   int tiradados(void)
   {
   
      int lanzamiento1,lanzamiento2,suma_lanzamientos;

      lanzamiento1=1+(rand()%6);
      lanzamiento2=1+(rand()%6);
      suma_lanzamientos=lanzamiento1+lanzamiento2;

      printf("el jugador a lanzado:  %d+%d=%d\n",lanzamiento1,lanzamiento2,suma_lanzamientos);

      return suma_lanzamientos;

   
   }


Ferno

Primero, utiliza las etiquetas Geshi para postear código.
Segundo, explica a modo de introducción qué pretendes al crear el hilo, si tienes alguna pregunta o si sólo quieres mostrar el code para críticas constructivas.
Tercero, comenta el código!!! Ten en cuenta que cuesta un poco leer código ajeno :P

manuel_venezuela

bien tomare en cuenta, ....tus indicaciones , y con este codigo solo trataba de comentar este problema que solo lo vi resuelto en 1 sola parte de la internet en beneficio de alguien que lo buscara....ok saludos desde venezuela