基于 python 的德云消消乐益智小游戏设计论文+源码
计科在读分享自己做过的课题设计作业 有意可私信了解
目录
第一章 引言 II
1.1 课题背景 1
1.2 目的和意义 1
1.3 国内外的发展现状 1
1.4 开发环境 1
第二章系统开发平台的阐述 2
2.1Python 之 pygame 2
2.2pygame 环境的要求 2
第三章总体设计 3
3.1 游戏流程概述 3
3.2 游戏总体设计 4
3.3 图片模块设计 4
3.4 音乐模块 4
第四章 详细设计与展示 5
4.1 所需要的库 5
4.2 定义 config.py 文件存储相关参数 5
4.3 游戏实现 5
4.3.1 游戏图形化界面 5
4.3.2 游戏的主要处理逻辑 13
第五章实验总结 15
致谢 15
参考文献 15
第一章 引言
1.1 课题背景
消消乐游戏是家喻户晓的益智类小游戏,不管是哪个年龄段都有它的爱好者, 随着社会的发展,生活节奏越来越快,人们的压力也越来越大,通过玩休闲益 智类游戏解压,成为忙碌的都市人们的不二选择。消消乐游戏就是其中很有代 表性的⼀种,它可以使人在休闲娱乐的同时锻炼记忆力、观察力。
1.2 目的和意义
选择这个德云消消乐作为课题,一方面是想学习和掌握Pygame 的课外知识,另 一方面可增加学习的趣味性和培养对此课程的兴趣。相对国外对 Pygame 研究的 热火朝天, 国内则显得比较冷淡,甚至商场上都没有⼀本完整地介绍 Pygame 框架的指导书,希望通过这次的游戏设计,使得更多人投入研究 Pygame 框架中。
1.3 国内外的发展现状
96,97 年的国产游戏产品是单机版的游戏,在当时的市场上虽然品质和档次不 如外来产品,但也占有一定的市场,例如《仙剑奇侠传》、《三国志》等系列 带有鲜明中国特色与气息的游戏在市场上掀起了一波高潮。1998 年联众与中国 游戏中心等老牌的游戏平台的推出标志着电脑游戏在中国的开荒与生根。但是 到了 1999 年在没有形成主流产品的情况下,政策不明朗,包括开发资金出现问 题等原因国产游戏开始走下坡路。一直到了 2000 年,网络游戏问世并且很快流 行起来我国的游戏行业才又渐渐的复苏,但是由于投入差距太大,起步晚等原 因与外国游戏相对而言并没有竞争力。
但如今,网络游戏走入盛世,成为一部分人休闲娱乐的主要行为。国产游戏渐
渐走入国际市场,而且基于网络的发展真正实现了网络全球化。
1.4 开发环境
Python 版本:3.9
相关模块 :Pygame 模块;
以及⼀些 Python自带的模块
环境搭建 :安装 Python;pip 安装需要的模块
第二章系统开发平台的阐述
2.1Python 之 pygame
Pygame 就是 Python 中使用它的一个库,是建立在 SDL 基础上,允许实时电子 游戏研发而无需被低级语言束缚。基于这样一个设想,所有需要的游戏功能和 理念都都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供, 如 Python。Pygame 作为 Python 下的⼀个开源框架,平台的兼容性非常的好, 目前市面上流行的操作系统都有很好的支持。
Pygame 环境搭建:利用pip 安装 Pygame
2.2pygame 环境的要求
Pygame 作为Python 下的一个开源框架,平台的兼容性非常的好, 目前市面上 流行的几乎所有的操作系统都有很好的支持,随意对平台要求不是很高。而且, 作为一个非编译的语言种类,对开发平台的硬件需求也不会有很大的要求,一 般的平台配置就满足开发需求。
第三章总体设计
3.1 游戏流程概述
游戏流程图如图 3.1 所示:
4.3 游戏实现
4.3.1 游戏图形化界面
先创建一个主窗口,代码如下:
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('德云消消乐')
效果如下:
在主窗口中画一个 8x8 的网格,代码如下:
def drawGrids(self):
for x in range(NUMGRID):
for y in range(NUMGRID):
rect=pygame.Rect((XMARGIN+x*GRIDSIZE,YMARGIN+y*GRIDSIZE, GRIDSIZE, GRIDSIZE))#网格位置和尺寸
self.drawBlock(rect, color=(0, 0, 255), size= 1)#网格的颜色大小 效果如下:
在网格中放入各种拼图块:
while True: #while 是循环语句,True 在 while 后面表示 while 开始循环的条件 self.all_gems = []#空的块
self.gems_group = pygame.sprite.Group()#定义块组
for x in range(NUMGRID):#range 函数的 for 循环;numgrid 是一个库,它 基于原子坐标、原子类型和基集的分子信息
self.all_gems.append([])#append 添加到列表中
for y in range(NUMGRID):
gem=gemSprite(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE,GRIDSIZE),
position=[XMARGIN+x*GRIDSIZE,YMARGIN+y*GRIDSIZ
E-NUMGRID*GRIDSIZE],
downlen=NUMGRID*GRIDSIZE)
self.all_gems[x].append(gem)
self.gems_group.add(gem)#.add()将对象作为一个整体,为字典添 加元素,若添加的元素已在字典中中,则不执行任何操作
if self.isMatch()[0] == 0:
break #终止循环
效果如下:
其余部分见论文
基于 python 的德云消消乐益智小游戏设计论文+源码相关推荐
- 基于stm32、0.96寸OLED实现的贪吃蛇小游戏(详细源码注释)
简介:本实验基于stm32最小系统.0.96寸OLED(68*128)和摇杆实现一个经典的贪吃蛇小游戏.项目源码地址:点击下载. 硬件设计: 普通摇杆,0.96寸OLED 单色屏幕(SPI协议通讯), ...
- 基于stm32、0.96寸OLED实现的俄罗斯方块小游戏(详细源码注释)
概述:本实验基于stm32最小系统.0.96寸OLED(68*128)和摇杆实现一个经典的俄罗斯方块小游戏.项目源码地址:点击下载. 硬件要求: 普通摇杆,两个电位器和一个开关组成,左右摇动控制一个电 ...
- Python贪吃蛇小游戏_完整源码免费分享
文章目录 Python 贪吃蛇小游戏 1. 导包 2. 配置初始化参数 3. 主函数及运行主体 4. 画食物的函数 5. 画贪吃蛇的函数 6. 画网格的函数(非必选,觉得多余的可以忽略此项) 7. 操 ...
- 【Python小游戏】用AI玩Python小游戏FlappyBird【源码】
提示:如果本文对您有帮助,欢迎点赞支持! 文章目录 目录 前言 一.Flappy Bird是什么? 二.本项目简介 1.实现效果 2.游戏逻辑的相关链接 (1)游戏逻辑部分 (2)AI训练逻辑部分 说 ...
- 基于jsp+ssm+springboot的小区物业管理系统【设计+论文+源码】
摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于小区物业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区物业管理系统,它彻底改变了过去 ...
- python下俄罗斯方块的游戏设计_[源码和文档分享]基于Python的PyGame的俄罗斯方块游戏设计与实现...
摘 要 近年来,随着游戏产业的突飞猛进,游戏玩家的技术也是与日俱增,当你看见游戏高手完美的表演时,你是否想过我也能达到那种水平,本程序用Python语言编写俄罗斯方块,左侧显示正在运行的游戏,右边显示 ...
- 基于Python的Flask框架开发的在线电影网站系统(附源码)
来源丨网络 今天给大家分享的是基于Python的Flask框架开发的在线电影网站系统. 项目介绍 项目介绍:网站前端采用HTML5编写,使用Bootstrap前端开发框架,后端使用Python3语言编 ...
- 假期用Python写8个小游戏(附源码)
假期玩嗨了吧,我给你准备了六个小游戏,有胆子来玩一玩吗?我自己是玩了很多遍的,所以想让大家一起玩,独乐乐不如众乐乐.代码放在下面了,动手操作吧. 1.小恐龙 玩法:上下控制起跳躲避 源码分享: Pyt ...
- Python自制小游戏【附源码 直接运行】
上班不知道怎么摸鱼?代码敲累了直接自制小游戏放松一下!今天给大家分享七个小游戏,可以从周一玩到周日,不重样的那种. 赶紧点赞收藏起来吧! 1.消消乐 源代码与学习资料领取
最新文章
- 【django轻量级框架】Django框架介绍与安装
- python turtle循环图案-有趣的Python turtle绘图
- SQLServer之创建AFETER DELETE触发器
- 机器学习-常见的损失函数比较
- linux中断处理函数参数,第9章 设置ISR(中断处理函数)
- Anaconda+conda创建python沙箱环境
- python怎么画出圆润的曲线_利用python画出AUC曲线的实例
- mysql 改成宽松模式_mysql5.6 sql_mode设置为宽松模式
- 解决神经网络过拟合问题—Dropout方法、python实现
- Centos7安装mysql社区版
- 防止病毒迷惑了您的眼睛
- 在Js或者cess后加版本号 防止浏览器缓存
- Android:Day03_完美登录案例(使用流和文件来保存登录信息)
- 计算机系统操作中级工试题及答案,计算机系统操作中级工试题附答案.doc
- java script特效_javascript 常用特效(40种)
- java setvalue函数,Java JavaTuples setValue()用法及代码示例
- DA14580蓝牙硬件系统总览(二)
- Beyond Accuracy:Behavioral Testing of NLP Models with Checklist 论文阅读
- 你以为你以为的三国就是你以为的三国吗——读《三国史话》
- #sora#celery笔记——call the task
热门文章
- 服务器系统如何修改cpu阀值,服务器的CPU、内存、磁盘的阈值是多少
- MySql-8.0.27-winx64安装,超详细
- w7计算机找不到桌面选项,Win7系统右键计算机属性不见了怎么办?
- 时代变了,程序员の老冤家IE浏览器离场啦?!
- 黑客是如何知道我们常用的密码的
- P90、面试题11:数值的整数次方
- Pycharm找不到科学模式
- 【论文翻译 | IEEE TKDE】ie-HGCN - Interpretable and Efficient Heterogeneous Graph Convolutional Network
- 基于多任务深度学习的时空网络流量预测 IEEE TKDE 2019
- QT---实现小球游戏(零基础入门)