Voltear el dado en c++

Iniciado por shawwilliam, 25 Enero 2013, 15:49 PM

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

shawwilliam

hola necesito mucho ayuda estoy realizando un programada de voltear el dado en c++. el juego consiste en que se tira un dado al azar y le toca a la maquina o al jugador (nosostros) se anota la puntuacion de la cara superior y se resta 7 (las careas opuestas). A continuacion el juegador o la maquina dependiendo del turno se elige norte sur este y oeste. Si eliges norte por ejemplo : el resultado del dado es 1 al elegir norte se gira la cara y quedaria el correspondiente numeo ( 2). con este oeste y sur lo mismo este hacia la derecha sur hacia atras y oeste hacia la izquierda. la partida termina cuando la maquina o el jugador llegan a 50. si se lllega 50 pierdes . se debe anotar la puntuacion en cada lanzamiento. tambien hay q hacer el dibujo del dado- de momento tengo las caras y el lanzamiento del dado no consigo q las caras giren al hacer norte sur este y oeste y anote la puntuacion. me estoy volviendo loco y he estado mirando en libros webs foros y no encuentro la solucion. De verdad necesito q alguien me ayude tengo q entregarla este domingo. un saludo y gracias


codigo:
Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;  


int main(){   //generacion de caras del dado ( del 1 al 6 )
int norte,sur,este,oeste,random,cara1,cara2,cara3,cara4,cara5,cara6,face,Puntuacion = 0, partidasGanadas= 0,partidasEmpatadas = 0,partidasPerdidas = 0, puntuacionFinal = 0, eleccion1,cara,eJ,eC;
bool salir = false;
string eleccionJugador,reglas;
ifstream leer_reglas;


 
 
do{

cout << "Que quieres hacer?" << endl;
cout << "1- Juega y tira el dado" << endl;
cout << "6- Ver instrucciones" << endl;
cout << "0- Salir" << endl;
cin >> eleccion1;

switch(eleccion1)
{
  case 0:
     cout << "Puntuacion :" << Puntuacion << endl;
     cout << "Partidas Ganadas : " << partidasGanadas << endl;
     cout << "Partidas Perdidas : " << partidasPerdidas << endl;
     cout << "Partidas Empatadas : " << partidasEmpatadas << endl;
     cout << "Puntuacion final :" << puntuacionFinal << endl;
     cout << "Hasta luego!" << endl;
     cout <<"Pulse una enter para continuar....";
     cin.fail();
     cin.sync();
     cin.get();
     salir = true;
     break;

case 6:
     
     leer_reglas.open("reglas.txt");
     if(leer_reglas.is_open()){
     
        while (!leer_reglas.fail() && reglas != "XXX" ){
           getline ( leer_reglas,reglas);
              if (reglas != "XXX"){
                 cout << reglas << endl;
              }
        }
        leer_reglas.close();
     }
     
     break;

 

case 1:
srand(time(0));

cout << "resultado del dado" << endl;


for ( int i = 1; i <= 1; i++ ){
  cout << 1 + (rand()%6) << endl;

  }  
 
 
  srand (time(NULL));
 
  random = 1+(rand()%24);
 
  if ( random == 0 ){
 
  cara1 = 1;
  cara2 = 2;
  cara3 = 3;
 
 
 
  }
 
  else if ( random == 1 ){
  cara1 = 1;
  cara2 = 3;
  cara3 = 5;
 
 
 
  }
 
  else if ( random == 2 ){
  cara1 = 1;
  cara2 = 5;
  cara3 = 4;
 
  }
 
  else if ( random == 3 ){
  cara1 = 1;
  cara2 = 4;
  cara3 = 2;
 
  }
 
  else if ( random == 4 ){
  cara1 = 2;
  cara2 = 6;
  cara3 = 3;
 
  }
 
  else if ( random == 5 ){
  cara1 = 2;
  cara2 =3;
  cara3 =1;
 
  }  
 
  else if ( random == 6 ){
  cara1 = 2;
  cara2 =4;
  cara3 =6;
  }
 
 
  else if ( random == 7 ){
  cara1 =2;
  cara2 =1;
  cara3 =4;
 
  }
 
  else if ( random == 8 ){
  cara1 =3;
  cara2 =5;
  cara3 =1;
 
  }
 
  else if ( random == 9 ){
  cara1 =3;
  cara2 =1;
  cara3 =2;
 
  }
 
  else if ( random == 10 ){
  cara1 =3;
  cara2 =2;
  cara3 =6;
 
  }
 
  else if ( random == 11 ){
  cara1 =3;
  cara2 =5;
  cara3 =1;
 
  }
 
  else if ( random == 12){
  cara1 =4;
  cara2 =2;
  cara3 =1;
 
  }  
 
  else if ( random == 13 ){
  cara1 =4;
  cara2 =1;
  cara3 =5;
 
  }
 
  else if ( random == 14 ){
  cara1 =4;
  cara2 =5;
  cara3 =6;
 
  }
 
  else if ( random == 15 ){
  cara1 =4;
  cara2 =6;
  cara3 =2;
 
  }
 
  else if ( random == 16 ){
  cara1 =5;
  cara2 =6;
  cara3 =4;
 
  }
 
  else if ( random == 17 ){
  cara1 =5;
  cara2 =4;
  cara3 =1;
 
  }
 
  else if ( random == 18 ){
  cara1 =5;
  cara2 =1;
  cara3 =3;
 
  }
 
 
  else if ( random == 19 ){
  cara1 =5;
  cara2 =3;
  cara3 =6;
 
  }
 
  else if ( random == 20 ){
  cara1 =6;
  cara2 =5;
  cara3 =3;
 
  }
 
  else if ( random == 21 ){
  cara1 =6;
  cara2 =3;
  cara3 =2;
 
  }
 
  else if ( random == 22 ){
  cara1 =6;
  cara2 =2;
  cara3 =4;
 
  }
 
 
 
  else if ( random == 23 ){
  cara1 =6;
  cara2 =4;
  cara3 =5;
 
  }
 
 
 
     cout << "Elige elemento ( 1-norte, 2-sur, 3-este, 4-oeste)" << endl;
     cin >> eJ;
     while((eJ != 1)&&(eJ != 2)&&(eJ != 3)&&(eJ != 4))
     {
        cout << "Elemento desconocido. Intentelo de nuevo " << endl;
        cout << "Elige elemento ( 1-norte, 2-sur, 3-este, 4-oeste)" << endl;
        cin >> eJ;
       
       
           
       
       
     }
     
       
 
       
       
     switch(eJ){
     case 1: eleccionJugador = "norte";
     break;
     case 2: eleccionJugador = "sur";
     break;
     case 3: eleccionJugador = "este";
     break;
     case 4: eleccionJugador = "oeste";
     break;
     
     
     }
     
     

     


     
     srand (time(NULL));
     eC = 1+ rand ( ) % 6;
     
     switch(eC){
     case 2:
     
     
     
        cout << "eleccion cpu: norte" << endl;
        cout << "Tu eleccion : " << eleccionJugador << endl;  
       
           if ( (face == 1) || (eJ == 1)){
           cout << "puntuacion" << endl;
           
           srand(time(0));
           for ( int i = 1; i <= 1; i++ ){
           cout << 1 + (rand()%6) << endl;
           }

           
           
           
        cara1 = cara2;
        cara2 = (cara1)-7;
        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;
        }
       
       
       
     
        else if (( face == 2) || (eJ == 1)){
        cout << "puntuacion" << endl;
         
         
         srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
         
         
         
        cara2 = cara2;
        cara2 = (cara2)-7;  

        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;
       
        }
       
        else if (( face == 3)|| ( eJ == 1)){
        cout << "puntuacion" << endl;
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       

        cara3= cara2;
        cara2 = (cara3)-7;
        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;
        }
       
        else if (( face == 4)|| ( eJ == 1 )){
        cout << "puntuacion" << endl;
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       

        cara4 = cara2;
        cara2 = (cara4)-7;

        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;
       
        }
       
        else if (( face == 5)|| ( eJ == 1 )){
        cout << "puntuacion" << endl;
       

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
        cara5 = cara2;
        cara2 = (cara5)-7;

        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;    
       
        }
       


        else if (( face == 6)|| ( eJ == 1 )){
        cout << "puntuacion" << endl;
        cout << 1 + (rand()%6) << endl;  

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
     
        cara6 = cara2;
        cara2 = (cara6)-7;

        norte=true;
        sur=false;
        este=false;
        oeste=false;
        Puntuacion++;
       
        }
       
     ;break;

     case 3:
     
     cout << "eleccion cpu: sur" << endl;
     cout << "Tu eleccion : " << eleccionJugador << endl;  
     
     if ( (face == 1) || (eJ == 2) ){
        cout << "puntuacion" << endl;
        Puntuacion++;
       
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       

        cara2 = cara1;
        cara1 = (cara2)-7;
        norte=false;
        sur=true;
        este=false;
        oeste=false;
        }
     
        else if (( face == 2) || (eJ == 2) ){
        cout << "puntuacion" << endl;
        Puntuacion++;
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
       

        cara2 = cara1;
        cara1 = (cara2)-7;
        norte=false;
        sur=true;
        este=false;
        oeste=false;
        }


         
        else if (( face == 3) || (eJ == 2) ){
        cout << "puntuacion" << endl;
       

        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
       
       
       
        cara3 = cara1;
        cara1 = (cara3)-7;
        norte=false;
        sur=true;
        este=false;
        oeste=false;
        Puntuacion++;


        }
       
        else if (( face == 4) || (eJ == 2) ){
        cout << "puntuacion" << endl;
        Puntuacion++;

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
        cara4 = cara1;
        cara1 = ( cara4 )-7;
        norte=false;
        sur=true;
        este=false;
        oeste=false;

        }
       
        else if (( face == 5) || (eJ == 2) ){
        cout << "puntuacion" << endl;
        Puntuacion++;


        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
       
        cara5 = cara1;
        cara1 = ( cara5 )-7;
        norte=false;
        sur=true;
        este=false;
        oeste=false;
        }
       
        else if (( face == 6) || (eJ == 2) ){
        cout << "puntuacion" << endl;
        Puntuacion++;


        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
        cara6 = cara1;
        cara1 = (cara6)-7;

        norte=false;
        sur=true;
        este=false;
        oeste=false;


        }
        break;
     
     
     case 4:
     
     cout << "eleccion cpu: este" << endl;
     cout << "Tu eleccion : " << eleccionJugador << endl;  
     
     
     if ((face == 1) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;  

        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
       
        cara1 = cara3;
        cara3 = (cara1)-7;
        norte=false;
        sur=false;
        este=true;
        oeste=false;
        }
     
        else if (( face == 2) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;


       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
        cara2 = cara3;
        cara3 = (cara2)-7;
        norte=false;
        sur=false;
        este=true;
        oeste=false;
        }  
       
        else if (( face == 3) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
        cara3 = cara3;
        cara3 = (cara3)-7;

        norte=false;
        sur=false;
        este=true;
        oeste=false;  
        }
       
        else if (( face == 4) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       

       
        cara4 = cara3;
        cara3 = (cara4)-7;

        norte=false;
        sur=false;
        este=true;
        oeste=false;
        }
       
        else if (( face == 5) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;

       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
        cara5 = cara3;
        cara3 = (cara5)-7;

        norte=false;
        sur=false;
        este=true;
        oeste=false;

        }
       
       
        else if (( face == 6) || (eJ == 3) ){
        cout << "puntuacion" << endl;
        Puntuacion++;


        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       
       
        cara6 = cara3;
        cara3 = (cara6)-7;
       
       
        norte=false;
        sur=false;
        este=true;
        oeste=false;
       
        }  
        break;
       
        case 5:
       
        cout << "eleccion cpu: oeste" << endl;
        cout << "Tu eleccion : " << eleccionJugador << endl;  
       
       
        if ( (face == 1) || (eJ == 4) ){
        cout << "puntuacion" << endl;
         
         
         
         srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
         
         
         
         

        cara1 = cara4;
        cara4 = (cara1)-7;
        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;  
        }
     
        else if (( face == 2) || (eJ == 4) ){
        cout << "puntuacion" << endl;
         

         
         srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
         
         
         
        cara2=cara4;
        cara4=(cara2)-7;
       
        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;
        }
       
        else if (( face == 3) || (eJ == 4) ){
        cout << "puntuacion" << endl;
         

         
         srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
         
         
         
         
         
        cara3 = cara4;
        cara4= (cara3)-7;

        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;
        }  
       
        else if (( face == 4) || (eJ == 4) ){
        cout << "puntuacion" << endl;
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
               
        cara4 = cara4;
        cara4 = (cara4)-7;
       
        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;
       
        }


        else if (( face == 5) || (eJ == 4) ){
        cout << "puntuacion" << endl;
         

         
         srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
         
         
         
         
         

        cara5= cara4;
        cara4 = (cara5)-7;



        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;

        }  
       
        else if (( face == 6) || (eJ == 4) ){
        cout << "puntuacion" << endl;
       
       
        srand(time(0));
        for ( int i = 1; i <= 1; i++ ){
        cout << 1 + (rand()%6) << endl;
        }
       
       
       
       

        cara6 = cara4;
        cara4 = (cara6)-7;

        norte=false;
        sur=false;
        este=false;
        oeste=true;
        Puntuacion++;
        }
       
        break;
       
       
       
       
     }  
       
  }
}while (!salir);
  return 0;
 
  }
 
 

 
  [MOD] El codigo se pone entre etiquetas, gracias.

