python100行小游戏编码_100行python代码,轻松完成贪吃蛇小游戏

大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇。在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短,而且理解起来或者说你更改起来要简单一些。最终会实现效果如下:

image

基本准备

首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知道整个游戏分为四部分:

游戏显示:游戏界面、结束界面

贪吃蛇:头部、身体、食物判断、死亡判断

树莓:随机生成

按键控制:上、下、左、右

游戏显示

首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题和图标等。

1# 初始化pygame

2pygame.init()

3fpsClock = pygame.time.Clock()

4# 创建pygame显示层

5playSurface = pygame.display.set_mode((600,460))#窗口大小

6pygame.display.set_caption('Snake Game')#窗口名称

7# 定义颜色变量

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

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

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

11greyColour = pygame.Color(150,150,150)

游戏结束界面,我们会显示“Game Over!”和该局游戏所得分数,相关代码如下:

1# 定义gameOver函数

2def gameOver(playSurface,score):

3 gameOverFont = pygame.font.SysFont('arial.ttf',54) #游戏结束字体和大小

4 gameOverSurf = gameOverFont.render('Game Over!', True, greyColour) #游戏结束内容显示

5 gameOverRect = gameOverSurf.get_rect()

6 gameOverRect.midtop = (300, 10) #显示位置

7 playSurface.blit(gameOverSurf, gameOverRect)

8 scoreFont = pygame.font.SysFont('arial.ttf',54) #得分情况显示

9 scoreSurf = scoreFont.render('Score:'+str(score), True, greyColour)

10 scoreRect = scoreSurf.get_rect()

11 scoreRect.midtop = (300, 50)

12 playSurface.blit(scoreSurf, scoreRect)

13 pygame.display.flip() #刷新显示界面

14 time.sleep(5) #休眠五秒钟自动退出界面

15 pygame.quit()

16 sys.exit()

贪吃蛇和树莓

我们需要将整个界面看成许多20*20的小方块,每个方块代表一个单位,蛇的长度用单位来表示,同时我们采用列表的形式存储蛇的身体。同时, 我们都知道,树莓的位置是随机的。所以,我们需要让树莓出现的位置是游戏界面中的随机位置,同时,每吃到一颗树莓,就需要重新生成一颗新的树莓,并且得分加1。相关初始化设置如下:

1snakePosition = [100,100] #贪吃蛇 蛇头的位置

2snakeSegments = [[100,100]] #贪吃蛇 蛇的身体,初始为一个单位

3raspberryPositi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴回答您的问题!以下是一个基于Python的简单贪吃蛇游戏代码,使用了bat编程语言。 ```python @echo off title Snake Game color 02 setlocal enabledelayedexpansion set /a score=0 set "snake=0,0 1,0 2,0" set "direction=right" set "food=!random! %% 60 + 5,!random! %% 20 + 5" :gameLoop cls set "head=!snake:*,=!" set "tail=!snake:* =!" if "!direction!"=="up" ( set /a headY=!head:*,=!-1 set "newHead=!headX!,!headY!" ) else if "!direction!"=="down" ( set /a headY=!head:*,=!+1 set "newHead=!headX!,!headY!" ) else if "!direction!"=="left" ( set /a headX=!head:* =!-2 set "newHead=!headX!,!headY!" ) else if "!direction!"=="right" ( set /a headX=!head:* =!+2 set "newHead=!headX!,!headY!" ) if "!newHead!"=="!food!" ( set /a score+=1 set "snake=!newHead! !snake!" set "food=!random! %% 60 + 5,!random! %% 20 + 5" ) else ( set "snake=!newHead! !snake:~0,-2!" ) if "!newHead!"=="!tail!" ( goto gameOver ) if "!headX!"=="0" if not "!tail!"=="!snake!" ( goto gameOver ) echo Score: !score! for /l %%y in (1,1,25) do ( for /l %%x in (1,2,80) do ( set "print= " set "pos=!snake:* %%y,=!" for /f "tokens=1,2 delims=," %%a in ("!pos!") do ( if %%a==%%x if %%b==%%y ( set "print=O" ) ) if "!food:*,=!"=="%%x,%%y" ( set "print=X" ) set /p "=!print!" <nul ) echo. ) timeout /t 0.05 /nobreak >nul set "key=" for /f "usebackq delims=" %%a in (`xcopy /w "%~f0" "%~f0" 2^>nul`) do ( if not defined key set "key=%%a" ) if defined key ( if "!key:~,1!"=="w" if not "!direction!"=="down" set "direction=up" if "!key:~,1!"=="s" if not "!direction!"=="up" set "direction=down" if "!key:~,1!"=="a" if not "!direction!"=="right" set "direction=left" if "!key:~,1!"=="d" if not "!direction!"=="left" set "direction=right" ) goto gameLoop :gameOver echo Game over! Final score: !score! pause >nul exit ``` 这个代码中,我们使用了一些基本的命令和语法,如`set`,`if`,`for`,`goto`等。同时,我们使用了`timeout`命令来帮助控制游戏速度,并且使用了`xcopy`命令来获取用户的输入。 希望这个代码对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值