超简单的python贪吃蛇小游戏

首先用pip安装前置pygame(这个自行安装)

然后就是调用库,代码都有注释,红的是蛇,白的是分数,用小箭头控制方向

#导入运行库
import pygame
import random

# 初始化游戏
pygame.init()

# 定义游戏界面尺寸
screen_width = 480
screen_height = 480
# 用户登录机制
MAX_LOGIN_ATTEMPTS = 3
login_attempts = 0
logged_in = False

while not logged_in:
    username = input("请输入用户名:")
    password = input("请输入密码:")

    if username == "admin" and password == "admin":
        logged_in = True
    else:
        login_attempts += 1
        if login_attempts >= MAX_LOGIN_ATTEMPTS:
            print("登录次数超过限制,程序已关闭。")
            pygame.quit()
            exit()

# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)

# 创建游戏窗口
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('贪吃蛇游戏')

# 定义蛇的初始位置和大小
snake_size = 20
snake_x = screen_width // 2
snake_y = screen_height // 2

# 定义蛇的移动速度
snake_speed = 10
snake_x_change = 0
snake_y_change = 0

# 定义食物的初始位置
food_size = 20
food_x = round(random.randrange(0, screen_width - food_size) / 20.0) * 20.0
food_y = round(random.randrange(0, screen_height - food_size) / 20.0) * 20.0

# 定义分数
score = 0

# 定义蛇的身体
snake_body = []
snake_length = 1

clock = pygame.time.Clock()
game_over = False

# 游戏主循环
while not game_over:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT and snake_x_change != snake_size:
                snake_x_change = -snake_size
                snake_y_change = 0
            elif event.key == pygame.K_RIGHT and snake_x_change != -snake_size:
                snake_x_change = snake_size
                snake_y_change = 0
            elif event.key == pygame.K_UP and snake_y_change != snake_size:
                snake_y_change = -snake_size
                snake_x_change = 0
            elif event.key == pygame.K_DOWN and snake_y_change != -snake_size:
                snake_y_change = snake_size
                snake_x_change = 0

    # 更新蛇的位置
    snake_x += snake_x_change
    snake_y += snake_y_change

    # 边界判断
    if snake_x >= screen_width or snake_x < 0 or snake_y >= screen_height or snake_y < 0:
        game_over = True

    # 绘制游戏窗口背景
    screen.fill(black)

    # 绘制食物
    pygame.draw.rect(screen, red, [food_x, food_y, food_size, food_size])

    # 绘制蛇的身体
    snake_head = []
    snake_head.append(snake_x)
    snake_head.append(snake_y)
    snake_body.append(snake_head)
    if len(snake_body) > snake_length:
        del snake_body[0]

    # 检测是否吃到食物
    for segment in snake_body[:-1]:
        if segment == snake_head:
            game_over = True

    for x in snake_body:
        pygame.draw.rect(screen, white, [x[0], x[1], snake_size, snake_size])

    # 更新分数
    if snake_x == food_x and snake_y == food_y:
        food_x = round(random.randrange(0, screen_width - food_size) / 20.0) * 20.0
        food_y = round(random.randrange(0, screen_height - food_size) / 20.0) * 20.0
        snake_length += 1

    # 更新屏幕
    pygame.display.update()

    # 控制游戏速度
    clock.tick(snake_speed)
    #游戏得分    

   

# 游戏结束,退出pygame
pygame.quit()

做了一个用户登录界面,这应该都看的懂吧,账户密码都为admin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 好的,以下是一个简单版的Python贪吃蛇小游戏代码: ```python import pygame import random # 初始化pygame pygame.init() # 游戏区域大小 width = 800 height = 600 # 创建游戏窗口 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("贪吃蛇") # 定义颜色 BLACK = (0, 0, 0) WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) # 蛇的初始位置,长度和速度 snake_pos = [(width / 2, height / 2)] snake_len = 1 snake_speed = 10 # 食物的初始位置和大小 food_pos = (random.randint(0, width), random.randint(0, height)) food_size = 10 # 蛇移动的方向 direction = "right" # 游戏循环 game_over = False while not game_over: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT and direction != "right": direction = "left" elif event.key == pygame.K_RIGHT and direction != "left": direction = "right" elif event.key == pygame.K_UP and direction != "down": direction = "up" elif event.key == pygame.K_DOWN and direction != "up": direction = "down" # 移动蛇的位置 if direction == "left": snake_pos.insert(0, (snake_pos[0][0] - snake_speed, snake_pos[0][1])) elif direction == "right": snake_pos.insert(0, (snake_pos[0][0] + snake_speed, snake_pos[0][1])) elif direction == "up": snake_pos.insert(0, (snake_pos[0][0], snake_pos[0][1] - snake_speed)) elif direction == "down": snake_pos.insert(0, (snake_pos[0][0], snake_pos[0][1] + snake_speed)) # 判断是否吃到食物 if snake_pos[0][0] < food_pos[0] + food_size and snake_pos[0][0] > food_pos[0] - food_size and \ snake_pos[0][1] < food_pos[1] + food_size and snake_pos[0][1] > food_pos[1] - food_size: food_pos = (random.randint(0, width), random.randint(0, height)) snake_len += 1 # 删除蛇尾 if len(snake_pos) > snake_len: snake_pos.pop() # 绘制游戏区域 screen.fill(BLACK) # 绘制食物 pygame.draw.circle(screen, GREEN, food_pos, food_size) # 绘制蛇 for pos in snake_pos: pygame.draw.rect(screen, WHITE, (pos[0], pos[1], snake_speed, snake_speed)) # 判断是否游戏结束 if snake_pos[0][0] < 0 or snake_pos[0][0] > width or snake_pos[0][1] < 0 or snake_pos[0][1] > height: game_over = True for pos in snake_pos[1:]: if pos == snake_pos[0]: game_over = True # 更新屏幕 pygame.display.update() # 退出pygame pygame.quit() ``` 运行代码后,会弹出一个游戏窗口,按方向键控制蛇的移动,尽可能地吃到食物并防止撞墙或咬到自己,直到游戏结束。 ### 回答2: 贪吃蛇是一款非常经典的游戏,而Python是一种功能强大的编程语言。在Python中,我们可以利用各种图形库创建一个贪吃蛇小游戏。 首先,我们需要导入适当的图形库,例如Pygame。然后,我们可以创建一个窗口来显示游戏界面,并设置好窗口的大小和标题。 接下来,我们需要定义贪吃蛇的初始位置、大小和颜色。可以使用列表或数组来表示蛇的身体,每个元素代表一个身体部分的位置。初始时蛇的长度较短,可以在游戏界面的某个位置生成。 然后,我们需要定义蛇的移动规则。可以使用键盘事件来控制蛇的移动方向,例如“上”、“下”、“左”、“右”键对应蛇的移动方向。蛇每次移动一步,身体的每个部分都会跟随蛇头的移动方向。 与此同时,我们还需要定义食物的位置和生成规则。可以在游戏界面中的一个随机位置生成食物。当蛇头与食物重合时,蛇的长度会增加,并在新的位置生成食物。 另外,我们还需要考虑游戏的结束条件。例如,当蛇头碰到游戏界面的边缘或自己的身体时,游戏结束。此时,我们可以显示游戏结束的界面,并显示玩家的得分。 最后,我们可以通过循环来不断更新游戏界面,使蛇实时移动。同时,还需要监听键盘事件,以便控制蛇的移动方向。每次循环时,都需要检测蛇头与食物的碰撞,并更新蛇的位置和长度。 总的来说,通过利用Python编写贪吃蛇小游戏可以帮助我们学习和巩固编程知识,同时也能够体验到游戏开发的乐趣。 ### 回答3: Python贪吃蛇小游戏是一种经典的游戏模拟,通过编程实现了贪吃蛇的移动、成长、吃食物等操作。 在这个游戏中,玩家控制一条蛇移动,目标是吃掉尽可能多的食物,使蛇身体变长。蛇的身体由一系列方块组成,初始时只有一个小方块作为头部。 通过键盘的上下左右键,玩家可以控制蛇的移动方向。蛇头每次移动一个方块的距离,身体紧随其后。当蛇头碰到墙壁或者碰到自己的身体时,游戏结束。 游戏界面通常使用ASCII字符进行表示,墙壁用“#”表示,食物用“@”表示,蛇头用“O”表示,蛇身用“#”表示。当蛇头和食物重合时,蛇的长度增加,并且在蛇尾生成一个新的食物。 在这个游戏中,有一些需要考虑的逻辑,例如蛇不能向相反的方向移动,即不能直接掉头;蛇头和食物的坐标要实时更新,以便判断是否吃到食物;蛇的身体长度的增加要与移动一致,不能出现断节的情况。 通过编写代码,我们可以使用循环来实现游戏的持续进行,每次循环根据用户操作更新蛇的坐标,并判断蛇头是否与墙壁或者自己的身体相碰。同时,当蛇头与食物重合时,需要更新蛇的长度和生成新的食物。 总之,Python贪吃蛇小游戏是一种通过编程实现的经典游戏模拟,它不仅考验了玩家的反应能力,还能锻炼编程逻辑和思维能力。让我们一起来挑战这个有趣的游戏吧!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IamATM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值