主要思想
1、将2048核心算法定义到核心类中GameCoreController,作为实例成员
2、产生新数字
–随机2(90%)或者4(10%)
3、判定游戏是否结束
–如果有空位置,游戏不能结束
–如果横向可以移动,游戏不能结束
–纵向
–以上条件不满足,游戏结束
4、创建控制台游戏视图GameConsoleView
–游戏开始时,产生2个新数字,绘制界面
–游戏逻辑,获取玩家输入wsad移动地图,产生新数字,判断游戏是否结束
GameCoreController.py
"""
游戏核心逻辑控制器
"""
import random
from model import LocationModel
class GameCoreController:
def __init__(self):
self.__list_merge = None
self.__map = [
[2, 0, 0, 2],
[2, 4, 4, 2],
[0, 4, 2, 0],
[2, 0, 2, 0],
]
self.__list_empty_location = []
@property
def map(self):
return self.__map
# 1、将列表零元素移动到末尾
def __zero_to_end(self):
"""
零元素移动到末尾
思路:从后向前依次判断,如果是零元素,则删除零元素后追加零
:return:
"""
for i in range(len(self.__list_merge) - 1, -1, -1):