来源:小编 更新:2025-04-05 07:39:00
用手机看
编程是不是让你觉得有点枯燥乏味呢?别急,今天我要给你带来点不一样的乐趣——用Python编写简单小游戏!而且,最神奇的是,这些小游戏的代码竟然不超过100行!是不是很心动?那就跟我一起,开启这段编程与乐趣的奇妙之旅吧!
Python,作为一门简单易学的编程语言,深受广大编程爱好者的喜爱。而Python小游戏,更是让编程变得更加生动有趣。通过编写小游戏,我们可以将理论知识与实践相结合,不仅能够提高编程技能,还能在游戏中找到乐趣。
要开发Python小游戏,我们通常会用到Pygame这个库。Pygame是一个开源的Python模块集,它提供了丰富的功能,可以帮助我们轻松地创建2D游戏。而且,Pygame的安装和使用都非常简单,非常适合初学者。
下面,我将为你展示几个简单有趣的Python小游戏,每个游戏的代码都不超过100行,让你轻松上手!
贪吃蛇游戏相信大家都不陌生,下面是一个简易贪吃蛇游戏的代码示例:
```python
import pygame
import random
初始化pygame
pygame.init()
设置游戏窗口大小
screen_width = 600
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))
设置游戏颜色
black = (0, 0, 0)
white = (255, 255, 255)
设置游戏速度
clock = pygame.time.Clock()
speed = 10
设置贪吃蛇初始位置和大小
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
设置食物初始位置
food_pos = [random.randrange(1, (screen_width//10)) 10,
random.randrange(1, (screen_height//10)) 10]
food_spawn = True
设置游戏结束标志
game_over = False
设置得分
score = 0
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_UP:
snake_pos[1] -= 10
elif event.key == pygame.K_DOWN:
snake_pos[1] += 10
elif event.key == pygame.K_LEFT:
snake_pos[0] -= 10
elif event.key == pygame.K_RIGHT:
snake_pos[0] += 10
检查贪吃蛇是否撞墙
if snake_pos[0] >= screen_width or snake_pos[0] < 0 or snake_pos[1] >= screen_height or snake_pos[1] < 0:
game_over = True
检查贪吃蛇是否撞到自己
for block in snake_body[1:]:
if snake_pos == block:
game_over = True
检查贪吃蛇是否吃到食物
if snake_pos == food_pos:
score += 1
food_spawn = False
while not food_spawn:
food_pos = [random.randrange(1, (screen_width//10)) 10,
random.randrange(1, (screen_height//10)) 10]
food_spawn = True
for block in snake_body:
if food_pos == block:
food_spawn = False
更新贪吃蛇身体
snake_body.insert(0, list(snake_pos))
删除贪吃蛇尾部
if len(snake_body) > 5:
del snake_body[-1]
绘制游戏界面
screen.fill(black)
for block in snake_body:
pygame.draw.rect(screen, white, pygame.Rect(block[0], block[1], 10, 10))
pygame.draw.rect(screen, white, pygame.Rect(food_pos[0], food_pos[1], 10, 10))
显示得分
font = pygame.font.SysFont(None, 35)
score_text = font.render(\Score: \ + str(score), True, white)
screen.blit(score_text, [0, 0])
更新游戏界面
pygame.display.flip()
控制游戏速度
clock.tick(speed)
游戏结束
if game_over:
font = pygame.font.SysFont(None, 50)
game_over_text = font.render(\Game Over\, True, white)
screen.blit(game_over_text, [screen_width//2 - 100, screen_height//2])
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT