怎么利用python实现贪吃蛇游戏

  介绍

小编给大家分享一下怎么利用python实现贪吃蛇游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强> 0引言

先通过下面这个效果图来感受下吧!

怎么利用python实现贪吃蛇游戏

<强> 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实现贪吃蛇游戏