我一直在编写一个文字冒险游戏,其中一个随机场景是你可以遇到一只神奇宝贝并与之战斗。有一些选项(例如查看库存)需要您返回菜单(战斗、奔跑、物品、精灵)。例如,如果您输入了错误的命令,那么您应该返回菜单。但是,在该方法中,唯一的参数是hasEncountered
,并且当随机场景被触发时,默认情况下它是 false (bool),意思是
if (hasEncountered == false)
{
Console.WriteLine("While travelling you go through a patch of tall grass..");
Thread.Sleep(2000);
Console.WriteLine("*pokemon music*");
Thread.Sleep(1500);
Console.Clear();
Console.WriteLine("You encounter a {0}!", pokemon1);
}
被触发。每当用户输入错误的命令时,该方法就会被调用。我不想让用户再次看到这部分,所以我这样做了:
else
{
Console.WriteLine(" < {0} >", pokemon1);
}
if statement
但是,虽然我在方法的开头声明了它,但 其中的字符串“pokemon1”是未声明的。
public void ConScen3(bool hasEncountered)
{
string pokemon1;
TextAdventure1.ConjoinedScenarios.ConjoinedScenario conScen = new TextAdventure1.ConjoinedScenarios.ConjoinedScenario();
if (hasEncountered == false)
{
Console.WriteLine("While travelling you go through a patch of tall grass..");
Thread.Sleep(2000);
Console.WriteLine("*pokemon music*");
Thread.Sleep(1500);
Console.Clear();
Console.WriteLine("You encounter a {0}!", pokemon1);
}
else
{
Console.WriteLine(" < {0} >", pokemon1);
}
如果我尝试在声明pokemon1
中if
声明,它表示它已经声明。但是,如果我在开头删除pokemon1
字符串,其余代码会抱怨它未声明。有没有什么办法解决这一问题?