文档章节

Python2048游戏的实现

o
 osc_zoa3moe9
发布于 2019/12/09 10:58
字数 654
阅读 9
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1.2 项目完成的功能与特色

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

1.3 项目采用的技术栈

Python

1.4 项目借鉴源代码的地址

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

1.5 团队成员任务分配表

一、项目的需求分析

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

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

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

 

 

 

 

 

 

 

 

三、系统模块说明

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

 

 

 

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。

 

 

 

四、项目总结

      5.1 特点

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

      5.2 不足之处

页面不够美观

上一篇: 前端简历
下一篇: MYSQL数据库简介
o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
游戏辅助外gua篇:如何Dump内存获得游戏的辅助

转载请标明出处: https://dujinyang.blog.csdn.net/article/category/9267855 本文出自:【奥特曼超人的博客】 本篇邀请了 “阿七” 做个 外挂辅助入门篇 分享,之前公众号也分享过了。 最近...

dujinyang
2019/11/12
21
0
python2048游戏

运行结果: 参考代码:

郑妙
03/13
23
0
设计师每天被要求作图100张,3分钟一张的新技术?

最近严控,直接看代码部分: 作者:奥特曼超人Dujinyang 来源:CSDN 原文:dujinyang.blog.csdn.net/ 版权声明:本文为博主杜锦阳原创文章,转载请附上博文链接!...

dujinyang
01/07
4
0
Linux use apktool problem包体变大GLIBC2.14等问题

Linux服务器在线打包遇到的问题 转载请标明出处: https://dujinyang.blog.csdn.net/article/details/80110942本文出自:【奥特曼超人的博客】 在线打包的流程 遇到奇怪的BUG(Linux apktool...

osc_ab70hsav
04/16
2
0
游戏辅助外gua篇:如何Dump内存获得游戏的辅助

转载请标明出处:https://dujinyang.blog.csdn.net/article/category/9267855本文出自:【奥特曼超人的博客】 本篇邀请了 “阿七” 做个 外挂辅助入门篇 分享,之前公众号也分享过了。 最近女...

osc_mblu5qn4
04/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

写技术博客的一些心得体会

目录 1. 是什么 2. 为什么 2.1. 优秀的学习方法 2.2. 知识的备份 2.3. 体系的形成 2.4. 知识的交流 2.5. 写作能力和思维能力 3. 怎么做 1. 是什么 不知不觉已经写了近百篇技术博文了,其实在...

osc_873fteab
26分钟前
9
0
android组件间共享数据的常用方法

使用Intent在激活组件的时候携带数据,以进行数据的传递 使用广播进行组件间数据的伟递 使用外部存储(sharedPreference,文件,数据库,网络)进行组件间数据共享 使用Static静态成员进行数...

osc_sdnu59mg
28分钟前
20
0
Chrome浏览器的插件扩展默认安装目录

1:打开谷歌浏览器在地址栏输入:chrome://version 并回车 2:如上图个人资料路径,该路径下的Extensions文件夹即默认的插件安装目录:

osc_zg8wy3xa
30分钟前
23
0
知识圈APP开发记录(二十一)

今日完成:新增学习情况概览功能 花费时间:4小时 剩余时间:2小时 遇到问题:图标刷新时X轴成倍数刷新(已解决) 部分代码截图: 明日将完成:个性化模块及其附属功能测试

osc_bodzcw38
31分钟前
19
0
在做python大作业自己设计学生信息管理的增删改查操作遇到的问题

数据库的创建 conn = sqlite3.connect('student1.db') """ #在该数据库下创建学生信息表 conn.execute ('''CREATE TABLE StudentTable( ID INTEGER PRIMARY KEY AUTOINCREMENT, StuId INTEGE......

osc_7dwwmolq
32分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部