elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con codigo de juego TAREA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con codigo de juego TAREA  (Leído 6,306 veces)
Jay

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Ayuda con codigo de juego TAREA
« Respuesta #10 en: 4 Octubre 2018, 14:21 pm »

#include <iostream>
#include <cctype>
#include <cstdlib>
#include <ctime>
#include <string.h>

using namespace std;

string Usuario();
string Usuario1();
string Maquina();
string Maquina1();
void DeterminaGanador(string, string string);
void DeterminaGanador1(string, string, string, string, string);

string Usuario(){

    int eleccion;


    do{
        cout<< "Porfavor presiona 1=Papel, 2=Piedra, 3=Tijeras: ";
        cin>>eleccion;


    }while(eleccion < 1 || eleccion > 3);


    if(eleccion == 1)
        return "Papel";
    else if(eleccion == 2)
        return "Piedra";
    else
        return "Tijeras";

}

string Usuario1(){

    int eleccion;

    do{

            cout<< "Porfavor presiona 1=Papel, 2=Piedra, 3=Tijeras, 4=Spock, 5=Lagarto: ";
            cin>>eleccion;

    }while(eleccion < 1 || eleccion > 5);

    if(eleccion == 1)
        return "Papel";

    else if(eleccion == 2)
        return "Piedra";
    else if(eleccion == 3)
        return "Tijeras";
    else if(eleccion == 4)
        return "Spock";

    else
        return "Lagarto";





}

string Maquina(){
    int numero;

    numero = (rand()%3)+1;

    if(numero ==1)
        return "Papel";
    else if(numero == 2)
        return "Piedra";
    else
        return "Tijeras";

}

string Maquina1(){
    int numero;

    numero = (rand()%5)+1;

    if(numero ==1)
        return "Papel";
    else if(numero == 2)
        return "Piedra";
    else if(numero == 3)
        return "Tijeras";
    else if(numero == 4)
        return "Spock";
    else
        return "Lagarto";

}

int *DeterminaGanador(string nombre, string Jugador, string Maquina){
        static int empate;
        static int ganar;
        static int perder;

    if(Jugador == Maquina){
         cout<< "Empate" << endl;
         empate++;
         return &empate;

    } else
            if((Jugador == "Piedra" && Maquina == "Tijeras") ||
                (Jugador == "Papel" && Maquina == "Piedra") ||
                (Jugador == "Tijeras" && Maquina == "Papel") ){

                   cout << "Resultado: "<< nombre<< " Eres el Ganador"<< endl;
                   ganar++;
                   return &ganar;
                }

        else
            cout << "Resultado: La Maquina Gana"<<endl;
            perder++;
            return &perder;

}

int *DeterminaGanador1(string nombre, string Jugador, string Maquina){

    int ganar, perder, empatar;
    if(Jugador == Maquina)
        cout<< "Empate" << endl;

    else if((Jugador == "Piedra" && Maquina == "Tijeras") ||
                (Jugador == "Papel" && Maquina == "Piedra") ||
                (Jugador == "Tijeras" && Maquina == "Papel") ||
                (Jugador == "Piedra" && Maquina == "Lagarto") ||
                (Jugador == "Lagarto" && Maquina == "Spock") ||
                (Jugador == "Spock" && Maquina == "Tijeras") ||
                (Jugador == "Tijeras" && Maquina == "Lagarto") ||
                (Jugador == "Lagarto" && Maquina == "Papel") ||
                (Jugador == "Papel" && Maquina == "Spock") ||
                (Jugador == "Spock" && Maquina == "Piedra") )

            cout << "Resultado: "<< nombre<<"Eres el Ganador" << endl;

    else
        cout << "Resultado: La Maquina Gana" << endl;


}


int main()
{
    string movimientoJugador;
    string OponenteMovimiento;
    char res;
    srand(time(NULL));
    string nombreJugador;
    int seleccion;
    int eleccion;



    cout<<"Indica el numero de tu seleccion" <<endl;
    cout<<"(1) Iniciar Juego"<<endl;
    cout<<"(2) Salir"<<endl;
    cin>>seleccion;


    if(seleccion==1){

     cout <<"Bienvenido al Juego. Porfavor Introduce un nombre: ";
     cin.ignore();
     getline(cin, nombreJugador);

     cout<<"Hola: "<<nombreJugador<<endl;

        cout<<"Indica como quieres jugar"<<endl;
        cout<<"(1) Normal"<<endl;
        cout<<"(2) Avanzado"<<endl;
        cin>>eleccion;

        if(eleccion==1){

        do{
            movimientoJugador = Usuario();
            OponenteMovimiento = Maquina();

            cout << "Juegas con: " << movimientoJugador << endl;
            cout << "La maquina juega con: " << OponenteMovimiento << endl;

            DeterminaGanador(nombreJugador, movimientoJugador, OponenteMovimiento);

            cout << "Quieres volver a jugar? [s/n]";
            cin>>res;


        }while(toupper(res) == 'S');
        if(toupper(res) == 'N'){
                cout << "Termina el juego estos son tus resultados!" <<endl;
                cin>>res;


            }


        }

        if(eleccion==2){

            do{

                movimientoJugador = Usuario1();
                OponenteMovimiento = Maquina1();

                cout << "Juegas con: " << movimientoJugador << endl;
                cout << "La maquina juega con: " << OponenteMovimiento << endl;

                DeterminaGanador1(nombreJugador, movimientoJugador, OponenteMovimiento);

                cout << "Quieres volver a jugar? [s/n]";
                cin>>res;


            }while(toupper(res) == 'S');
                if(toupper(res) == 'N'){
                cout << "Termina el juego estos son tus resultados!" <<endl;
                cin>>res;

                }

        }

    }

    if(seleccion==2){
        cout<<"Gracias por participar";

    } else(cout<<"Opcion no valida");





}
















