2048游戏python源代码_Python2048游戏的实现

1.2 项目完成的功能与特色

通过用户操作实现相邻数字的叠加,没有数字可相加时,生成一个2或4的随机数继续游戏,实现2048的最基本游戏功能。

1.3 项目采用的技术栈

Python

1.4 项目借鉴源代码的地址

https://www.oschina.net/code/snippet_1756807_35638

1.5 团队成员任务分配表

一、项目的需求分析

1、可使用wsad或WSAD来实现上下左右的移动

2、可以完成对移动数的叠加或在空白出随机生成数字。

二、项目功能架构图、主要功能流程图

1893305-20191209115640592-919993075.png

1893305-20191209115634482-1780143360.png

三、系统模块说明

4.1 系统模块列表

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

4.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]。上下同理。

1893305-20191209115843161-1282582157.png

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

1893305-20191209115954822-1658662415.png

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

1893305-20191209120001497-1417156069.png

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

1893305-20191209120006427-717663241.png

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

1893305-20191209120013477-812139142.png

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

1893305-20191209120025092-2048291194.png

四、项目总结

5.1 特点

实现各个方块的上下左右移动以及实现方块间数字判断与相加

5.2 不足之处

页面不够美观

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值