本文实例为大家分享了python实现贪吃蛇的具体代码,供大家参考,具体内容如下

import pygame

import sys

import random

SCREEN_X=600

SCREEN_Y=600

class Snake(object):

def __init__(self):

self.direction=pygame.K_RIGHT

self.body = []

for i in range(5):

self.addnode()

def addnode(self):

left, top = (0, 0)

if self.body:

left, top = (self.body[0].left,self.body[0].top)

node = pygame.Rect(left,top,25,25)

if self.direction == pygame.K_RIGHT:

node.left += 25

elif self.direction == pygame.K_LEFT:

node.left -= 25

elif self.direction == pygame.K_UP:

node.top -= 25

elif self.direction == pygame.K_DOWN:

node.top += 25

self.body.insert(0,node)

def delnode(self):

self.body.pop()

def isdead(self):

if self.body[0].x not in range(SCREEN_X):

return True

if self.body[0].y not in range(SCREEN_Y):

return True

if self.body[0] in self.body[1:]:

print('in body')

return True

return False

def move(self):

self.addnode()

self.delnode()

def changeddirection(self,curkey):

LR = [pygame.K_LEFT,pygame.K_RIGHT]

UD = [pygame.K_DOWN,pygame.K_UP]

if curkey in LR+UD:

if (curkey in LR) and (self.direction in LR):

return

if (curkey in UD) and (self.direction in UD):

return

self.direction = curkey

class Food(object):

def __init__(self):

self.rect = pygame.Rect(-25, 0, 25, 25)

def remove(self):

self.rect.x = -25

def set(self):

if self.rect.x == -25:

allpos = []

for pos in range(25,SCREEN_X-25,25):

allpos.append(pos)

self.rect.left = random.choice(allpos)

self.rect.top = random.choice(allpos)

print(self.rect)

def show_text(screen,pos,text,color,font_bold = False,font_size = 60,font_italic = False):

cur_font=pygame.font.SysFont('宋体',font_size)

cur_font.set_bold(font_bold)

cur_font.set_italic(font_italic)

text_fmt = cur_font.render(text,1,color)

screen.blit(text_fmt,pos)

def main():

pygame.init()

screen_size = (SCREEN_X,SCREEN_Y)

screen = pygame.display.set_mode(screen_size)

pygame.display.set_caption('Snake')

clock=pygame.time.Clock()

scores=0

isdead=False

snake=Snake()

food=Food()

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

sys.exit()

if event.type == pygame.KEYDOWN:

#print(event)

#pressed_keys = pygame.key.get_pressed()

#if pressed_keys.count(1)>1:

# continue

print(event.key)

snake.changeddirection(event.key)

if event.key == pygame.K_SPACE and isdead:

return main()

screen.fill((255,255,255))

if not isdead:

scores +=1

snake.move()

for rect in snake.body:

pygame.draw.rect(screen,(20,220,39),rect,0)

isdead=snake.isdead()

if isdead:

show_text(screen,(100,200),'you dead!',(227,29,18),False,100)

show_text(screen,(150,260),'press space to try again...',(0,0,22),False,30)

if food.rect == snake.body[0]:

scores +=50

food.remove()

snake.addnode()

food.set()

pygame.draw.rect(screen,(136,0,21),food.rect,0)

show_text(screen,(50,500),'Scores:'+str(scores),(223,223,223))

pygame.display.update()

clock.tick(5)

if __name__ == "__main__":

main()

