# LCD testing object for PC # uses double buffering class LCD: def __init__(self, width, height): self.width = width self.height = height self.buf1 = [[0 for x in range(self.width)] for y in range(self.height)] self.buf2 = [[0 for x in range(self.width)] for y in range(self.height)] def clear(self): for y in range(self.height): for x in range(self.width): self.buf1[y][x] = self.buf2[y][x] = 0 def show(self): print('') # blank line to separate frames for y in range(self.height): for x in range(self.width): self.buf1[y][x] = self.buf2[y][x] for y in range(self.height): row = ''.join(['*' if self.buf1[y][x] else ' ' for x in range(self.width)]) print(row) def get(self, x, y): if 0 <= x < self.width and 0 <= y < self.height: return self.buf1[y][x] else: return 0 def reset(self, x, y): if 0 <= x < self.width and 0 <= y < self.height: self.buf2[y][x] = 0 def set(self, x, y): if 0 <= x < self.width and 0 <= y < self.height: self.buf2[y][x] = 1