当前位置:   article > 正文

基于python的游戏设计论文,基于python的游戏设计_关于小游戏python论文

关于小游戏python论文

大家好,小编为大家解答关于python小游戏的毕业论文的问题。很多人还不知道基于python的小游戏毕业设计,现在让我们一起来看看吧!

Source code download: 本文相关源码

大家好,小编来为大家解答以下问题,关于python小游戏的毕业论文,基于python的小游戏毕业设计,现在让我们一起来看看吧!

Python//2048小游戏

  1. 这是一篇关于2048小游戏自制记录,用于个人总结与回看PYTHON库“IMITATION”。如果能对你有帮助,我很荣幸```*``

成品效果图

伴随音乐,音量可调Python中的所有运算符号70个python练手项目列表
同时伴随音乐(音量可调)

0 仍存在的未解决问题

如果有大佬看见了这篇文章,能帮助我解决以下的一些问题,我十分感激。
1、在我电脑上,pygame(1.9.6)只能加载bmp图片格式,但我从查找的资料来看,pygame应该可以读取png jpg等图片格式的。
2、在我用pyinstaller将代码打包为exe文件时,添加-w(使用Windows子系统执行.当程序启动时侯不会打开命令行) 参数会出现错误,出现了我不太懂的一个名词bootloader,报错如下:在这里插入图片描述
3、在我用pyinstaller将代码打包为exe文件时,添加-i(修改exe默认图片)参数,图片十分模糊,且在打包好的文件夹中是正常的,移动到桌面(或者其他目录下)exe图标还是默认图标,十分疑惑。
4、我希望可以监测鼠标的点击位置(我希望是一个图片),但是我在pygame中发现只能(实时监测鼠标位置+鼠标点击事件)同时使用,以到达目的,但效果不好(因为要涉及到整个图片),我不太会操作。

一、写在前面
身为非计算机专业的大一小白,自知代码风格不佳,函数封装冗余,但会努力学习,如果你看我的代码觉得混乱,我十分抱歉。

1、出于Python课程大作业原因,借此机会,完成了我一直想写一个游戏的想法。
2、代码运用到了 numpy,random,pygame,sys库

  1. import numpy as np
  2. import random
  3. import pygame
  4. import sys
二、代码思路与分析

上一张粗略的思维导图
在这里插入图片描述
1、初始化部分,就是简单的生成两个4*4矩阵,record1记录上一步操作(希望添加返回上一步的功能,但设计不够完善,有一点小bug,后面会提到),record2记录当前操作,以0表示没有数字。用random.randint(0,9)来生成随机数,用以表示刷新2还是4(比例我设置为9:1)。然后将该数填入矩阵内随机位置即可,这里依然采用randint方式。
2、当发生移动时(上下左右),矩阵应该如何变化?
以向上移动为例说明。首先,排列数字(即不考虑合并),按顺序遍历矩阵,当出现数字时,放在该列最上面,此处顺序指的是:向上移动就是由小到大遍历,向下就是由大到小遍历,核心思想就是,从移动方向开始,寻找数字,并记录次数。排列完成后开始,合并相同的数字(如:4+4 = 8)这里只合并一次(做了适当简化,正常可玩一下2048,感受一下),合并过程为,遍历格子,向四周寻找相同的数字,当找到后,向移动方向合并,并把后续数字想该方向推进,然后跳出循环(这里对后续数字的判断有些冗余,我认为可以更简单,这里先不修改了),其余方向思想相同。
3、刷新矩阵,即产生一个新的数字(2或4)填入矩阵为0部分,因为此处希望可以满足按其他键(非方向键)不刷新的要求,先判断矩阵是否相同,

if not np.array_equal(record2, record1):

如果相同,则不进行刷新。此处刷新大体与初始化的刷新相同,其中一步变化就是需要判断矩阵元素是否为0,这里没有采用遍历方式,具体操作如下:

  1. N = random.choice(np.where(record2.reshape(1, 16) == 0)[1])
  2. Next_cell1_location_raw = N // 4
  3. Next_cell1_location_clo = N
  4. while Next_cell1_location_clo > 3:
  5. Next_cell1_location_clo = Next_cell1_location_clo - 4
  6. record2[Next_cell1_location_raw][Next_cell1_location_clo] = Next_cell1

5、判断游戏结束,当矩阵没有元素为0时,遍历每个格子,向四周寻找相同数字,这里与合并判断一样,不懂赘述。(我写的确实是复杂了/菜)
6、

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览146623 人正在系统学习中
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/672038
推荐阅读
相关标签
  

闽ICP备14008679号