leosansan

Para empezar bastaría con declarar "srand (time(NULL));" al comienzo el main y no llamarlo cada vez ya que así corres el riesgo que siempre te salga el mismo valor.
La puntuación lo miraré con más calma.
Saluditos".


shawwilliam

cuando puedas dime q mas esta mal gracias

leosansan

Cita de: shawwilliam en 25 Enero 2013, 17:39 PM
cuando puedas dime q mas esta mal gracias
Seguro que al elegir la opción 1 y el tipo norte,sur,etc te sale el menú principal sin que haga ninguna jugada. Eso se debe a que la opción de eC la tienes como "eC = 1+ rand ( ) % (6);" con lo que cuando sale "eC = 1 o 6 no se corresponde con los case de eC, que van de 2 a 5. Por eso debes cambiarlo a "2+ rand ( ) % (4);".
Por otro lado no tienes implementada la forma de calcular jugadas ganadas,empatadas, perdidas y, lo principal, simplemente jugadas. Este último caso lo logras con:

Código (cpp) [Seleccionar]

                      ...................................
case 1:
       partidasJugadas++; <==declara como int a esta variable
       cout << "resultado del dado: " ;
       cout << 1 + (rand()%6) << endl;

Ya me diras que tal te va con la implementación de las otras variables.
Saluditos!.

