#!/usr/bin/env python
# -*- coding: utf-8 -*-import pygame as pygame
import random
import sysfrom pygame.rect import Rectclass Snake(object):def __init__(self):  # 定义3个 颜色属性,以防后面需要self.black = pygame.Color(0, 0, 0)  # 背景颜色self.green = pygame.Color(0, 255, 0)  # 目标方块颜色self.white = pygame.Color(255, 255, 255)  # 蛇颜色def gameover(self):pygame.quit()sys.exit()def initialize(self):pygame.init()  # 初始化,就是初始化 pygame 里面的东西,没啥鸟用,但是没它不行,哈哈哈哈clock = pygame.time.Clock()  # 创建时钟对象 (可以控制游戏循环频率playSurface = pygame.display.set_mode((800, 600))  # 创建游戏窗口pygame.display.set_caption('贪吃蛇')  # 窗口名snakePosition = [80, 80]  # 贪吃蛇的头snakebody = [[80, 80], [60, 80], [40, 80]]  # 初始化贪吃蛇的长度 (注:这里以20*20为一个标准小格子)targetPosition = [200, 400]  # 绿色方块目标位置targetflag = 1direction = 'right'  # 初始化移动方向""" 注: 上面的属性啥的,定义是定义了, 但是 是静态的 还动不了,,而且 还没有颜色,黑麻麻的,,,所以才有了 下面的 这 一个 def main()  函数 ,我们 通过 main方法  让他们 嗨起来,五光十色,懂了吗?兄弟萌?"""changeDirection = direction  # 输入的 方向self.main(snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface, clock)def main(self, snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface,clock):# 所有事件全部放到一个实时循环中while True:for event in pygame.event.get():  # 接收到退出事件后,退出程序# pygame.event.get() ,监听用户事件,看用户在键盘上干了啥事if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:  # 根据输入,进行上下左右移动if event.key == pygame.K_RIGHT:changeDirection = 'right'print("向右转")if event.key == pygame.K_LEFT:changeDirection = 'left'print("向左转")if event.key == pygame.K_DOWN:changeDirection = 'down'print("向上走")if event.key == pygame.K_UP:changeDirection = 'up'print("向下走")if event.key == pygame.K_ESCAPE:pygame.event.post(pygame.event.Event(pygame.QUIT))if (changeDirection == 'left' and not direction == 'right'):# 如果改变后的移动方向是 left ,而原来的移动不是向 right, 则将方向 调为 leftdirection = changeDirectionif (changeDirection == 'right' and not direction == 'left'):direction = changeDirectionif (changeDirection == 'down' and not direction == 'up'):direction = changeDirectionif (changeDirection == 'up' and not direction == 'down'):direction = changeDirection# 根据键盘的输入,改变蛇的头部,进行转弯操作if direction == 'right':snakePosition[0] += 20if direction == 'left':snakePosition[0] -= 20if direction == 'down':snakePosition[1] += 20if direction == 'up':snakePosition[1] -= 20# 将蛇的头部当前位置加入到蛇身的列表中,增加蛇的长度snakebody.insert(0, list(snakePosition))# 如果蛇头与食物的位置重合,则判定吃到食物,将食物数量清零;而没吃到食物的话,蛇身就会跟着蛇头运动,蛇身的最后一节将被踢出列表if (snakePosition[0] == targetPosition[0] and snakePosition[1] == targetPosition[1]):  # 吃到绿色块targetflag = 0else:snakebody.pop()  # 没吃到绿块if targetflag == 0:  # 如果吃到绿色块,则重新生成新的绿色块x = random.randrange(1, 40)y = random.randrange(1, 30)targetPosition = [int(x * 20), int(y * 20)]  # 绿色块位置targetflag = 1  # 用来判断是否吃到绿色块,吃到则为0,否则为1# 填充背景颜色playSurface.fill(self.black)for position in snakebody:"""在Surface上绘制矩形,第二个参数是线条(或填充)的颜色,第三个参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x, y)表示的是该矩形左上角的坐标,第二个元组 (width, height)表示的是矩形的宽度和高度。width表示线条的粗细,单位为像素;默认值为0,表示填充矩形内部# 第一个参数surface  指定一个surface编辑区# 第二个参数color    指定颜色# 第三个参数rect     返回一个矩形包含位置信息(x,y),(width,height)# 第四个参数width    表示线条的粗细 width=0 实心  width=1 空心# 画蛇# 画目标方块儿"""# 画蛇   ,,,就是把蛇行走的身形画出来pygame.draw.rect(playSurface, self.white, Rect(position[0], position[1], 20, 20))# 画目标方块儿# print(targetPosition[0])     你运行一下就知道了# print(targetPosition[1])pygame.draw.rect(playSurface, self.green, Rect(targetPosition[0], targetPosition[1], 20, 20))# 更新显示到屏幕pygame.display.flip()# 判断游戏结束if (snakePosition[0] > 900 or snakePosition[0] < 0):  # 窗口 长snake.gameover()elif (snakePosition[1] > 800 or snakePosition[0] < 0):  # 窗口 宽snake.gameover()for i in snakebody[1:]:  # 撞到自己if (snakePosition[0] == i[0] and snakePosition[1] == i[1]):  # 当蛇头的位置(像素)与蛇身 一样时,即可判定它们相撞了snake.gameover()# 控制蛇行走速度clock.tick(6)snake = Snake()
snake.initialize()

