2048小游戏代码 开发板
时间: 2024-03-22 22:35:08 浏览: 22
2048是一款经典的数字合并游戏,玩家需要通过滑动方向键来合并相同数字的方块,最终得到一个数字为2048的方块。下面是一个简单的2048游戏的代码示例:
```python
import random
# 初始化游戏面板
def init_board():
board = [[0] * 4 for _ in range(4)]
add_random_tile(board)
add_random_tile(board)
return board
# 在空白位置随机添加一个数字方块
def add_random_tile(board):
empty_tiles = []
for i in range(4):
for j in range(4):
if board[i][j] == 0:
empty_tiles.append((i, j))
if empty_tiles:
i, j = random.choice(empty_tiles)
board[i][j] = random.choice([2, 4])
# 判断游戏是否结束
def is_game_over(board):
for i in range(4):
for j in range(4):
if board[i][j] == 0:
return False
if i > 0 and board[i][j] == board[i-1][j]:
return False
if i < 3 and board[i][j] == board[i+1][j]:
return False
if j > 0 and board[i][j] == board[i][j-1]:
return False
if j < 3 and board[i][j] == board[i][j+1]:
return False
return True
# 执行移动操作
def move(board, direction):
if direction == 'up':
board = transpose(board)
board = move_left(board)
board = transpose(board)
elif direction == 'down':
board = transpose(board)
board = move_right(board)
board = transpose(board)
elif direction == 'left':
board = move_left(board)
elif direction == 'right':
board = move_right(board)
add_random_tile(board)
return board
# 将矩阵转置
def transpose(board):
return [list(row) for row in zip(*board)]
# 向左移动
def move_left(board):
new_board = []
for row in board:
new_row = merge(row)
new_board.append(new_row + [0] * (4 - len(new_row)))
return new_board
# 向右移动
def move_right(board):
new_board = []
for row in board:
new_row = merge(row[::-1])[::-1]
new_board.append([0] * (4 - len(new_row)) + new_row)
return new_board
# 合并相同数字的方块
def merge(row):
new_row = []
i = 0
while i < len(row):
if i < len(row) - 1 and row[i] == row[i+1]:
new_row.append(row[i] * 2)
i += 2
else:
new_row.append(row[i])
i += 1
return new_row
# 打印游戏面板
def print_board(board):
for row in board:
print(' '.join(str(cell) for cell in row))
# 主函数,控制游戏流程
def main():
board = init_board()
print_board(board)
while not is_game_over(board):
direction = input("请输入移动方向(up/down/left/right): ")
board = move(board, direction)
print_board(board)
print("游戏结束!")
if __name__ == '__main__':
main()
```
这段代码是一个简单的2048游戏的实现,使用Python语言编写。在开发板上运行该代码,可以通过输入移动方向来进行游戏操作。游戏面板是一个4x4的矩阵,数字方块的合并规则是相邻且相同的数字方块可以合并成一个数字方块。游戏结束的条件是无法再进行有效的移动操作。