0

我一直在编写一个文字冒险游戏,其中一个随机场景是你可以遇到一只神奇宝贝并与之战斗。有一些选项(例如查看库存)需要您返回菜单(战斗、奔跑、物品、精灵)。例如,如果您输入了错误的命令,那么您应该返回菜单。但是,在该方法中,唯一的参数是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);
        }

如果我尝试在声明pokemon1if声明,它表示它已经声明。但是,如果我在开头删除pokemon1字符串,其余代码会抱怨它未声明。有没有什么办法解决这一问题?

4

2 回答 2

1

您确实声明了变量(就是这样string pokemon1;做的),但您没有为其分配值。

你必须给变量一个值,比如pokemon1 = "Foo";.

于 2013-10-05T10:06:56.940 回答
0

您需要为 pokemon1 赋值:

public void ConScen3(bool hasEncountered)
    {
        string pokemon1 = "pikachu";
        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);
        }
    }
于 2013-10-05T10:07:46.600 回答