shawwilliam

una vez q he implenteado las partidas jugadas.¿ seria exactamente igual q con las partidas perdidas,ganadas,y final ?

leosansan

#6
Cita de: shawwilliam en 26 Enero 2013, 16:35 PM
una vez q he implenteado las partidas jugadas.¿ seria exactamente igual q con las partidas perdidas,ganadas,y final ?
La partidasJugadas sería igual a las ganadas+perdidas+empatadas.
Por cierto, ¿podrías explicarme mejor el sistema de puntuación?.
Aparentemente es el resultado del dado más la cara -norte,sur,este,oeste- que elija. ¿O estoy equivocado?. No entiendo lo de restarle 7 que comentas. :P
Saluditos!.

shawwilliam

otra cosa como haria el dibujo del dado ?????

leosansan

Cita de: shawwilliam en 26 Enero 2013, 17:18 PM
otra cosa como haria el dibujo del dado ?????
En C++ a secas nada de nada.
Habría que recurrir a las API de windows y sus directx, o bien a las librerías de openGL o SDL o ...... Pero son librerías, a encontrar, instalar y saber manejar sus funciones respectivas.
Como vez ,un nuevo  mundo se abre ante tus ojos .... y hay más,claro.
Saluditos!.

shawwilliam

hay q restarle 7 debido a las caras opuestas es como la profe ha dicho q lo hagamos