所以我试图创建一个基于文本的游戏,并且有人建议我将地图数据存储为多维数组我一直在试图弄清楚我该怎么做或怎么做我甚至可以浏览多维数组。在我看来,这将是难以置信的困难,但我不得不问,因为我无法自行解决。如果这个问题太含糊,让我知道什么应该更具体。用于基于文本的游戏的多维数组
回答
手动创建多维列表:
world_map = [['*', '*', '*', '*'],
['*', ' ', 'i', '*'],
['*', ' ', ' ', '*'],
['*', '*', '*', '*']]
凡*
是一堵墙和i
可能是球员。 要通过这个世界地图循环,使用两个for循环:
for row in world_map:
for column in row:
print(column, end="")
print()
这将打印的世界地图。
如果你需要留下的球员移动,你可以这样做:
for row in world_map:
for i, column in enumerate(row):
if column == "i":
if i > 0 and row[i - 1] == ' ':
row[i - 1] = 'i'
row[i] = ' '
您也可以直接与world_map[row][column]
访问元素,如果你知道你的元素的位置。
你必须自行完成其余的工作。 此外,这可能不是最好的方法,你应该使用类的玩家等,但这对初学者适用:)
非常感谢这些信息对我应该如何在地图上移动以及明确的解释非常有帮助。 – kevin2314
很高兴帮助:) –
多维数组无非是一个数组的元素映射到另一个数组,通常这些“子阵列”中的每一个在大小上相等(但不严格)。
inner = [ "" ] * 10
outer = [ [].extend(inner) for x in inner ]
这将创建一个方形的多维数组10×10个元素。
可以访问这些元素为:
outer[outer_index][inner_index]
只是可视的外部和内部和指数上的网格,与外穿过x轴和内遍历的y轴。上述阵列将看起来有点像这样:
"" "" "" "" "" "" "" "" "" "" 0
"" "" "" "" "" "" "" "" "" "" 1
"" "" "" "" "" "" "" "" "" "" 2
"" "" "" "" "" "" "" "" "" "" 3
"" "" "" "" "" "" "" "" "" "" 4 (inner)
"" "" "" "" "" "" "" "" "" "" 5
"" "" "" "" "" "" "" "" "" "" 6
"" "" "" "" "" "" "" "" "" "" 7
"" "" "" "" "" "" "" "" "" "" 8
"" "" "" "" "" "" "" "" "" "" 9
0 1 2 3 4 5 6 7 8 9
(outer)
如果我更新外的元件6和8的值,网格将改变:
outer[6][8] = "X" # marks the spot
"" "" "" "" "" "" "" "" "" "" 0
"" "" "" "" "" "" "" "" "" "" 1
"" "" "" "" "" "" "" "" "" "" 2
"" "" "" "" "" "" "" "" "" "" 3
"" "" "" "" "" "" "" "" "" "" 4 (inner)
"" "" "" "" "" "" "" "" "" "" 5
"" "" "" "" "" "" "" "" "" "" 6
"" "" "" "" "" "" "" "" "" "" 7
"" "" "" "" "" "" "X" "" "" "" 8
"" "" "" "" "" "" "" "" "" "" 9
0 1 2 3 4 5 6 7 8 9
(outer)
希望这有助于。
这的确帮助我忽略了分配内部和外部坐标的需要。 – kevin2314
- 1. 基于文本的游戏
- 2. 基于文本的游戏的基本保存游戏
- 3. 基于多人游戏的文本游戏
- 4. C++ 32767基于文本的游戏
- 5. 基于Python文本的游戏缩进
- 6. scala基于文本的冒险游戏
- 7. Python基于文本的游戏显示
- 8. C#基于文本的游戏项目
- 9. 基于文本的冒险游戏
- 10. C++基于文本的游戏
- 11. 基于文本的游戏运动
- 12. 基于文本的浏览器游戏
- 13. 用于基于文本的游戏的Python GUI工具包?
- 14. 基于Servlet的基于游戏的游戏
- 15. 多维数组游戏 - Java
- 16. (基于文本)C++练习游戏
- 17. 基于Javascript组件的游戏设计
- 18. OpenFeint基于回合的多人游戏
- 19. 用于基于LAN的多用户游戏的XMPP
- 20. 基于文本的游戏与选择,发生在多天
- 21. 用于在Python中输出的文本框(基于文本的游戏)
- 22. 基于级别的游戏
- 23. 基于PHP的游戏
- 24. 基本的Java游戏中使用二维数组
- 25. GUI(基于文本的游戏)中的Java文本框
- 26. 基于在线多人游戏的游戏服务器技术?
- 27. 基于回合的多人游戏与游戏中心
- 28. 在python中使用基于文本的游戏的类
- 29. 制作基于数学的游戏
- 30. 基于范围的猜数字游戏
它是什么样的游戏,主要思路是什么? –
@Markus Meskanen就导航设置方式而言,它就像Zork一样 – kevin2314