2048 是一个简单的游戏,通过箭头向上、下、左、右移动滑块,让滑块合并
import curses
from itertools import chainfrom random import choice, randint
class GameField(object):
def __init__(self, width=4, height=4, win_value=2048):
self.width = width
self.height = height
self.win_value = win_value
self.score = 0
self.highscore = 0
self.reset()
def reset(self):
if self.score > self.height:
self.highscore = self.score
self.score = 0
self.field = [[0 for i in range(self.width)]
for j in range(self.height)]
self.random_create()
self.random_create()
def random_create(self):
while True:
i, j = choice(range(self.width)), choice(range(self.height))
if self.field[i][j] == 0:
self.field[i][j] = 4 if randint(1, 100) > 80 else 2
break
def draw(self, stdscr):
def draw_sep():
line = '+' + '----+' * self.width
stdscr.addstr(line + '\n')
def draw_row(row): # [2,0,2,0]
draw_one_row = "".join(['|{:^4}'.format(num)