【发布时间】:2020-11-25 16:28:19
【问题描述】:
我目前正在编写一个蛇形 Java 程序,其中应该有一个从几个给定文件中选择的输入。作业如下:
奖金
编辑程序,使其接受一个级别 输入。一个级别定义了许多墙壁,玩家必须 避免。级别可以在 Blackboard 上找到。这些文件的结构如下:“坐标在 蛇从哪个开始,从蛇的头开始"="蛇的初始方向"="墙壁的坐标"。 坐标格式如下:每行一个坐标,单位为 格式:“x”“空格”“y”。初始方向是四个字符串之一:“L” (左)、“R”(右)、“U”(上)和“D”(下)。
一个这样的文件:
1. 0
0 0=R=3 3
4 3
5 3
6 3
7 3
etc.
所以 1. 0 表示蛇头开始的第一个坐标,0 0 是身体第一部分开始的第二个坐标。然后 R 是“总”蛇应该行进的起始方向。之后的所有坐标都形成了墙。
我已经编写了所有关于蛇必须做的所有其他事情的代码。但是,我没有超越这个 =R=。
我成功扫描并与我的代码一起使用的前两个坐标(由于抄袭原因我省略了):1. 0 和 0 0。 但是在此之后的所有输入元素都不会被任何扫描仪读取...... 我还怀疑我可以正确读取 =R= 之后的所有坐标。 (//省略代码)
所以我的问题主要是指我的程序应该如何读取 =R= 以使我的代码继续(当然使用作业中提到的 R)。
我怎样才能写出这样的代码?
void parseInput() {
Scanner levelInput = UIAuxiliaryMethods.askUserForInput().getScanner();
inputUser.useDelimiter("=");
//working code
if (levelInput.hasNext("U")) {
direction.equals("U");
}
else if (levelInput.hasNext("D")) {
direction.equals("D");
}
else if (levelInput.hasNext("R")) {
direction.equals("R");
}
else if (levelInput.hasNext("L")) {
direction.equals("L");
}
// working code
}
我怀疑我需要使用某种分隔符,但我的 useDelimiter("=") 不起作用...
【问题讨论】:
标签: java input java.util.scanner element void