Python实现贪吃蛇--1.1.1

通过Pygame库初步学习后,作者动手实践创建了一个贪吃蛇小游戏,提醒读者项目可能存在Bug,适合用于练习和学习。
摘要由CSDN通过智能技术生成

最近完成了Pygame库的基础入门学习,写一个小游戏练练手。友情提示:练手项目有Bug,复制需谨慎

类型一:窗口可调

import pygame
import sys
import random

class Snack():
    def __init__(self):
        self.length = 3  # 蛇身的长度

        # bodys中的每个字典为蛇身每一节的位置
        self.bodys = [
            {
   "x": 50, "y": 50, "width": 10, "height": 10},
            {
   "x": 50, "y": 60, "width": 10, "height": 10},
            {
   "x": 50, "y": 70, "width": 10, "height": 10}
        ]

        self.direction = 0  # 蛇运动的方向

    # 打印蛇
    def show(self):
        for body in self.bodys:
            pygame.draw.rect(screen, (245, 135, 155), (body["x"], body["y"], body["width"], body["height"]), 0)

    # 增加蛇身,每次调用增加一节
    def addnode(self, node):
        self.bodys.insert(0, node)

    # 缩短蛇身,每次调用减少一节
    def delnode(self):
        self.bodys.pop()


# 生成随机食物
def creat_food(snack):
    # 食物的x,y坐标必须能被10整除,因为蛇身的每节的坐标是十的的倍数
    x = random.randint(0, 500) // 10 * 10
    y = random.randint(0, 300) // 10 * 10

    # 防止食物生成在蛇身上
    for body in snack.bodys:
        if x == body["x"] and y == body["y"]:
            return creat_food(snack)
    return x, y

score=0
BLACK = 0, 0, 0  # 设置颜色,黑色
snack = Snack()  # 创建蛇的实例
pygame.init()  # 初始化

size = width, height = 600, 400
screen = pygame.display.set_mode(size, pygame.RESIZABLE)  # 创建窗口,窗口大小可变
clock = pygame.time.Clock()  # 创建clock对象,控制游戏刷新速度
food = creat_food(snack)  # 创建食物
eat_flag = 0  # 设置食物是否被吃的标志,0表示食物未被吃


while True:
    clock.tick(3)  # 控制刷新次数
    for event in pygame.event.get():  # 获得键盘事件

        if event.type == pygame.QUIT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值