如何将已在终端上打印出来的字符转换为变量?

问题描述

所以我目前正在编写一个仅使用 ascii 字符的 roguelike 游戏,我不知道如何检查我的字符前面是否有墙(所以理想情况下,我使用的任何方法都会返回一个“#”)。我的想法是在每次移动后检查角色是否试图移入墙壁,但我找不到可以让我检查终端中 (x,y) 位置已打印出的特定字符的代码。>

Image

任何帮助将不胜感激!我目前正在使用

sys.stdout.write("\x1b7\x1b[%d;%df%s\x1b8" % (x,y,text)) 

在特定位置打印字符。

解决方法

您需要将“地图”存储在二维数组中

考虑

map = [[1,1,1],[1,1]]

在这张地图中,1 是一堵墙……0 是一个可行走的瓷砖……现在只要你知道角色将移动的目标的 X、Y……你就可以判断你是否正在行走撞墙