Проблемы с простой битвой покемонов в C # - PullRequest
0 голосов
/ 20 марта 2019

Я делаю очень простую игру про покемонов с помощью C #.Основная идея заключается в том, что каждые 5 ходов первый Pokemon (Squirtle) увеличивает свой урон с помощью функции.Но когда я его скомпилирую, урон Squirtle такой же.Кто-нибудь знает, что происходит?

Вот код:

using System;

namespace FirstProgram
{
    class MainClass
    {
        static void Main(string[]args)
        {
            int turn = 1;

            int potion1 = 0;

            //Creando y declarando Pikachu
            Pokemon Pikachu = new Pokemon();

            Pikachu.health = 190;

            Pikachu.damage = 40;
            //Creando y declarando Squirtle

            Pokemon Squirtle = new Pokemon();

            Squirtle.health = 190;

            Squirtle.damage = 40;

            while (Pikachu.health > 0 && Squirtle.health > 0)
            {
                if(turn == 1)
                {
                    Squirtle.health = Squirtle.health - Pikachu.damage;

                    turn = 0;

                    potion1++;

                    Console.WriteLine("Pikachu atacks!");
                    Console.WriteLine("Squirtle has only " + Squirtle.health + " PV!");

                    if(potion1 == 5)
                    {
                        potion1 = 0;
                        Squirtle.MoreDamage(Squirtle.damage);
                        Console.WriteLine("Squirtle damage now it's  " + Squirtle.damage);
                    }                 
                }
                else
                {
                    Pikachu.health = Pikachu.health - Squirtle.damage;
                    turn = 1;
                    Console.WriteLine("Squirtle atacks!");
                    Console.WriteLine("Pikachu has only " + Pikachu.health + " PV!");
                }
            }

            if(Pikachu.health > 0)
            {
                Console.WriteLine("Pikachu wins!");
            }
            else if(Squirtle.health > 0)
            {
                Console.WriteLine("Squirtle wins!");
            }        
        }
    }
}

Pokemon.cs

class Pokemon
{
    //Declarando la vida y el ataque
    public int health;
    public int damage;

    //Creando metodo para aumentar el ataque
    public  void MoreDamage(powerup)
    {
        powerup= powerup+ 5;
    }
}

А вот вывод: output

Я пытался сделать что-то другое, например, изменить код функции, но все попытки имеют одинаковый результат: damage не включается.

1 Ответ

1 голос
/ 20 марта 2019

Метод MoreDamage() изменяет только параметр powerup. Вам нужно отредактировать свойство Pokemon damage.

Изменить это:

public  void MoreDamage(powerup)
{
    powerup= powerup+ 5;
}

к этому:

public void MoreDamage(int powerup)
{
    damage += powerup;
}

Затем измените ваш вызов на MoreDamage(), чтобы передать значение, которое вы хотите увеличить урон покемона на:

Squirtle.MoreDamage(5);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...