使用Python程序设计一个小游戏
时间: 2023-07-20 09:17:06 浏览: 35
好的,我可以为您提供一个简单的Python游戏设计示例,这个游戏名字叫做“2048小游戏”。以下是代码:
```python
import random
# 定义游戏棋盘
board = [[0]*4 for i in range(4)]
# 随机生成两个数字
def generate_number():
x = random.randint(0, 3)
y = random.randint(0, 3)
while board[x][y] != 0:
x = random.randint(0, 3)
y = random.randint(0, 3)
board[x][y] = 2 if random.random() < 0.9 else 4
# 在控制台打印游戏棋盘
def print_board():
for row in board:
print(row)
# 判断游戏是否结束
def is_game_over():
for row in board:
if 0 in row:
return False
for i in range(3):
if row[i] == row[i+1]:
return False
for j in range(4):
for i in range(3):
if board[i][j] == board[i+1][j]:
return False
return True
# 合并相邻两个相同的数字
def merge():
for row in board:
for i in range(3):
if row[i] == row[i+1] and row[i] != 0:
row[i] *= 2
row[i+1] = 0
# 向左移动
def move_left():
merge()
for row in board:
new_row = [i for i in row if i != 0]
new_row += [0] * (4 - len(new_row))
row[:] = new_row
# 向右移动
def move_right():
for row in board:
row.reverse()
move_left()
for row in board:
row.reverse()
# 向上移动
def move_up():
transpose()
move_left()
transpose()
# 向下移动
def move_down():
transpose()
move_right()
transpose()
# 转置棋盘
def transpose():
for i in range(4):
for j in range(i, 4):
board[i][j], board[j][i] = board[j][i], board[i][j]
# 开始游戏
def start_game():
print("欢迎来到2048小游戏!")
generate_number()
generate_number()
print_board()
while not is_game_over():
direction = input("请输入移动方向(a:左,d:右,w:上,s:下):")
if direction == "a":
move_left()
elif direction == "d":
move_right()
elif direction == "w":
move_up()
elif direction == "s":
move_down()
else:
print("无效的移动方向,请重新输入。")
continue
generate_number()
print_board()
print("游戏结束!")
# 启动游戏
start_game()
```
该游戏是一个数字合并类的小游戏,游戏棋盘是一个4x4的矩阵,每个格子上都有一个数字,开始时有两个数字为2的格子,玩家可以通过移动数字来合并相邻的相同数字,目标是在棋盘上得到一个数字为2048的格子。玩家可以通过键盘输入字母来控制数字的移动方向。在玩家每次移动数字后,程序会在空白的格子上生成一个数字为2或4的格子,每次生成的数字是随机的。游戏结束的条件是棋盘上没有空白格子,且相邻的数字不能再合并。在游戏结束后,程序会告诉玩家游戏结束。