100行python代码完成贪吃蛇小游戏,附上源码

时间:2021-10-23 01:39 作者:OD体育
本文摘要:大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个浅易版的贪吃蛇。在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比力短,而且明白起来或者说你更改起来要简朴一些。 最终会实现效果如下:基本准备首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。

OD体育

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

最终会实现效果如下:基本准备首先,我们需要安装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('SnakeGame')#窗口名称 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函数 2defgameOver(playSurface,score): 3gameOverFont=pygame.font.SysFont('arial.ttf',54)#游戏竣事字体和巨细 4gameOverSurf=gameOverFont.render('GameOver!',True,greyColour)#游戏竣事内容显示 5gameOverRect=gameOverSurf.get_rect() 6gameOverRect.midtop=(300,10)#显示位置 7playSurface.blit(gameOverSurf,gameOverRect) 8scoreFont=pygame.font.SysFont('arial.ttf',54)#得分情况显示 9scoreSurf=scoreFont.render('Score:'+str(score),True,greyColour)10scoreRect=scoreSurf.get_rect()11scoreRect.midtop=(300,50)12playSurface.blit(scoreSurf,scoreRect)13pygame.display.flip()#刷新显示界面14time.sleep(5)#休眠五秒钟自动退出界面15pygame.quit()16sys.exit()贪吃蛇和树莓我们需要将整个界面看成许多20*20的小方块,每个方块代表一个单元,蛇的长度用单元来表现,同时我们接纳列表的形式存储蛇的身体。同时,我们都知道,树莓的位置是随机的。

所以,我们需要让树莓泛起的位置是游戏界面中的随机位置,同时,每吃到一颗树莓,就需要重新生成一颗新的树莓,而且得分加1。相关初始化设置如下:1snakePosition=[100,100]#贪吃蛇蛇头的位置2snakeSegments=[[100,100]]#贪吃蛇蛇的身体,初始为一个单元3raspberryPosition=[300,300]#树莓的初始位置4raspberrySpawned=1#树莓的个数为15direction='right'#初始偏向为右6changeDirection=direction7score=0#初始得分其实做为一个开发者,有一个学习的气氛跟一个交流圈子是一个特别重要的事情,这里我建立了一个python交流群12546470,不管你是小白还是大牛接待入驻,大家一起交流发展。如何控制贪吃蛇的运动轨迹呢,那么就需要按键控制了。我们通过键盘的↑↓←→和WSAD来控制,如果想直接退出游戏,则可以通过Esc键。

这里需要强调的是,贪吃蛇内里是不能反偏向运动,因此,我们需要进一步的增加限制条件: 1#检测例如按键等pygame事件 2foreventinpygame.event.get(): 3ifevent.type==QUIT: 4pygame.quit() 5sys.exit() 6elifevent.type==KEYDOWN: 7#判断键盘事件 8ifevent.key==K_RIGHTorevent.key==ord('d'): 9changeDirection='right'10ifevent.key==K_LEFTorevent.key==ord('a'):11changeDirection='left'12ifevent.key==K_UPorevent.key==ord('w'):13changeDirection='up'14ifevent.key==K_DOWNorevent.key==ord('s'):15changeDirection='down'16ifevent.key==K_ESCAPE:17pygame.event.post(pygame.event.Event(QUIT))18#判断是否输入了反偏向19ifchangeDirection=='right'andnotdirection=='left':20direction=changeDirection21ifchangeDirection=='left'andnotdirection=='right':22direction=changeDirection23ifchangeDirection=='up'andnotdirection=='down':24direction=changeDirection25ifchangeDirection=='down'andnotdirection=='up':26direction=changeDirection偏向设置好了,那么贪吃蛇蛇身变换怎么做啊?很简朴,我们只需要凭据偏向变换一下坐标即可。1#凭据偏向移动蛇头的坐标 2ifdirection=='right': 3snakePosition[0]+=20 4ifdirection=='left': 5snakePosition[0]-=20 6ifdirection=='up': 7snakePosition[1]-=20 8ifdirection=='down': 9snakePosition[1]+=2010#增加蛇的长度11snakeSegments.insert(0,list(snakePosition))贪吃蛇游戏内里最重要的就是食物判断和死亡判断。首先是食物判断,我们通过键盘按键来决议贪吃蛇的走向,以便它能吃到树莓。如何判断贪吃蛇有没有吃到树莓呢?很简朴,如果贪吃蛇蛇头的位置和树莓的位置重合了,也就是相同,那么贪吃蛇就吃到树莓了,否则没有。

同时,一旦发生了树莓被吃的情况,连忙重新随机生成一个新的树莓。相关代码如下: 1#判断是否吃掉了树莓 2ifsnakePosition[0]==raspberryPosition[0]andsnakePosition[1]==raspberryPosition[1]: 3raspberrySpawned=0 4else: 5snakeSegments.pop()#若没有吃掉树莓,需将最后一单元的蛇身提出列表,此处和蛇身移动时位置变换有关 6#如果吃掉树莓,则重新生成树莓 7ifraspberrySpawned==0: 8x=random.randrange(1,30)#和游戏界面巨细相关 9y=random.randrange(1,23)10raspberryPosition=[int(x*20),int(y*20)]11raspberrySpawned=112score+=1死亡判断则分为两类情况,一是触遇到了游戏界面的界限,二是贪吃蛇触遇到了自己的身体。

一旦发生死亡,则触发gameover。1#判断是否死亡2ifsnakePosition[0]>600orsnakePosition[0]<0:#若凌驾左右界限,触发gameover3gameOver(playSurface,score)4ifsnakePosition[1]>460orsnakePosition[1]<0:#若凌驾上下界限,触发gameover5gameOver(playSurface,score)6forsnakeBodyinsnakeSegments[1:]:#若触遇到自己的身体,触发gameover7ifsnakePosition[0]==snakeBody[0]andsnakePosition[1]==snakeBody[1]:8gameOver(playSurface,score)贪吃蛇运动和吃掉树莓的历程中,游戏界面需要不停更新。同时,我们设置了游戏速度。1#绘制pygame显示层 2playSurface.fill(blackColour) #蛇身为白色 3forpositioninsnakeSegments: 4pygame.draw.rect(playSurface,whiteColour,Rect(position[0],position[1],20,20)) 5pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0],raspberryPosition[1],20,20)) 6 7#刷新pygame显示层 8pygame.display.flip() 9#控制游戏速度10fpsClock.tick(5)泉源于DataGo数据狗 ,作者胡萝卜酱。


本文关键词:OD体育,100行,python,代码,完成,贪吃,蛇,小游戏,附上

本文来源:OD体育-www.sasanatour.com