生成一段2048小游戏代码
时间: 2023-06-14 15:05:49 浏览: 47
以下是一个简单的2048小游戏代码,基于Python语言:
```python
import random
# 初始化游戏面板
board = [[0 for i in range(4)] for j in range(4)]
# 在随机位置生成2或4
def generate_number():
x = random.randint(0, 3)
y = random.randint(0, 3)
if board[x][y] == 0:
board[x][y] = random.choice([2, 4])
else:
generate_number()
# 打印游戏面板
def print_board():
for i in range(4):
for j in range(4):
print(board[i][j], end=" ")
print()
# 左移操作
def move_left():
for i in range(4):
for j in range(1, 4):
if board[i][j] != 0:
k = j
while k > 0 and board[i][k-1] == 0:
board[i][k-1] = board[i][k]
board[i][k] = 0
k -= 1
if k > 0 and board[i][k-1] == board[i][k]:
board[i][k-1] = board[i][k-1] * 2
board[i][k] = 0
# 右移操作
def move_right():
for i in range(4):
for j in range(2, -1, -1):
if board[i][j] != 0:
k = j
while k < 3 and board[i][k+1] == 0:
board[i][k+1] = board[i][k]
board[i][k] = 0
k += 1
if k < 3 and board[i][k+1] == board[i][k]:
board[i][k+1] = board[i][k+1] * 2
board[i][k] = 0
# 上移操作
def move_up():
for j in range(4):
for i in range(1, 4):
if board[i][j] != 0:
k = i
while k > 0 and board[k-1][j] == 0:
board[k-1][j] = board[k][j]
board[k][j] = 0
k -= 1
if k > 0 and board[k-1][j] == board[k][j]:
board[k-1][j] = board[k-1][j] * 2
board[k][j] = 0
# 下移操作
def move_down():
for j in range(4):
for i in range(2, -1, -1):
if board[i][j] != 0:
k = i
while k < 3 and board[k+1][j] == 0:
board[k+1][j] = board[k][j]
board[k][j] = 0
k += 1
if k < 3 and board[k+1][j] == board[k][j]:
board[k+1][j] = board[k+1][j] * 2
board[k][j] = 0
# 判断游戏是否结束
def is_game_over():
for i in range(4):
for j in range(4):
if board[i][j] == 0:
return False
if i < 3 and board[i][j] == board[i+1][j]:
return False
if j < 3 and board[i][j] == board[i][j+1]:
return False
return True
# 游戏主循环
while True:
generate_number()
print_board()
if is_game_over():
print("Game Over!")
break
direction = input("Please enter the direction: (w, a, s, d)")
if direction == "a":
move_left()
elif direction == "d":
move_right()
elif direction == "w":
move_up()
elif direction == "s":
move_down()
```
运行上述代码,即可开始游戏。在游戏中,使用a、s、d、w分别表示左、下、右、上四个方向的移动,游戏目标是在面板上获得2048的方块。