1. Flappy Bird 游戏
Flappy Bird 是一款飞行类小游戏,玩家通过不断点击屏幕使小鸟飞行,避开障碍物,尽可能地飞得远。游戏采用的是面向对象编程的方式,主要的类有 Bird,Pipe,Game 三个。
关键代码:
```python
class Pipe:
def __init__(self, x):
self.x = x
self.top = 0
self.bottom = 0
self.pipe_top = pygame.image.load('resources/images/pipe_top.png').convert_alpha()
self.pipe_bottom = pygame.image.load('resources/images/pipe_bottom.png').convert_alpha()
self.set_height()
# Set the height of the pipe
def set_height(self):
self.top = random.randint(100, int(SCREENHEIGHT * 0.6) - 100)
self.bottom = SCREENHEIGHT - self.top - PIPEGAPSIZE
def move(self):
self.x -= PIPE_VEL
def draw(self):
screen.blit(self.pipe_top, (self.x, self.top - PIPEGAPSIZE))
screen.blit(self.pipe_bottom, (self.x, self.top + PIPEGAPSIZE))
```
2. 2048 游戏
2048 是一款数字类小游戏,玩家通过上下左右滑动方块,使得相同数字的方块合并,直至合成 2048 数字的方块。游戏逻辑是十分清晰的,主要的类有 Game,Tile,Board 三个。
关键代码:
```python
class Tile:
def __init__(self, pos, val):
self.pos = pos
self.val = val
class Board:
def __init__(self, size):
self.size = size
self.cells = [[None for y in range(size)] for x in range(size)]
self.new_tile()
# Add a new tile to the board
def new_tile(self):
while True:
x = random.randint(0, self.size - 1)
y = random.randint(0, self.size - 1)
if self.cells[x][y] is None:
val = 2 if random.random() < 0.9 else 4
self.cells[x][y] = Tile((x, y), val)
break
```
3. Snake 游戏
Snake 是一款贪吃蛇类小游戏,玩家通过控制一条蛇的移动,不断吃掉食物,尽可能地让蛇变得更长。游戏使用了基础的图形绘制和游戏循环的知识,主要的类有 Snake,Food,Game 三个。
关键代码:
```python
class Food:
def __init__(self, game):
self.game = game
self.x, self.y = (0, 0)
self.color = (255, 0, 0)
self.randomize_position()
def draw_food(self):
cell_size = self.game.cell_size
x = self.x * cell_size
y = self.y * cell_size
food_rect = pygame.Rect(x, y, cell_size, cell_size)
pygame.draw.rect(self.game.screen, self.color, food_rect)
```
总之,以上这三款小游戏对于小白来说都是比较友好的,代码也不算太长,对于初学者来说也可以作为一个参考。