注:代码不是本人所写,如有侵权,请告知我删除,谢谢!

Python 贪吃蛇 代码相关推荐

  1. python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...

  2. python小游戏代码大全-python贪吃蛇游戏代码

    本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...

  3. python代码大全-python贪吃蛇游戏代码

    本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...

  4. python贪吃蛇源码_Python:游戏:贪吃蛇(附源码)

    Python:游戏:贪吃蛇(附源码) 发布时间:2018-09-05 09:59, 浏览次数:1295 , 标签: Python 贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么 ...

  5. Python贪吃蛇双人大战-魔法豆登场

    Python贪吃蛇双人大战-魔法豆登场 时隔两月之后,家里的小朋友再次对我之前改写的贪吃蛇游戏(过程可参考我之前写的 Python贪吃蛇双人大战 和 Python贪吃蛇双人大战-升级版,代码可以到此处 ...

  6. 用html编写一个贪吃蛇,HTML编写的贪吃蛇代码

    <HTML编写的贪吃蛇代码>由会员分享,可在线阅读,更多相关<HTML编写的贪吃蛇代码(14页珍藏版)>请在人人文库网上搜索. 1.使用表格 var fangxiang;fan ...

  7. c语言安卓贪吃蛇代码下载,C语言贪吃蛇代码

    c语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的 C语言贪吃蛇代码部分 #include #include #include#include #defin ...

  8. Python贪吃蛇小游戏_完整源码免费分享

    文章目录 Python 贪吃蛇小游戏 1. 导包 2. 配置初始化参数 3. 主函数及运行主体 4. 画食物的函数 5. 画贪吃蛇的函数 6. 画网格的函数(非必选,觉得多余的可以忽略此项) 7. 操 ...

  9. 【无标题】学习贪吃蛇代码

    学习贪吃蛇代码

  10. 贪吃蛇的c语言程序码,C语言贪吃蛇代码下载_C语言贪吃蛇代码官方下载-太平洋下载中心...

    C语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的. C语言贪吃蛇代码原理: 产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的 ...

最新文章

  1. GIT之git常用配置和操作
  2. css3运动后留下轨迹尾巴_球磨机的工作原理及机内运动轨迹分析
  3. roobo机器人怎么唱歌_可爱的小伙伴 ROOBO布丁豆豆智能陪护机器人评测
  4. ECSTORE 关于FILTER条件所代表的含义
  5. Opportunity Sales org F4 value help data source
  6. html5点击切换选项卡,简单纯js实现点击切换TAB标签实例
  7. h5文字垂直居中_CSS实现居中的几种方式你都了解吗?
  8. 华为成功完成中国联通NFV三层解耦测试验证
  9. php界面框架luy_LazyPHP
  10. java xmpp openfire_java应用之openfire入门篇
  11. 乐源机器人优点跟缺点_桁架上下料机械手与上下料机器人一样吗?
  12. 用户关闭浏览器页器,弹出一个提示
  13. [月报] 掘金翻译计划月报 — 2018 年 11 月
  14. Qt 远程开关机 WakeOnLAN 编辑MagicPacket
  15. 一起学爬虫(Python) — 05
  16. unity商店的Standard Assets自带人物移动插件的bug修改
  17. html中的排名怎么写,html制作畅销书排行榜
  18. SCU-3968 Mowing the Lawn(DP+单调队列)
  19. 智能名片为什么使用场景都是微信小程序?哪些新玩法值得一试?
  20. 操作系统 存储管理实验报告

热门文章

  1. HTML与CSS面试题汇总
  2. java 已知两点坐标,与第三点距离,计算第三点的坐标。
  3. svn之回滚到指定版本
  4. CAPL学习之路-诊断函数
  5. android 原型图片,墨刀如何创建Android原型图?
  6. 嵌入式工具 | 嵌入式开发常用几款的代码编辑器
  7. 天空盒(SkyBox)的实现原理与细节
  8. Meshing Tutorials(网格划分教程)
  9. linux C语言基础学习总结
  10. c语言怎么写注释,C语言如何注释一段代码?