为基于文本的冒险游戏创建自定义命令的方法?

Posted

技术标签:

【中文标题】为基于文本的冒险游戏创建自定义命令的方法?【英文标题】:Ways to create custom commands for a text based adventure game? 【发布时间】:2016-01-23 13:08:01 【问题描述】:

所以我必须为我的编程课制作一个基于文本的冒险游戏,并且此时我有一个基本的工作游戏,但我想为其使用自定义输入,而不是提示和输入设置。例如。 (玩家输入“向西”而不是游戏询问:“你想向哪个方向移动?”然后玩家提交一个选项。)有人知道这样做的好方法吗?类似于老式的基于文本的冒险游戏。

【问题讨论】:

您需要实现某种String 解析器。可能相关的一件事是将字符串解析为enum 值并在之后处理它。这些问题真的很模糊,因为没有提供代码。 您能否详细说明“基本工作游戏”的含义?你所做的一切都是在移动吗,如果是的话,这就是最终目标吗?如果是这样,有很多可行的方法来处理输入,但它们并不容易用于“将绿色弹珠向右移动”或其他类型的语句。 目标是四处走动并到达尽头的房间,有点像迷宫。在这一点上,我所说的只是从一个房间搬到另一个房间 您可以添加您当前的输入代码吗?很难弄清楚您可能会使用什么来不仅能够删除提示。 【参考方案1】:

如果你以前有过这样的事情:

System.out.println("Which way do you want to go");
String direction = input.readLine().toLowerCase();
if(direction.equals("w")) 
    goWest();

要考虑更复杂的用户输入(例如让用户输入“Go West”),您可以这样做

String command = input.readLine().toLowerCase();
String[] parts = command.split(" "); //split the command at each space, so we have an array of each word
if(parts.length == 2 && parts[0].equals("go")) //check if there are two words and if the first word is "go"
    go(parts[1]); //supply the second word (the direction) to a go() function

....

public void go(String direction) 
    if(direction.equals("w") || direction.equals("west")) 
        goWest();
    else if(direction.equals("e") || direction.equals("east"))
        goEast();
   //etc.

【讨论】:

以上是关于为基于文本的冒险游戏创建自定义命令的方法?的主要内容,如果未能解决你的问题,请参考以下文章

hbase自定义过滤器

C# - 在自定义控制台扩展方法中使用常规 Console.WriteLine 格式?

如何为自定义 BAT 文件创建 HELP 命令?

将自定义输入视图设置为全局所有文本字段的最简单方法

夺命雷公狗---微信开发14----用网页调试工具调试自定义菜单接口

Dockerd自定义镜像——Dockerfile