def main(stdscr):
def init():
game_field.reset()
return "Game"
def not_game(state):
game_field.draw(stdscr)
action = get_user_action(stdscr)
responses = defaultdict(lambda:state)
responses["Restart"],responses["Exit"] = "Init","Exit"
return responses[action]
def game():
game_field.draw(stdscr)
action = get_user_action(stdscr)
if action == "Restart":
return "Init"
if action == "Exit":
return "Exit"
if game_field.move(action):
if game_field.is_win():
return "Win"
if game_field.is_gameover():
return "Gameover"
return "Game"
state_actions = {
"Init":init,
"Win":lambda:not_game("Win"),
"Gameover":lambda:not_game("Gameover"),
"Game":game
}
curses.use_default_colors()
game_field = GameField(win = 32)
state = "Init"
while state != "Exit":
state = state_actions[state]()
评论列表
文章目录