Python贪吃蛇

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要

本次Python语言程序设计主要使用了Python中的Pygame模块创建了一个简单的又充满童年回忆的游戏——贪吃蛇。编写这个游戏用到了一个游戏都具备有的框架,在这个贪吃蛇的游戏中,游戏窗口里会随机生成目标小方块作为贪吃蛇的食物,通过键盘的上下左右的按键控制贪吃蛇的方向去“吃”食物,每“吃”进一个食物就会增加分数,并显示在界面右上方,同时还设置了最高得分,显示在界面的顶端。当贪吃蛇接触到界面的边缘,游戏结束,弹出“Play Again”的按钮,玩家可以选择重新开始游戏或者退出游戏,重新开始游戏将保持最高分纪录直至打破。

1.引言

在通过一学期的Python学习之后,我初步的了解到Python的语法以及它在各方面的应用:Web和Internet开发、科学计算和统计、人工智能、桌面界面开发、软件开发、后端开发、网络爬虫等。Python相对于其他语言更为简洁易懂,有严格的格式要求,在接触Python时是通过小游戏开始的,所以在本次Python的期末项目中,我使用了Pygame 模块编写了一个经典贪吃蛇的游戏。

Pygame是被设计用来写游戏的Python模块集合,Pygame是在优秀的SDL库之上开发的功能性包。使用Python可以导入Pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。Pygame包已经被下载过成千上万次,并且也被访问过成千上万次。可见Pygame是多受人欢迎,虽然使用Python做游戏项目并不是Python的主要作用,但是是初学者用来进一步掌握Python 的不错的选择,Python的循环语句,条件语句,以及面向对象编程在一个游戏项目中都需要用到,熟悉掌握这些之后,对以后在其他方面的应用奠定了基础。

本次论文介绍了我编写游戏项目——贪吃蛇的过程,详细介绍了这个项目的架构,各个函数,实现方法,以及编写完成后如何操作和演示结果。

关键字:Python,Pygame,面向对象,贪吃蛇

2.系统结构

2.1 设计框架

每一个项目都拥有它的设计框架,图1为贪吃蛇的设计框架:

图1 贪吃蛇的设计框架

①相关设置:里面包含了这个游戏中所需要的固定设置,方便下面的函数调用;

②初始化:初始化Pygame这个游戏库;

③欢迎信息:运行程序后出现的界面,包含“Play”的按钮,点击能开始游戏;

④游戏运行主体:开始游戏后进入的循环;

④-①蛇、食物的位置初始化:对这些位置进行初始化;

④-②监听键盘、移动蛇位置:通过对键盘的监听,控制蛇的运动;

④-③判断游戏状态:如果触发死亡,则结束游戏,没有则继续游戏;

④-④分数更新:蛇的长度增加则分数更新;

④-⑤更新画面:蛇每次移动都更新一次画面;

⑤结束信息:触发死亡游戏结束时出现的界面,包含“Play Again”的按钮,点

击重新进入游戏循环。

2.2 程序流程图

图2所示为贪吃蛇游戏的程序流程图

图2 贪吃蛇游戏的程序流程图

3.实现代码

代码实现按照设计框架分为五大部分,其中第四部分游戏主体分五小部分介绍。

3.1 相关设置

定义颜色的设置和游戏界面的大小

图3

3.2 初始化

初始化Pygame游戏库,定义变量控制游戏速度以及最高得分初始化。创建游戏窗口。

图4

3.3 欢迎信息

定义一个show_start_info函数,里面包含了“Play”按钮的定义,并使按钮在屏幕中央显示出来,还设置了鼠标监听事件,当按下按钮之后,结束函数,游戏开始。

图5

图6

图7

3.4 游戏运行主体

3.4.1 蛇、食物的位置初始化

设定蛇和食物在屏幕上的初始化位置,以及蛇的初始化方向。

图8

3.4.2 监听键盘、移动蛇位置

设置一个循环,监听键盘的按键是否按下,通过设定各按键对应的方向,控制蛇头

的方向改变。

图9

图10

3.4.3 判断游戏状态

判断蛇头是否与目标方块重合,是则继续游戏,如果蛇头碰触到屏幕边缘,则结束游戏。

图11

图12

3.4.4 分数更新

设定一个draw_score和一个draw_high_score函数表示在屏幕上绘制分数。在main 函数中调用此函数。

图13

图14

图15

3.4.4 更新画面

图16

3.4 结束信息

在触发游戏结束的条件后,出现游戏结束的界面。

图17

图18

3.4 完整代码

# 导入程序所需要的模块

import pygame

import random

import sys

from pygame.locals import *

# 定义颜色的变量

# 目标方块的颜色红色

redColour = pygame.Color(255, 0, 0)

# 背景颜色黑色

blackColour = pygame.Color(0, 0, 0)

# 贪吃蛇的颜色白色

whiteColour = pygame.Color(255, 255, 255)

#游戏界面大小

windows_width = 800

windows_height = 600

# 定义游戏结束的函数

def gameOver():

pygame.quit()

sys.exit()

# 主函数

def main():

# 初始化Pygame这个游戏库

pygame.init()

# 定义一个变量控制游戏的速度

fpsClock = pygame.time.Clock()

# 创建一个窗口图形界面

playSurface = pygame.display.set_mode((windows_width, windows_height)) pygame.display.set_caption("贪吃蛇") #游戏名称写在窗口标题

# 初始化最高分(不可修改)

high_score = 0

show_start_info(playSurface) #打印欢迎信息

while True:

# 初始化变量

# 贪吃蛇起始坐标位置(100,100)

snakePosition = [100, 100]

snakeBody = [[100, 100], [80, 100], [60, 100]]

# 目标方块的起始位置

targetPosition = [300, 300]

# 目标方块的标记目的:用来判断是否吃掉了这个目标方块

相关文档
最新文档