【问题标题】:Simple terminal "game" [closed]简单的终端“游戏”[关闭]
【发布时间】:2022-01-06 11:48:57
【问题描述】:

所以我一直在尝试制作一个简单的基于文本的终端游戏来让自己更熟悉使用 c#,但我不知道如何让玩家回到开头以便他们可以解锁门,这就是我试过了。对于您即将看到的意大利面条代码,我深表歉意:

bool IsGameRunning = true;
bool hasKey = false;
if(isGameRunning == true){ Start();}
if(isGameRunning == true && Start() == "go forward" && hasKey == false){

while(true){
Middle();
if(Middle() == "go back"){
Start();
break;
}
}
} 

 else if(isGameRunning == true && Start() == "go left"){
while(true){
hasKey = true;
Key();
 if(Key() == "go back"){
Start();
break;
 }
 }} else if(isGameRunning == true && Start() == "go forward" && hasKey == true){
Console.WriteLine("You tried the key...THE DOOR IS STILL LOCKED!!!");
 }
//methods
static string Start(){
    
while(true){
Console.WriteLine("You are in a dark room, what do you do?");
   string? input = Console.ReadLine();
if(input == "look around")
{
Console.WriteLine("It is too dark to look around.");}



 else if(input == "go left"){

return "go left";
}
else if(input == "go forward"){
return "go forward";
} else{
Console.WriteLine($"I don't know what '{input}' means.");}
}
}
static string Middle(){
while(true){
Console.WriteLine("You decided to pick a direction and go forward.You stumbled upon a door, the door is locked.");
string? input = Console.ReadLine();
if(input == "go back"){
Console.WriteLine("You decided to return back from where you came.");
return "go back";
} else {
    Console.WriteLine($"I don't know what '{input}' means.");
}
}
}
static string Key(){
while(true){
Console.WriteLine("You decided to pick a direction and go left.You found a key!");
string? input = Console.ReadLine();
if(input == "go back"){
Console.WriteLine("You decided to return back from where you came.");
return "go back";} else{
Console.WriteLine($"I don't know what '{input}' means.");
}

}
}

我不知道我在想什么。

【问题讨论】:

标签: c# terminal


【解决方案1】:

很难通过代码的格式确定要解决的确切问题,但希望此信息可以让您将其重写为可修复的更清晰的状态。

即使在if 语句中,调用Middle() 函数也会运行该函数的所有代码。所以基本上这个(下面的代码)运行Middle() 两次,并且只检查if 语句中的返回值。

Middle();
if(Middle() == "go back"){

如果您想在这样的 if 语句中使用返回值,请尝试调用该函数一次并将返回值分配给您可以检查的变量。像这样:

string middleInput = Middle();
if (middleInput == "go back") {

或者像这样稍微有点混乱但有效的方式:

if (Middle() == "go back") {

还真的建议使用 IDE(集成开发环境),例如 Visual Studio、Visual Studio Code 或 Jetbrains' Rider。这将使编写干净的代码变得容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多