我怎样才能告诉我的程序在完成后执行 "re-do" 不同的操作(由用户输入选择),直到设置了 do-while 要求?
How can i tell my Program to "re-do" diffrent Actions (chosen by User-Input) after it is done, till the do-while Requirement is set?
我只是 C# 的初学者,正在开发控制台应用程序,我希望程序能够读取用户的输入并执行命令,直到他的 HP 为 0。它基本上是 "Fighting-Game".
我现在的问题是,我只能要求一次用户输入(而且它只会执行程序曾经得到的输入)。我也想添加额外的战斗选项,但现在我卡在这里了。
static void Main(string[] args)
{
int playerHealth = 100;
int playerDamageSword = 10;
int playerDamageFire = 10;
int playerHeal = 20;
int enemyHealth = 100;
Console.WriteLine("Hey! Enter your Character Name!");
string name = Console.ReadLine();
Console.Clear();
Console.WriteLine("Okay! " + name + " You have encountered an Enemy! Which Action do you choose?\n1.Sword-Attack\n2.Fire-Attack\n3.Heal\n8.Flee\n9.Quit\n" );
string Input = Console.ReadLine();
do
{
if (Input == "1")
{
Console.WriteLine("You hit your Opponment for 10 Damage!");
enemyHealth = enemyHealth - 10;
Console.WriteLine("Your Opponment hit you back for 10 Damage!");
playerHealth = playerHealth - 10;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
else if (Input == "2")
{
Console.WriteLine("You healed yourself for 20 HP");
playerHealth = playerHealth + 20;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
} while (playerHealth > 0);
你非常接近,你需要像这样将读取的输入移动到你的循环中:
string Input;
do
{
Input = Console.ReadLine();
if (Input == "1")
{
Console.WriteLine("You hit your Opponment for 10 Damage!");
enemyHealth = enemyHealth - 10;
Console.WriteLine("Your Opponment hit you back for 10 Damage!");
playerHealth = playerHealth - 10;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
else if (Input == "2")
{
Console.WriteLine("You healed yourself for 20 HP");
playerHealth = playerHealth + 20;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
} while (playerHealth > 0);
这将做什么:
- 开始循环
- 获取用户输入并将其存储到
Input
字符串中
- 检查
if (Input == "1")
或else if (Input == "2")
条件
- 检查
(playerHealth > 0)
然后回到循环的顶部
或者退出循环
我只是 C# 的初学者,正在开发控制台应用程序,我希望程序能够读取用户的输入并执行命令,直到他的 HP 为 0。它基本上是 "Fighting-Game".
我现在的问题是,我只能要求一次用户输入(而且它只会执行程序曾经得到的输入)。我也想添加额外的战斗选项,但现在我卡在这里了。
static void Main(string[] args)
{
int playerHealth = 100;
int playerDamageSword = 10;
int playerDamageFire = 10;
int playerHeal = 20;
int enemyHealth = 100;
Console.WriteLine("Hey! Enter your Character Name!");
string name = Console.ReadLine();
Console.Clear();
Console.WriteLine("Okay! " + name + " You have encountered an Enemy! Which Action do you choose?\n1.Sword-Attack\n2.Fire-Attack\n3.Heal\n8.Flee\n9.Quit\n" );
string Input = Console.ReadLine();
do
{
if (Input == "1")
{
Console.WriteLine("You hit your Opponment for 10 Damage!");
enemyHealth = enemyHealth - 10;
Console.WriteLine("Your Opponment hit you back for 10 Damage!");
playerHealth = playerHealth - 10;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
else if (Input == "2")
{
Console.WriteLine("You healed yourself for 20 HP");
playerHealth = playerHealth + 20;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
} while (playerHealth > 0);
你非常接近,你需要像这样将读取的输入移动到你的循环中:
string Input;
do
{
Input = Console.ReadLine();
if (Input == "1")
{
Console.WriteLine("You hit your Opponment for 10 Damage!");
enemyHealth = enemyHealth - 10;
Console.WriteLine("Your Opponment hit you back for 10 Damage!");
playerHealth = playerHealth - 10;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
else if (Input == "2")
{
Console.WriteLine("You healed yourself for 20 HP");
playerHealth = playerHealth + 20;
Console.WriteLine("Your Current Hp: " + playerHealth);
Console.WriteLine("Opponment Current HP: " + enemyHealth);
}
} while (playerHealth > 0);
这将做什么:
- 开始循环
- 获取用户输入并将其存储到
Input
字符串中 - 检查
if (Input == "1")
或else if (Input == "2")
条件 - 检查
(playerHealth > 0)
然后回到循环的顶部 或者退出循环