python50行小游戏_50行python代码实现的贪吃蛇小游戏

50行python代码实现的贪吃蛇小游戏

发布于 2014-09-01 21:26:24 | 1337 次阅读 | 评论: 1 | 来源: 网友投递

Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

本文是一个用50行python代码实现的贪吃蛇小游戏,感兴趣的同学参考学习下.

代码如下:

import sys, pygame

from pygame.locals import *

from random import randrange

up =lambda x:(x[0]-1,x[1])

down = lambda x :(x[0]+1,x[1])

left = lambda x : (x[0],x[1]-1)

right = lambda x : (x[0],x[1]+1)

tl = lambda x :x<3 and x+1 or 0

tr = lambda x :x==0 and 3 or x-1

dire = [up,left,down,right]

move = lambda x,y:[y(x[0])]+x[:-1]

grow = lambda x,y:[y(x[0])]+x

s = [(5,5),(5,6),(5,7)]

d = up

food = randrang

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值