【发布时间】:2021-03-10 16:57:03
【问题描述】:
我有代码
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 by 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 = [['*', '+', '*'], ['#', '#', '#' ]] 的输出应该是
*+*
###
但我写不正确。也许我没有正确理解任务,所以请帮我解决这个问题
【问题讨论】:
标签: python list class join methods