Juego de combate en consola en c#

cerverus94

Bueno estoy creando un juego por consola basándome en los combates de Pokemon.
Ahora mismo estoy creando la clase jugador y quiero crear una función que se va a llamar ataque que reste 5 puntos de vida

using System;

class Jugador
{   
//puntos de vida public int pv = 60; public int Pv { get { return pv; } set { this.pv = value; } } //lista de tipos public enum TipoEleccion { Agua, Planta, Fuego }; public TipoEleccion tipo; //ataques //ataque normal public int Ataque (){ return pv-5; } //ataque por tipo }

La cosa es que en Main cada vez que llamo a la función Ataque siempre me da 55

using System;



class Program
{
    static void Main(string[] args)
    {
        //constructor del jugador1
        Jugador jugador1 = new Jugador();

    Console.Write("El jugador1 comienza con "+jugador1.pv+" puntos de vida");
    Console.WriteLine("");
    Console.Write("Escoge clase; 1 para Agua, 2 para Planta y 3 para Fuego: ");
    

    string Tipo = Console.ReadLine();
    int recoger = int.Parse(Tipo);


    switch (recoger)
    {
        case 1:
            jugador1.tipo = Jugador.TipoEleccion.Agua;
            
            break;
        case 2:
            jugador1.tipo = Jugador.TipoEleccion.Planta;
            
            break;
        case 3:
            jugador1.tipo = Jugador.TipoEleccion.Fuego;
            
            break;
    }

    Console.Write("Has escogido: " + jugador1.tipo);
    Console.WriteLine("");

    Jugador jugador2 = new Jugador();

    Console.Write("El jugador2 comienza con "+jugador2.pv+" puntos de vida");
    Console.WriteLine("");
    Console.Write("Escoge clase; 1 para Agua, 2 para Planta y 3 para Fuego: ");

    string Tipo2 = Console.ReadLine();
    int recoger2 = int.Parse(Tipo2);


    switch (recoger2)
    {
        case 1:
            jugador2.tipo = Jugador.TipoEleccion.Agua;

            break;
        case 2:
            jugador2.tipo = Jugador.TipoEleccion.Planta;

            break;
        case 3:
            jugador2.tipo = Jugador.TipoEleccion.Fuego;

            break;
    }

    Console.Write("Has escogido: " + jugador2.tipo);

    Console.WriteLine(jugador1.Ataque());
    //para comprobar si resta mas alla de 55
    Console.WriteLine(jugador1.Ataque());
}



}

¿Alguna solución?

Lecherito

#1 Pues por que no restas, simplemente devuelves el valor-5. Haz algo del tipo

vida -= 5;
return vida;

1 1 respuesta
Scottie

no se si he entendido bien el problema, pero en la funcion estas devolviendo la salud menos 5, y como la salud vale 60, le resta 5, y devuelve 55 xD

cerverus94

#2 Te quiero tío, llevo toda la jodida tarde con esto cuando lo termine te lo paso para que lo juegues

xuse92

yo tmb quiero jugaL :D

Usuarios habituales

  • xuse92
  • cerverus94
  • Scottie
  • Lecherito