如何将事件侦听器与事件的“询问”结合在一起?

斯特拉

我为终端编写了一个简单的小迷宫游戏,反复要求用户做某事(例如“您想朝哪个方向前进?[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方法是否要求一个,它们都会触发事件->图形用户界面

有什么方法可以结合使用此方法,还是需要navigate为GUI编写新方法?

(说实话,我也不完全确定我的GUI类是否应该实例化一个game类,在这种情况下,逻辑navigate仍然可能以GUI方法结尾,或者游戏是否应该具有GUI。我尚未编写还是事件监听器的任何代码,因为我不确定哪个类应该调用哪个。这可能是一个独立的问题。)

垃圾神

您的基于文本的游戏具有一个循环,该循环反复询问问题以收集用户输入。Swing通过连续执行Runnable已发布到的代码块为您提供此循环EventQueue例如,当用户按下标记为按钮时E,代码就会发布到队列中,从而调用您的ActionEvent实现来处理游戏对move east命令的解释

作为参考,这里研究了一个非常简单的猜谜游戏的完整示例在伪代码中,相应的基于文本的游戏可能如下所示:

initialize
loop
    prompt "Guess what color!"
    get chosenColor
    if chosenColor = actualColor
        say "You win!"
        reset game
    else
        say "Keep trying."
end loop

此处引用的更详尽的游戏包括原始的基于文本的来源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将LINQ组和排序与父子表结合在一起?

来自分类Dev

如何将镜头和函子结合在一起?

来自分类Dev

如何将DAO和GUI与MVC结合在一起

来自分类Dev

如何将python asyncio与线程结合在一起?

来自分类Dev

如何将原位转换和复制转换结合在一起?

来自分类Dev

如何将SQLAlchemy的@hybrid_property装饰器与Werkzeug的cached_property装饰器结合在一起?

来自分类Dev

如何将流数据与Dataflow / Beam中的大历史数据集结合在一起

来自分类Dev

如何将手势和动画结合在一起

来自分类Dev

如何将基于约定的自定义项与AutoFixture的[AutoData]属性结合在一起?

来自分类Dev

如何将.toggleClass()与.appendTo()结合在一起?

来自分类Dev

如何将Axios调用循环与等待功能结合在一起?

来自分类Dev

如何将两个下一个结合在一起

来自分类Dev

如何将这两个查询结合在一起?(MySQL)

来自分类Dev

如何将RequireJS路径和require-css结合在一起?

来自分类Dev

如何将数据框总结为与ID结合在一起的列表?

来自分类Dev

将吸气剂结合在一起

来自分类Dev

如何将Bash的流程替换与HERE文档结合在一起?

来自分类Dev

如何将DataTables与其他匹配器结合在一起?

来自分类Dev

R:如何将几个数据集结合在一起

来自分类Dev

如何将NavigationDrawerPageSlidingTabStrip与StickyListHeaders库结合在一起?

来自分类Dev

如何将typedef的结构与实例创建结合在一起?

来自分类Dev

如何将列与R中的条件结合在一起?

来自分类Dev

如何将“ IF FOR批处理”与“ FOR DELIMS批处理”结合在一起?

来自分类Dev

如何将文字信息与系统信息结合在一起?

来自分类Dev

如何将分组的输入与对齐的表单结合在一起?

来自分类Dev

如何将JavaScript代码和html代码结合在一起?

来自分类Dev

如何将时基轮询与等待的任务结合在一起

来自分类Dev

如何将5个以上的PDF与imagemagick转换结合在一起?

来自分类Dev

将两个 javascript 事件结合在一起不起作用

Related 相关文章

  1. 1

    如何将LINQ组和排序与父子表结合在一起?

  2. 2

    如何将镜头和函子结合在一起?

  3. 3

    如何将DAO和GUI与MVC结合在一起

  4. 4

    如何将python asyncio与线程结合在一起?

  5. 5

    如何将原位转换和复制转换结合在一起?

  6. 6

    如何将SQLAlchemy的@hybrid_property装饰器与Werkzeug的cached_property装饰器结合在一起?

  7. 7

    如何将流数据与Dataflow / Beam中的大历史数据集结合在一起

  8. 8

    如何将手势和动画结合在一起

  9. 9

    如何将基于约定的自定义项与AutoFixture的[AutoData]属性结合在一起?

  10. 10

    如何将.toggleClass()与.appendTo()结合在一起?

  11. 11

    如何将Axios调用循环与等待功能结合在一起?

  12. 12

    如何将两个下一个结合在一起

  13. 13

    如何将这两个查询结合在一起?(MySQL)

  14. 14

    如何将RequireJS路径和require-css结合在一起?

  15. 15

    如何将数据框总结为与ID结合在一起的列表?

  16. 16

    将吸气剂结合在一起

  17. 17

    如何将Bash的流程替换与HERE文档结合在一起?

  18. 18

    如何将DataTables与其他匹配器结合在一起?

  19. 19

    R:如何将几个数据集结合在一起

  20. 20

    如何将NavigationDrawerPageSlidingTabStrip与StickyListHeaders库结合在一起?

  21. 21

    如何将typedef的结构与实例创建结合在一起?

  22. 22

    如何将列与R中的条件结合在一起?

  23. 23

    如何将“ IF FOR批处理”与“ FOR DELIMS批处理”结合在一起?

  24. 24

    如何将文字信息与系统信息结合在一起?

  25. 25

    如何将分组的输入与对齐的表单结合在一起?

  26. 26

    如何将JavaScript代码和html代码结合在一起?

  27. 27

    如何将时基轮询与等待的任务结合在一起

  28. 28

    如何将5个以上的PDF与imagemagick转换结合在一起?

  29. 29

    将两个 javascript 事件结合在一起不起作用

热门标签

归档