我有代码
class Render():
def __init__(self):
pass
def init_screen(self, h, w):
raise NotImplementedError
def add_object(self, char, x, y):
raise NotImplementedError
def draw_screen(self):
raise NotImplementedError
def get_input(self):
raise NotImplementedError
有一个任务:我需要创建一个ShellRenderer类,该类将在控制台中绘制游戏屏幕。
-_screen
在其中创建一个字段,该字段将是字符列表的列表,大小h
为w
。
-调用init_screen
方法时用空格初始化。
-该add_object
方法必须将_screen
列表项之一的值更改为char
字符。
-该draw_screen
方法应通过调用来打印列表print
。
-在get_input
方法中,你可以使用该input
功能获取用户输入。返回用户输入的字符串。
我几乎完成了所有工作:
class ShellRender(Render):
def init_screen(self, h, w):
self.h = h
self.w = w
self._screen = [[[' '] for i in range(w)] for j in range(h)]
def add_object(self, char, x, y):
self._screen[y][x] = char
def draw_screen(self):
print("\n".join(map(str, self._screen))) # here is a mistake...
def get_input(self):
return input()
但是我无法在该draw_screen
方法中打印列表列表。我认为有必要使用"\ n" .join (map (str, ...))
以便在_screen = [['*', '+', '*'], ['#', '#', '#' ]]
输出时
*+*
###
但是我写不正确。也许我对任务的理解不正确,所以请帮助我解决此问题
代码:
_screen = [['*', '+', '*'], ['#', '#', '#' ]]
print(*(''.join(str_arr) + '\n' for str_arr in _screen))
输出:
*+*
###