ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python2048游戏的实现

2019-12-09 11:02:39  阅读:272  来源: 互联网

标签:direction 函数 Python2048 实现 self 2048 数字 row 游戏


1.2 项目完成的功能与特色

2048游戏:简单的移动方向键让数字叠加,并且获得这些数字每次叠加后的得分,当出现2048这个数字时游戏胜利。同时每次移动方向键时,都会在这个4*4的方格矩阵的空白区域随机产生一个数字2或者4,如果方格被数字填满了,那么就结束游戏了。

实现思路:2048游戏的全部操作都是围绕着一个4*4的矩阵进行,每次从用户界面获取用户的操作(即移动方向),然后重新计算这个4*4矩阵的状态,最后刷新用户界面显示4*4矩阵的最新状态,不断的循环这个过程,直到出现2048或没有空白方块了

一、自己负责的模块

2.1 自己负责模块列表

align(row, direction)函数和 addSame(row, direction)  函数和handle(row, direction)函数、isListOver(self, vList)函数、isOver(self)函数、addElement(self)函数

 

 

 

 

2.2 各模块详细描述(名称,功能,运行截图,关键源代码)

align(row, direction)函数作用是沿着用户输入的方向叠加一行中的数字,例如,向左移动时,移动前x = [0, 2, 2, 2],利用align(row, direction)函数移动后x = [4, 2, 0, 0]。这就实现了这列数字向左叠加。向右移动时,移动前x = [2, 4, 2, 2],利用align(row, direction)函数移动后x = [0, 2, 4, 4]。上下同理。

 

 

 

 

addSame(row, direction)函数作用是查找相同并且相邻的数字。如果找到这种数字,将其中一个沿着指定方向翻倍,另一个重置为0(如果direction是'left'将左侧翻倍,右侧置0,如果direction为'right',将右侧翻倍,左侧置0),并累加积分。

例如x = [2, 2, 2, 2]

addSame(x, 'left') 后 x = [4, 0, 2, 2] increment=4

再 addSame(x, 'left') 后 x = [4, 0, 4, 0] increment=8

 

 

 

 

handle(row, direction)函数包含着align(row, direction)函数和 addSame(row, direction)  函数,处理好行和方向,返回新增积分至totalScore中。

 

 

 

isListOver(self, vList)函数作用是判断股一个列表是否还可以合并,当一列数字中一个数字和它相邻数字相等时,并且不为0,就可以合并。

 

 

 

isOver(self)函数是判断游戏是否真正结束,当空白区域数目 N等于0时,如果可以合并就未结束。

 

 

 

addElement(self)函数是统计好空白区域数目N,随机产生选定好的几个数,random.choice([2, 2, 2, 4]),其中2比4出现概率要大2/3。

 

 

 

2048游戏运行:

 

 

 

 

标签:direction,函数,Python2048,实现,self,2048,数字,row,游戏
来源: https://www.cnblogs.com/linlingxiong/p/12009799.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有