python实现有障碍物的贪吃蛇_python实现贪吃蛇游戏源码相关推荐

  1. python文字游戏源代码_python 像素小鸟小游戏源码(flappybird)

    [实例简介] 像素小鸟这个简单的游戏于2014年在网络上爆红,游戏上线一段时间内appleStore上的下载量一度达到5000万次,风靡一时 [实例截图] [核心代码] from Class impo ...

  2. 学生学python编程---实现贪吃蛇小游戏+源码

    学生学python编程---实现贪吃蛇小游戏+源码 前言 主要设计 1.蛇的表示 2.蛇怎么移动? 3.玩家控制小蛇移动功能的实现 4.如何判定游戏结束? 应用知识点 1.python知识点 1.1 ...

  3. python地牢贪吃蛇 —Roguelike贪吃蛇游戏游戏源码下载

    Snague 是一款Roguelike类型的贪吃蛇小游戏.在保留贪吃蛇核心机制的基础上进丰富了游戏内容. 游戏中您不但可以挑战不同关卡, 还能够获得不同增强, 过五关斩六将, 打破高分记录, 成为最强 ...

  4. SwiftUI 游戏源码大全之贪吃蛇游戏基于GeometryReader和Preference

    实战需求 SwiftUI 游戏源码大全之贪吃蛇游戏基于GeometryReader和Preference 本文价值与收获 看完本文后,您将能够作出下面的界面 游戏规则 你抓住一个圆圈时,蛇会增长一段. ...

  5. 贪吃蛇大作战JavaFx版完整源码

    贪吃蛇大作战 Java版 项目源码:https://github.com/silence1772/JavaFX-GreedySnake (记得点star啊,收藏一个项目最好的方式是star而不是for ...

  6. 贪吃蛇 java下载_Java实现贪吃蛇游戏源码

    本文实例为大家分享了Java实现贪吃蛇游戏源码的具体代码,供大家参考,具体内容如下 1.StartGame package com.qiang.snake; import javax.swing.*; ...

  7. c语言贪吃蛇游戏源码下载,c语言贪吃蛇游戏源码.doc

    c语言贪吃蛇游戏源码.doc /*运行是按任意键开始,不过呢,反向也算输哟*/include include include include include include include defin ...

  8. 【180928】美女贪吃蛇小游戏源码

    本源码是一个简单的c#版美女贪吃蛇小游戏源码,基于winform技术制作.控制方向键即可.右侧有记分板,每走一步都记加分.贪吃蛇身体掠过的地方就会显示背景图片,身体越长,显示的越多,玩家可以将图片换成 ...

  9. 贪吃蛇小游戏源码分享

    创建2个文件夹,一个是放源码还有一个文件夹是发图片的. 然后创建三个实体类. package com.Bubbles.snake; import javax.swing.*; import java. ...

  10. python小游戏源码-Python小游戏之300行代码实现俄罗斯方块

    Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...

最新文章

  1. phaser.min.js_如何使用Phaser 3,Express和Socket.IO构建多人纸牌游戏
  2. 如何在 Unix 和 DOS 格式之间转换文本文件
  3. c#_winform_选择文件保存路径
  4. PHP convet class to json data
  5. BZOJ 1269: [AHOI2006]文本编辑器editor Splay
  6. Spring实战第七章
  7. HDMI光端机是什么?hdmi光端机产品参数及性能特点介绍
  8. [渝粤教育] 西南科技大学 货币银行学 在线考试复习资料
  9. chrome面板介绍
  10. linux中top和ps的内存区别,linux - top与ps间的区别
  11. 猫狗动物声音模拟器微信小程序源码
  12. Android P Beta 3 现已发布!
  13. /etc/resolv.conf
  14. GitLab 9提供了子群组、部署面板和集成监控
  15. 深大计算机专业进腾讯,国内中游985和深圳大学计算机专业怎么选?640报考深圳大学吃亏吗...
  16. outlook邮箱显示一直启动中_[转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案...
  17. 高等数学所有符号的写法与读法
  18. matlab求系统根轨迹代码_怎么学习经典控制(结合MATLAB)
  19. 把ipad变成电脑的外接显示屏
  20. python学习-循环替换txt文件中的指定字符

热门文章

  1. python语言采用严格的什么填上恰当词语_Python语言是
  2. h5 手机屏幕适配—REM
  3. Windows系统下C盘根目录常见文件夹
  4. (一)神经网络和深度学习
  5. 扇贝丁--瑶柱的挑选
  6. 单通道语音信噪分离算法研究
  7. press any key to boot from usb 解决方案
  8. 企业云盘与企业信息安全
  9. 眷恋青春,眷恋你--天空16度蓝
  10. 非法传播影视剧会被封号,剪辑片段算侵权吗?