科学教育

搜索
查看: 532|回复: 1
打印 上一主题 下一主题

周未贪吃蛇游戏代码

[复制链接]

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
跳转到指定楼层
楼主
发表于 2025-9-30 15:25:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我生成一个贪吃蛇游戏的代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 15:26:01 | 只看该作者
当然可以!下面是一个简单的贪吃蛇游戏代码示例:

  1. import pygame
  2. import random

  3. pygame.init()

  4. # 设置游戏窗口大小和标题
  5. window_width = 800
  6. window_height = 600
  7. window = pygame.display.set_mode((window_width, window_height))
  8. pygame.display.set_caption('贪吃蛇游戏')

  9. # 定义颜色
  10. black = (0, 0, 0)
  11. white = (255, 255, 255)
  12. green = (0, 255, 0)

  13. # 设置蛇和食物的初始位置
  14. snake_position = [100, 50]
  15. snake_body = [[100, 50], [90, 50], [80, 50]]
  16. food_position = [random.randrange(1, window_width//10) * 10, random.randrange(1, window_height//10) * 10]

  17. # 设置初始方向
  18. direction = 'RIGHT'
  19. change_to = direction

  20. # 定义游戏结束函数
  21. def game_over():
  22.     font = pygame.font.SysFont('None', 48)
  23.     text = font.render('游戏结束!', True, white)
  24.     window.blit(text, [window_width/3, window_height/3])
  25.     pygame.display.flip()
  26.     pygame.time.wait(2000)
  27.     pygame.quit()
  28.     quit()

  29. # 游戏主循环
  30. while True:
  31.     for event in pygame.event.get():
  32.         if event.type == pygame.QUIT:
  33.             game_over()
  34.         
  35.         elif event.type == pygame.KEYDOWN:
  36.             if event.key == pygame.K_UP:
  37.                 change_to = 'UP'
  38.             if event.key == pygame.K_DOWN:
  39.                 change_to = 'DOWN'
  40.             if event.key == pygame.K_LEFT:
  41.                 change_to = 'LEFT'
  42.             if event.key == pygame.K_RIGHT:
  43.                 change_to = 'RIGHT'

  44.     if change_to == 'UP' and direction != 'DOWN':
  45.         direction = 'UP'
  46.     if change_to == 'DOWN' and direction != 'UP':
  47.         direction = 'DOWN'
  48.     if change_to == 'LEFT' and direction != 'RIGHT':
  49.         direction = 'LEFT'
  50.     if change_to == 'RIGHT' and direction != 'LEFT':
  51.         direction = 'RIGHT'

  52.     if direction == 'UP':
  53.         snake_position[1] -= 10
  54.     if direction == 'DOWN':
  55.         snake_position[1] += 10
  56.     if direction == 'LEFT':
  57.         snake_position[0] -= 10
  58.     if direction == 'RIGHT':
  59.         snake_position[0] += 10

  60.     snake_body.insert(0, list(snake_position))
  61.     if snake_position == food_position:
  62.         food_position = [random.randrange(1, window_width//10) * 10, random.randrange(1, window_height//10) * 10]
  63.     else:
  64.         snake_body.pop()

  65.     window.fill(black)
  66.     for pos in snake_body:
  67.         pygame.draw.rect(window, green, pygame.Rect(pos[0], pos[1], 10, 10))
  68.     pygame.draw.rect(window, white, pygame.Rect(food_position[0], food_position[1], 10, 10))

  69.     if snake_position[0] < 0 or snake_position[0] > window_width-10:
  70.         game_over()
  71.     if snake_position[1] < 0 or snake_position[1] > window_height-10:
  72.         game_over()
  73.     for block in snake_body[1:]:
  74.         if snake_position == block:
  75.             game_over()

  76.     pygame.display.update()
复制代码


希望这个示例能够帮助你开始编写自己的贪吃蛇游戏!如果有任何问题,欢迎随时向我提问哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表