python程序设计实训前言_Python语言程序设计课程论文——推送盒,箱子

本文介绍了一个基于Python3和pygame模块开发的推箱子小游戏,旨在提供休闲娱乐,帮助缓解压力。游戏分为人物、关卡、按钮、撤步和主程序模块,实现了选关、推箱子、退步、重新开始等功能。通过控制小人移动,玩家需将箱子推到指定位置以过关。游戏设计考虑了不同难度,有助于提升玩家的逻辑思考能力和解决问题的能力。
摘要由CSDN通过智能技术生成

Python语言程序设计课程论文

项目名称:推箱子

摘要

在这个充满竞争的社会里,随着生活节奏的不断加快,人们的生活水平越来越繁忙,因此,越来越多人感到无比的烦躁与巨大的压力,这些压力也带给人们诸多烦恼。所以如何解除现代人的生活压力,释放心中苦闷已经成为现代人的共同心愿。而本次的这个基于python3利用pygame模块进行开发的推箱子小游戏,为大家开发了一款适合的、休闲娱乐的游戏,在娱乐的同时也给忙碌的上班族们开拓了另一个思考问题的空间。

基于python3的推箱子小游戏主要分为人物模块,关卡模块,按钮模块,撤步模块以及主程序模块,实现了推箱子游戏的选关卡、推箱子、退步、重新开始等功能。玩家是通过控制小人的移动来推动箱子,需要避过障碍物与死角才能将其推放到指定位置从而达到过关的目的。每关的难易程度各异,不仅适合人们休闲娱乐,还有助于开发智力,提高人们思考问题能力与想象能力,改善思考方式,拓展思维。

关键词:python3、pygame、推箱子

ABSTRACT

In this competitive society, with the accelerating pace of life, people’s living standards are becoming more and more busy. Therefore, more and more people feel extremely irritable and great pressure, which also brings many troubles to people. So how to relieve the pressure of modern people’s life and release their depression has become the common wish of modern people. This small push box game based on python3 and pyGame module has developed a suitable, leisure and entertainment game for everyone. While entertaining, it also opens up another space for busy office workers to think about problems.

The box pushing game based on python3 is mainly divided into character module, level module, button module, step back module and main program module. It realizes the functions of selecting level, pushing box, stepping back and starting again. Players push the box by controlling the movement of villains. They need to avoid obstacles and dead corners to push them to the designated position, so as to achieve the purpose of clearance. The difficulty of each level is different, not only suitable for people’s leisure and entertainment, but also helps to develop intelligence, improve people’s ability to think and imagine, improve the way of thinking and expand thinking.

Keywords: python3, pyGame, pushbox

一、引言

1.1项目名称

推箱子游戏

1.2项目背景

(1)开发软件工具:python3、pycharm

(2)项目提出者:黄舜桦

(3)项目开发者:黄舜桦

1.3项目意义

经典的推箱子是一个来自日本的古老游戏,目的是在训练玩家的逻辑思考能力。在一个狭小的仓库中,要求把木箱放在指定的位置,稍不小心就会出现箱子无法移动或则通道被堵住的情况,所以需要巧妙地利用有限的空间和通道,合理安排移动的次序和未知,才能顺利地完成任务。

1.4 主要的研究内容

本项目主要完成一种基于Python开发的一款单机游戏.项目研究的具体任务包括:

(1)完成关卡设计;

(2)实现人物移动和箱子移动;

(3)实现各类按钮的功能;

(4)实现关卡的状态;

二、系统结构

本项目分为主程序:mean.py;

使用的python第三方模块:pygame.py;

自定义的模块:hero.py、button.py、level.py、back_queue.py

2.1项目结构

2.2 项目原理

关卡类:矩阵维护

定义一个10*10的矩阵,代表一个关卡,矩阵中,9,代表不填充,1代表墙,0代表空白地接,2代表当前箱子所在位置,3代表人,和4代表箱子应放置的位置(人经过变成5,箱子经过变成6)

一个关卡对应一个初始矩阵,和一个背景图,类属性

如何维护:

人的移动,对应矩阵操作,矩阵操作会进行判断是否可操作,还有箱子的移动,箱子移动是根据人的移动判断是否会带了箱子的移动,箱子移动是如何变化的,判断后贴图,怎样代表箱子运动了,1,人移动后的位置是箱子的位置,2箱子向人移动方向移动的位置不是墙。所以向维护函数传人当前坐标,x,y,以及人移动方向:1,上,2,下,3,左,4,右,返回两个布尔变量,第二个是否人能移动,第一个是否箱子能移动

如何贴图

为了优化,我们只贴改变地方的贴图,比如,人向下移动,我们把人原来的位置贴一个空白地接,人向下移动的地方贴一个人,因此,人移动是直接做贴图计算的,人移动还要分情况,能移动,和不能移动。因此是矩阵维护后返回结果来判断是否能不能移动。

人和箱子移动,箱子移动是有人移动带动的,所以,人移动了,才有可能带来箱子移动,我们只需判断,人移动是否能带来箱子移动,也是矩阵维护类返回结果告诉我们。

关于过关和选关

选关,设置了下一关和上一关,和当前关卡显示,如果当前关卡为1,上一关关卡颜色为灰色,同理,下一关关卡为灰色

过关,矩阵判断是否矩阵里没有4和5,如果是贴过关图

主类需要做到:

判断当前状态,是过关状态,还是游戏状态

需要的图片:

关卡图(几关几个图),箱子图,空白地接图,人,箱子应在的位置的点图,箱子进过位置点的图,人进过位置点的图,当前关卡按钮图,下一关关卡按钮图的2-3种,上一关关卡按钮图的2-3种,过关图,重新开始按钮图2种,继续下一关按钮图2种。

三、实现代码

3.1 back_queue.py 模块

class back_queue:

queue_maxsize = 10

def __init__(self):

self.queue_size = 0

self.queue = []

def is_empty(self):

return self.queue == []

def add(self,li):

if self.queue_size < back_queue.queue_maxsize:

self.queue.insert(self.queue_size,li)

self.queue_size+=1

else:

self.queue.pop(0)

self.queue.insert(self.queue_size,li)

def remove(self):

if self.queue_size !=0:

self.queue_size -=1

return self.queue.pop()

return None

3.2 hero.py 模块

class hero:

def __init__(self,p_img,p_c_img,b_img,r_img,t,r,window):

self.p_img = p_img #人的图片

self.b_img = b_img #空白地接图

self.p_c_img = p_c_img #人经过的正确点贴图

self.r_img = r_img #正确点的贴图

self.x = t[0]

self.y = t[1]

self.r &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值