我写了一个简单的小迷宫游戏针对反复要求用户做一些终端(例如,“在哪个方向,你愿意去吗?[N/E/S/W]”)。我有一个运行在循环中的navigate()
方法,可以解决这些问题,存储他们的答案并根据答案做一些事情。如何将事件侦听器与“询问”事件结合起来?
public enum Dir (N, E, S, W);
public void navigate() {
Dir nextDir = utils.askDirection("Which way do you want to go?");
// Do stuff with answer, like changing position of user in maze
}
现在,我已经为我的游戏写了一个简单的GUI。我特意把到终端的所有引用的ConsoleUtils
类实现Utils
接口(这有一个像askQuestion()
方法) - 的想法是,我可以创建一个GuiUtils
类,并有我的比赛要么作为终端游戏或作为GUI游戏。
的问题是,该方法navigate
询问用户的一个问题,然后“等待”为响应,其Utils
类通过使用Scanner
读取输入的最新行给出它。但是,如果我在GUI使用事件侦听器为新N/E/S/W按键,它们无论断火事件navigate
方法是否已要求一个或没有。 --> Image of GUI
有没有什么办法可以结合这还是我需要写的GUI新navigate
方法? (老实说,我也不完全确定我的GUI类是否应该实例化一个game
类,在这种情况下,navigate
的逻辑无论如何都可能以GUI方法结束,或者游戏是否应该有GUI我不写了事件侦听器的任何代码要么呢,因为我不知道哪个类应该调用哪个,这可能是另外一个问题。)