如何在不同的方法中添加整数

本文关键字:方法 添加 整数 | 更新日期: 2023-09-27 18:05:49

我对c#非常陌生,对使用"正确的代码"的理解非常有限。我的目标是尽我所能地模仿旧的《口袋妖怪》战斗系统,并且很难将HP的存储int值连接在两种方法(假设这是正确的词)之间,以便在第二种方法与主要方法交互时计算新HP。在搜索中很难找到答案所以这里是代码:

" static void Main(string[] args)
        {
            Random Gen = new Random();
            int enemyhealth = (150);
            int playerhealth = (100); //the line i need to use
            int edefense = (20);
            int pattack = (30);
            int rate = Gen.Next(1,5);
            int critical = 0;                   "

 static void enemyattack()
        {
            Random Gen1 = new Random();
            int pdefense = (20);
            int eattack = (20);
            int erate = Gen1.Next(1, 5);
            int ratattack = Gen1.Next(1,3);
            int critical1 = 0;
            Console.WriteLine("Enemy Ratta gets ready!");
            Console.ReadKey();
            Console.WriteLine("----------------------------------------------------------------------------");
            Console.WriteLine("'nEnemy Ratta attacks!'n");
            Console.WriteLine("----------------------------------------------------------------------------");
            ratattack = Gen1.Next(1,3);
            if (ratattack = 1)
            {
                Console.WriteLine("Enemy Ratta used Tail Whip!");
                pdefense = (pdefense - erate);
                Console.ReadKey();
                Console.WriteLine("----------------------------------------------------------------------------");
                erate = Gen1.Next(1, 5);
                if (erate <= 3)
                {
                    Console.WriteLine("'nIt wasn't very effective!");
                }
                else
                {
                    Console.WriteLine("'nIt was super effective!");
                }
                Console.WriteLine("Squirtle's Defense decreased by " + erate + "");
                Console.WriteLine("----------------------------------------------------------------------------");
            }
            else if (ratattack == 2)
            {
                Console.WriteLine("'nRatta used Tackle");
                erate = Gen1.Next(1, 5);
                if (erate >= 5)
                {
                    Console.WriteLine("----------------------------------------------------------------------------");
                    Console.WriteLine("----------------------------------------------------------------------------");
                    Console.WriteLine("'nCRITICAL HIT!!!!");
                    Console.WriteLine("----------------------------------------------------------------------------");
                    Console.WriteLine("----------------------------------------------------------------------------'n");
                    Console.ReadKey();
                    Console.WriteLine("It was super effective!");
                    Console.ReadKey();
                    eattack = eattack + 10;
                }
                else
                {
                    critical1 = Gen1.Next(1, 5);
                    eattack = critical1 + eattack;
                }
                phealth = Math.Abs((eattack - pdefense) - playerhealth);    ***//This Line is where I'm having trouble because phealth is used in my first method as a stored integer and the new calculation for phealth won't interact with the phealth in the origional main, i simply belive I haven't learned that part of c#, I only have 5 hours of youtube tutorials.***
                Console.WriteLine("Ratta dealt " + Math.Abs(eattack - pdefense) + " damage!");
                eattack = 30;
                Console.WriteLine("'n----------------------------------------------------------------------------");
                Console.ReadKey();
                Console.ReadKey();
            }
        }
    }
}

如何在不同的方法中添加整数

创建Static方法,或者简单地将变量添加到主类中(主方法存储的地方)这里示例

class Program
{
int HP;
int Main()
{
HP=0; //Now you HP is 0;
Method();
}
void Method()
{
HP+=50; //Now you HP is 50 
}

}

我会把东西分成不同的类。例如,你应该有一个包含玩家所有信息的Player类。你不能在主程序中使用这样的方法。你需要把每件事都分开。为每个需要的对象创建一个类。

public class Player
{
 int currentHp = 100;
 int maxHp = 100;
 int atkPower = 20;
 int defense = 20;
 string playerName = "Ashe"
 public Player() {}
 public void TakeDamage(int damage)
 {
  currentHp = currentHp - damage;
 }
}
public class Enemy
{
 int currentHp = 100;
 int maxHp = 100;
 int atkPower = 20;
 int defense = 20;
 string enemyName= "Rattata"
 public Enemy(){}
 public int AttackPlayer(Player player)
 {
   // all of your attack logic, pass in the player here
   player.TakeDamage(someAmountofDamage);
 }
}

然后在主程序中:

static void Main(string[] args)
        {
             Player myPlayer = new Player();
             Enemy myEnemy = new Enemy();
             myEnemy.AttackPlayer(player);
        }