为基于文本的冒险游戏创建自定义命令的方法?
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.
【讨论】:
以上是关于为基于文本的冒险游戏创建自定义命令的方法?的主要内容,如果未能解决你的问题,请参考以下文章
C# - 在自定义控制台扩展方法中使用常规 Console.WriteLine 格式?