《200行Python代码实现2048》分析
2017-06-21 23:05
477 查看
实验地址:https://www.shiyanlou.com/courses/368
实验文档 https://www.shiyanlou.com/courses/368/labs/1172/document
1.有限状态机控制游戏逻辑
利用函数式编程,通过一个字典数据结构建立不同状态和函数之间的映射关系,不同的状态执行不同的函数并且获得新的状态。
简要分析游戏运行过程:
程序的入口为
curses.wrapper(main)
然后从main开始执行
因为一开始是state = ‘Init’,所以执行
然后执行
2.defaultdict数据结构
defaultdict的产生背景是字典不能访问一个不存在的键。
参考:
http://blog.csdn.net/real_ray/article/details/17919289
例如:
defaultdict有多种初始化的方式,可以以一个匿名函数初始化,匿名函数的内容就是字典value的默认内容。
3.curses库
Linux的curses图形库,Python默认内置
http://www.cnblogs.com/starof/p/4703820.html
实验文档 https://www.shiyanlou.com/courses/368/labs/1172/document
1.有限状态机控制游戏逻辑
利用函数式编程,通过一个字典数据结构建立不同状态和函数之间的映射关系,不同的状态执行不同的函数并且获得新的状态。
while state != 'Exit': state = state_actions[state]()
简要分析游戏运行过程:
程序的入口为
curses.wrapper(main)
然后从main开始执行
state = 'Init' #状态机开始循环 while state != 'Exit': state = state_actions[state]()
因为一开始是state = ‘Init’,所以执行
state_actions['Init'](),获得新state“Game”
def init(): #重置游戏棋盘 game_field.reset() return 'Game'
然后执行
state_actions[ 'Game'](),获得新状态
def game(): #画出当前棋盘状态 game_field.draw(stdscr) #读取用户输入得到action action = get_user_action(stdscr) if action == 'Restart': return 'Init' if action == 'Exit': return 'Exit' if game_field.move(action): # move successful if game_field.is_win(): return 'Win' if game_field.is_gameover(): return 'Gameover' return 'Game'
2.defaultdict数据结构
defaultdict的产生背景是字典不能访问一个不存在的键。
参考:
http://blog.csdn.net/real_ray/article/details/17919289
例如:
separator = defaultdict(lambda: line)
defaultdict有多种初始化的方式,可以以一个匿名函数初始化,匿名函数的内容就是字典value的默认内容。
3.curses库
Linux的curses图形库,Python默认内置
http://www.cnblogs.com/starof/p/4703820.html
相关文章推荐
- 《200行Python代码实现2048》的分析
- 200行Python代码实现2048
- 200行Python代码实现2048
- 200行Python代码实现2048
- Logistic Regression(基本原理分析+python代码实现)
- 用70行代码实现日志分析程序-python
- 用不到200行的Python代码实现一个区块链
- 主成分分析(PCA)Python代码实现
- 分析并输出Python代码依赖的库的实现代码
- [置顶] 【二分-kMeans算法】二分K均值聚类分析与Python代码实现
- 200行python代码实现一个类似django的简单模板引擎
- Python实现统计代码行的方法分析
- Python练手项目(2)——200行实现2048小游戏
- Python数据可视化正态分布简单分析及实现代码
- 200行Python代码实现躲方块游戏
- 随机森林的原理分析及Python代码实现
- [深度学习]Python/Theano实现逻辑回归网络的代码分析
- 基于python、dlib和opencv的200行代码实现的换脸
- python自动化工具日志查询分析脚本代码实现