java - 如何识别文本文件中的字符并将其转换为 map 中的对象?

标签 java

我正在编写一个游戏,关卡 map 是文本文件。我如何获取这些文本文件并将它们转换成java中的 map ?

示例:

> ##########
> #b  X   X#
> #        #
> #   C    #
> #        #
> #      # #
> #  C   #C#
> #     O# #
> #  X   #E#
> ##########

E是一个移动的物体

# 是墙

c 是盒子

x 是目标

b 是移动物体的电池

最佳答案

我建议您首先使用 BufferedReader 加载文件,它提供了 readLine 方法,然后将其返回的 String 转换为 char 数组(使用 toCharArray() 方法)。

之后,您可以在 foreach 循环中使用 switch 结构来解析每个字符。它会给出这样的东西:

for(char charac : data.toCharArray()) {
switch(charac) {
     case '#' :
          solidTiles.add(new Wall(posX, posY)); //where solidTiles is an 
                                                //ArrayList of tiles
          break;
     case ' ' :
          //is a blank space, so do nothing (or add a new tile to some list, etc.)
           break;
     case 'E' : 
          entities.add(new MovingEntity(posX, posY)); //etc.
          break;
}
}

希望对你有帮助:)

关于java - 如何识别文本文件中的字符并将其转换为 map 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42879712/

相关文章:

java - 从 Unicode 字符串中获取字数(任何语言)

java - GlassFish 需要 Java SE 版本 6。您的 JDK 是版本 0 (Mac)

Java - 让 ArrayList 值在游戏中旋转

java - 从 map.values() 方法检索的集合是否保留插入顺序?

java - 如何修复控制查询持久化 QL(hql)

java - OSGI 包和组件之间有什么区别?

c# - 将文件复制到 .jar 文件会导致错误

java - org.hibernate.PropertyNotFoundException : Could not find a getter for a property

java - JMeter javax.net.ssl.SSLHandshakeException 间歇性

java - 如何在 Java 的构造函数中使用数字创建自定义异常