初学 python ,大家恐怕都想找到一条终南捷径,会产生譬如 3 天精通 python 这样不太切合实际的想法。这种想法是危险的,一旦你发现你根本不可能做到,你就会变得灰心丧气,甚至演变成 python 从入门到放弃的局面。
实际上学习编程从来没有一步登天的捷径。但对很多人来说,实践是十分有效的学习方法。这自然不是康庄大道,一路上你必须披荆斩棘,历尽坎坷与辛苦,然而你越努力、回报也就越丰厚。所以就让我们一步一个脚印,实现简易版的 2048小游戏吧。
2048 游戏是一款即时休闲游戏。
游戏规则:玩家通过 w s a d 控制数字移动方向,达成 2048 这个数字即获胜。
每次可以选择一个方向移动,数字便会朝这个方向移动,如果遇到相同数字就相加,遇到不同数字或者边界就停止移动。同时会在空白的地方生成 2 或者 4 的随机数字。通过不断相撞、相加,最后达成 2048 这个数字。
win 10 :
编辑器:Pycharm
版本: python 3.6
库: curses + numpy(pip install numpy) + copy
ubuntu 16.04 :
编辑器:vim
版本: Anaconda + python 3.6
库: curses + numpy + copy
curses
网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses
下载 curses-2.2+utf8-cp36-cp36m-win_amd64.whl
1pip install --upgrade curses-2.2+utf8-cp36-cp36m-win_amd64.whl
curses 用于终端 shell 显示图形:
1# 屏幕不显示用户输入的字符
2curses.noecho()
3# 使用 curses 首先需要初始化
4stdscr = curses.initscr()
5# stdscr.getchar() 返回的是
6# 输入的单个字符的 ascii 码值
7# 假如输入'p',返回 112
8stdscr.getch()
9# 清除屏幕
10stdscr.clear()
11# 打印字符
12stdscr.addstr('You win')
在这个简易版的 2048 游戏中,可以分为六大功能模块:
初始化模块:初始化棋盘
主进程模块:统筹各个函数模块
随机数模块:在棋盘上随机产生 2 或 4
操作模块:读取用户输入,并执行相应操作
显示模块:显示棋盘
分数模块: 当前得分与最高得分
这一节主要介绍了 2048 小游戏的基本知识,下一节将介绍实现 2048 小游戏的各个模块的逻辑。最后放一张实现效果图