小编给大家分享一下怎么利用python实现贪吃蛇游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强> 0引言强>
先通过下面这个效果图来感受下吧!
<强> 1环境强>
操作系统:Windows
python版本:3.7.3
<强> 2需求分析强>
我们先来回顾下贪吃蛇中的游戏元素及游戏规则。
首先呢,需要有贪吃蛇,有食物,需要能控制贪吃蛇来上下移动获取食物;贪吃蛇在吃取食物后,自身长度增加,同时食物消失并随机生成新的食物,如果贪吃蛇触碰到四周墙壁或是触碰到自己身体时,则游戏结束。
游戏规则就是这么简单,接下来我们借助一个第三方库pygame来实现它。
pygame是一个利用SDL库的游戏库,是一组用来开发游戏软件的python程序模块。
SDL(简单DirectMedia层)是一个跨平台库,支持访问计算机多媒体硬件(声音、视频,输入等),SDL非常强大,但美中不足的是它是基于C语言的。
pygame是SDL库的python包装器(包装),pygame在SDL库的基础上提供了各种接口,从而使用用户能够使用python语言创建各种各样的游戏或多媒体程序。
引用>它的安装方法很简单,如下:
pip install pygame想要了解更多pygame功能的朋友也可以查阅官方的文档。
<强> 3代码实现强>
首先导入我们要用到的模块,除了第三方库pygame外,我们还会用到一些python内置的模块如sys,随机的,时间等,一并导入即可。
import pygame,,系统,随机,时间 #,从pygame模块导入常用的函数和常量 得到pygame.locals import *<强> 3.1一些全局参数的初始化强>
接下来,我们需要声明一些全局参数。如初始化pygame,定义游戏窗口的大小,窗口的标题,定义全局的颜色变量等信息。
#,初始化pygame库 pygame.init () #,初始化一个游戏界面窗口 时间=DISPLAY pygame.display.set_mode ((640,, 480)) #,设置游戏窗口的标题 pygame.display.set_caption(& # 39;人人都是Pythonista 作用;蛇# 39;) #,定义一个变量来控制游戏速度 时间=FPSCLOCK pygame.time.Clock () #,初始化游戏界面内使用的字体 时间=BASICFONT pygame.font.SysFont (“SIMYOU.TTF",, 80) #,定义颜色变量 BLACK =, pygame.Color (0, 0, 0) 时间=WHITE pygame.Color (255,, 255,, 255) RED =, pygame.Color (255, 0, 0) GREY =, pygame.Color (150,, 150,, 150)<强> 3.2初始化贪吃蛇及食物
强>游戏中需要有贪吃蛇及食物,我们给定一个初始值。我们将整个界面看成许多20 * 20的小方块,每个小方块代表一个标准小格子,贪吃蛇的长度就可以用几个标准小格子表示。我们将贪吃蛇身体用列表的形式存储,方便之后的删减。
& # 39; & # 39; & # 39;初始化贪吃蛇及食物& # 39;& # 39;& # 39;#,贪吃蛇的的初始位置 时间=snake_Head [100100] #,初始化贪吃蛇的长度,(注:这里以20 * 20为一个标准小格子) snake_Body =, [[80100], [60100], [40100]] #,指定蛇初始前进的方向,向右 时间=direction “right" #,给定第一枚食物的位置 时间=food_Position [300300] #,食物标记:0代表食物已被吃掉;1代表未被吃的掉。 food_flag =, 1<强> 3.3实现贪吃蛇的上下左右移动强>
我们需要控制贪吃蛇的上下左右的移动,这里通过监听键盘输入来实现。利用键盘中的上下左右键或WASD键来控制贪吃蛇的运动。
#,检测按键等Pygame事件 for event  pygame.event.get拷贝(): if 才能;event.type ==,退出: ,,,#,接收到退出事件后,退出程序 ,,,pygame.quit () ,,,sys.exit () ,,,, #才能,判断键盘事件,用,方向键,或,wsad 来表示上下左右 elif 才能;event.type ==, KEYDOWN: ,,,if (event.key ==, K_UP 或是event.key ==, K_w),以及direction !=,: ,,,,,direction =, ,,,if (event.key ==, K_DOWN 或是event.key ==, K_s),以及direction !=,: ,,,,,direction =, ,,,if (event.key ==, K_LEFT 或是event.key ==, K_a),以及direction !=,右: ,,,,,direction =,离开了 ,,,if (event.key ==, K_RIGHT 或是event.key ==, K_d),以及direction !=,左: ,,,,,direction =,怎么利用python实现贪吃蛇游戏