LO DEJE ASI , SOLO ME GUSTARIA SABER COMO PONER ESE PUNTERO EN EL MAIN? PARA EL CONTADOR Y TAMBIEN COMO HUBIERA PODIDO VALIDAR LO DE QUE SI INSERTABAS UNA LETRA ALA HORA DEESCOGER PIEDRA PAPEL O TIJERAS NO SE CICLARA OSEA VALIDARLO, DIGO PARA TENERLO EN CUENTA EN MI PROXIMO PROYECTO


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda con codigo de juego TAREA
« Respuesta #11 en: 4 Octubre 2018, 15:39 pm »

Pon tu código entre etiquetas las etiquetas [code=c++] [/code]


En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Ayuda con codigo de juego TAREA
« Respuesta #12 en: 4 Octubre 2018, 15:57 pm »

Para sacar en pantalla el puntero simplemente usa
cout << *nombreDelPuntero;
al definir con static la variable, esta se guarda en memoria y no se destruye al acabar la función. Por lo que puedes utilizarla exactamente igual que si fuese una variable global.
Si no la declaras como static el contenido de la variable será sobrescrito en memoria por cualquier otra cosa que necesite almacenarse en memoria. Entonces cuando quisieses acceder al contenido de la variable, podrías encontrarte que en esa dirección de memoria hay otra cosa distinta. Por eso use static, para decirle que no quiero que la zona de memoria donde está alojada, no se sobreescriba y siempre me guarde el valor de la variable ahí, hasta que el programa finalice y libere la memoria.

Un puntero es lo mismo que una variable, pero le pones el * simplemente para que quien lea el código sepa que es un puntero.



Para que se haga algo, cuando el usuario introduzca un dato que tu no esperas puedes usar el switch case. Pones todos los valores que esperas que la variable argumento del switch pueda contener, y para el resto usas un solo default.

Por ejemplo:
Código
  1. switch (variableConUnNumeroEntero)
  2. {
  3. case 1: //esto se ejecuta si la variable variableConUnNumeroEntero
  4. //vale 1. Es exactamente lo mismo que poner:
  5. // if (variableConUnNumeroEntero == 1)
  6. //{lo que pasa si la variable vale1;}
  7. break;
  8.  
  9. case 2: // lo mismo, pero si la variable es igual a 2.
  10. //aquí pones lo que quieras que pase si la variable es == a 2.
  11. break;
  12.  
  13. default: //esto por lo general se aplicará siempre. Pero como hay un
  14. //break; en los otros casos, no se aplicará si alguno de ellos se
  15. //cumple, ya que al ejecutarse un break; el switch finaliza y deja de
  16. //comprobar si los otros case se cumplen.
  17. cout<< "Si lees esto en la salida del programa, quiere decir que la variable no valía ni 1 ni 2";
  18. break;



Si quieres que cuando el usuario ponga un valor erróneo se vuelva a ejecutar en bucle infinitamente hasta que el usuario ponga un valor válido, mete todo el switch dentro de un while y le cambias la condición desde dentro de un case o el default.

Por ejemplo:
Código
  1. int condicionParaDetenerElBucle = 0;
  2. int variableConUnNumeroEntero;
  3. while (condicionParaDetenerElBucle == 0)
  4. {
  5.         cout << "Introduce el número 1 para finalizar el programa"
  6.         <<endl;
  7.         cin >> variableConUnNumeroEntero;
  8.  
  9.         switch (variableConUnNumeroEntero)
  10.                      {
  11.  
  12.                       case 1:
  13.                    // Lo que quieras que pase;
  14.                      condicionParaDetenerElBucle =1;
  15.                      Break;
  16.  
  17.                       Default:
  18.                       cout <<"Tu opción no es válida, intentalo de nuevo".
  19.                       <<endl;
  20.                       break;
  21.  
  22.                      }
  23. }
  24.  
En línea

I like to test things.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Tarea en C# « 1 2 »
.NET (C#, VB.NET, ASP)
shamankaly 17 15,910 Último mensaje 28 Abril 2009, 06:44 am
por 410n5o
Corregir Código Juego - Ayuda
Scripting
NuBii 2 3,924 Último mensaje 13 Mayo 2009, 20:04 pm
por NuBii
AYUDA CON CODIGO DE JUEGO DE CARTAS
Ejercicios
kasidy 2 8,165 Último mensaje 26 Noviembre 2013, 16:00 pm
por kasidy
Ayuda con codigo de juego del gato C++
Programación C/C++
carlangasds 0 2,057 Último mensaje 6 Noviembre 2014, 04:04 am
por carlangasds
Ayuda con este código del juego Sodoku
Java
Curi0s0 3 2,796 Último mensaje 14 Junio 2018, 22:19 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines