繁体   English   中英

用户输入后应用程序关闭

[英]Application closes after user input

我正在尝试在控制台上构造游戏,但是在要求玩家输入A或B之后,应用程序关闭。 不应该!

我有两节课。 这是Window.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyAdventure
{
public class Window
{
    public static void theWindow()
    {
        string playerInput = Console.ReadLine();

        Console.Clear();
        Console.WriteLine("You approach the window, and you look outside.");
        Console.WriteLine("You see lots of trees, but you can't put a name on the location.");
        Console.WriteLine("You pull the handle on the window in an attempt to open it.");
        Console.WriteLine("You succeed and escape the room through the window.");
        Console.WriteLine("\nAs you look around, you still don't know where you are.");
        Console.WriteLine("You suddenly hear someone approaching from behind.");
        Console.WriteLine("You turn around and see a man drenched in blood.\nHe's pale, and he looks sick. He moans at you.");
        Console.WriteLine("\n\nWhat do you do?\nA. Ask if he's alright and who he is\nB. Try to find something tod defend yourself with, just in case...");

        if (playerInput.StartsWith("A", StringComparison.CurrentCultureIgnoreCase))
        {
            Console.WriteLine("You ask if he's alright, but he doesn't respond.\nYou ask then who he is, but he still doesn't respond.");
            Console.WriteLine("Before you even get to think, he lunges towards you in a surprise!");
            Console.WriteLine("He holds on to you and tries to bite you.\nUnfortunately, he manages to do so and takes a chunk from your neck.");
            Console.WriteLine("As he's consuming you, you scream aloud in pain as you slowly fade away...");
            Console.WriteLine("\n\nGAME OVER!\nUnfortunately, your choices got you killed.\nPlease, restart the game and try again.");
            Console.WriteLine("\n\n(Press any key to exit");
            Console.ReadKey();
            Environment.Exit(0);
        }
        else if (playerInput.StartsWith("B", StringComparison.CurrentCultureIgnoreCase))
        {
            //Insert next class and method here...
        }



    }
}
}

我的另一类是Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyAdventure
{
class Program
{
    static void Main(string[] args)
    {

        Console.WriteLine("You cannot feel your body. You don't know where you are.\nThe room you're in is dark. You cannot see much.");
        Console.WriteLine("You decide to stand up, and take a look around. You see a door and a window.\nWhich do you check out first?");
        Console.WriteLine("A. Window\nB. Door");

        string playerInput = Console.ReadLine();

        if (playerInput.StartsWith("A", StringComparison.CurrentCultureIgnoreCase))
        {
            Window.theWindow();
        }
        else if (playerInput.StartsWith("B", StringComparison.CurrentCultureIgnoreCase))
        {
            Console.Clear();
            Console.WriteLine("You chose the door.");
            Console.WriteLine("\nUnfortunately, the door is locked.\nYou cannot leave through the door.");
            Console.WriteLine("You turn to the window.");
            Console.WriteLine("\n(Press Enter to continue...)");
            Console.ReadKey();
            Window.theWindow();
        }

        Console.ReadKey();

    }
}
}

谁能帮忙吗? 预先非常感谢。

你为什么有Environment.Exit(0); 在那里? 当玩家A行动时,这是该条件下的最后一行代码...有意义,应该关闭否?

当前,当读取输入字符串时,控制台窗口将关闭,因为没有下一个代码。 您应该做的是在逻辑上方创建一个while循环,该循环将读取输入键,直到按下Q为止。

class Program
{
    static void Main(string[] args)
    {
        string playerInput = "";
        while(playerInput!="q"){
            //your code
            playerInput = Console.ReadLine();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM