使用python写出一个贪吃蛇小游戏
时间: 2024-09-29 20:05:50 浏览: 30
用python写一个贪吃蛇小游戏
编写一个简单的Python贪吃蛇游戏需要一些基本的游戏设计知识以及对Python图形用户界面库如`pygame`的了解。以下是一个简化的示例,演示如何创建一个基础版的贪吃蛇游戏:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置窗口大小
window_width = 600
window_height = 400
screen = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("贪吃蛇")
# 定义颜色
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
# 蛇的位置和方向
snake_pos = [(window_width / 2, window_height / 2)]
snake_dir = [0] # 向右
# 食物位置
food_pos = [random.randrange(0, window_width), random.randrange(0, window_height)]
clock = pygame.time.Clock()
font = pygame.font.SysFont('Arial', 20)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and snake_dir != [1]:
snake_dir = [-1, 0]
elif keys[pygame.K_RIGHT] and snake_dir != [-1]:
snake_dir = [1, 0]
elif keys[pygame.K_UP] and snake_dir != [0]:
snake_dir = [0, -1]
elif keys[pygame.K_DOWN] and snake_dir != [0]:
snake_dir = [0, 1]
# 更新蛇的位置
new_head = [snake_pos[-1]: # 如果撞到身体,游戏结束
print("Game Over!")
break
else:
snake_pos.append(new_head)
# 移动食物
if snake_pos[0] == food_pos:
food_pos = [random.randrange(0, window_width), random.randrange(0, window_height)]
else:
snake_pos.pop(0)
screen.fill(black)
text = font.render("Score: " + str(len(snake_pos) - 1), True, white)
screen.blit(text, [10, 10])
for pos in snake_pos:
pygame.draw.rect(screen, red, [pos[0], pos[1], 10, 10])
pygame.draw.rect(screen, white, [food_pos[0], food_pos[1], 10, 10])
pygame.display.update()
clock.tick(10)
```
这个代码创建了一个基本的贪吃蛇环境,玩家通过控制箭头键移动蛇,吃到绿色方块得分。当蛇碰到自己或屏幕边缘时,游戏结束。
阅读全文