2048这个小游戏最初在微信上玩过,游戏规则简单,大致如下: 游戏面板为4*4共16格 初始化时随机产生一个数字2或4,将这个数字随机放到16格的一格之中 通过上、下、右、四个方向键朝一个方向移动面板中的数字使其靠拢或合并,这些数字: 每次操作不能交叉移动、只能在同行或同列根据按键方向做单方向平行移动 在移动的方向中,当每行/列中的数字存在相邻的重复项、或数字之前存在空格时,才可移动 在一次移动中:遇空格直接移入、最先相邻的2个相同的数字直接合并成一个新数字(并消除之前2个相同的数字),该行/列中后面其他数字再按该方向移动,直至该行/列数字间没有空格 在一次移动中:合并新生成的数字将不再与其他相同的数字合并消除 每按方向键一次,如有数字被移动(含合并消除),则随机在某个空格中产生一个数字2或4 已合并生成的最大的数字为当前游戏得分 当游戏面板中布满非0数字、且不可再合并时,格子中数据将无法移动,游戏结束 安装 python 3.6 安装第三方库 pygame Windows上在cmd中安装: Centos上在终端中安装: Ubuntu上在终端中安装: 用python编写游戏算法类,实现游戏数据操作:cls2048.py 用二维列表(4*4数组/矩阵)来操作游戏数据 将游戏面板中的空格单元在列表元素中的数据值设为0 每按键一次对应所有行/列的数据单方向移动 以单行和列移动为最小操作单元 如对应的数据在该按键方向上不能产生移动或数据合并,那么不随机产生新的数据 当有数据合并产生或者数据移动位置时,随机在空格处产生一个数据 向左移动或向右移动是对行数据操作、向上或向下移动是对列数据进行操作 向上移动等价于将二维列表先转置后的向左移动、然后再将数组转置还原的效果 向下移动等价于将二维列表先转置后的向右移动、然后再将数组转置还原的效果 在空格单元中随机生成2或4的数据:需要选择随机的位置和随机产生的值 当列表4*4全部非0值,且无相邻两个数值相同时,游戏结束 用pygame绘制游戏棋盘界面、控制按键操作、数据展示:pygame2048.py 初始化游戏棋盘,分为两个区域:标题游戏状态区(得分、计时),游戏棋盘区 利用捕获按键、操作游戏数据 显示游戏数据:画线用 ,写字用,渲染图形至界面用、刷新surface上新数据 Windows上在IDLE中打开pygame2048.py,按运行 或在cmd中执行: Linux中(该截图来自Ubuntu 14.04)在Terminl里执行: 说明:如想UI更好看,设计UI后用pygame针对背景色、字体、游戏格子等进行调整即可。 2048小游戏python代码

2018年04月10日 0Comments 3699Browse 11Like Read more