首页 > 解决方案 > C#中简单的口袋妖怪战斗的麻烦

问题描述

我正在用 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!");
            }        
        }
    }
}

口袋妖怪.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;
    }
}

这是输出: 输出

我尝试做其他事情,比如更改函数的代码,但所有尝试都有相同的结果:damage没有启动。

标签: c#function

解决方案


MoreDamage()方法只是修改powerup参数。您需要改为编辑Pokemon'damage属性。

改变这个:

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

对此:

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

然后,将您的调用更改MoreDamage()为传递您希望通过以下方式增加口袋妖怪伤害的值:

Squirtle.MoreDamage(5);

推荐阅读