本文使用创作助手。
可以用Tkinter来实现扫雷游戏。下面是一个简单的示例代码,用于展示如何通过Tkinter创建一个基本的扫雷游戏。
import tkinter as tk
import random
# 创建主窗口
window = tk.Tk()
window.title("Minesweeper")
# 游戏参数
num_rows = 10
num_cols = 10
num_bombs = 10
# 用于存储雷区的信息
board = [[0 for _ in range(num_cols)] for _ in range(num_rows)]
revealed = [[False for _ in range(num_cols)] for _ in range(num_rows)]
# 随机生成雷区
bombs = random.sample(range(num_rows * num_cols), num_bombs)
for bomb in bombs:
row = bomb // num_cols
col = bomb % num_cols
board[row][col] = -1
# 绘制雷区
buttons = [[None for _ in range(num_cols)] for _ in range(num_rows)]
for row in range(num_rows):
for col in range(num_cols):
button = tk.Button(window, width=2, relief="raised")
button.grid(row=row, column=col)
buttons[row][col] = button
# 点击按钮的处理函数
def button_click(row, col):
if revealed[row][col]:
return
revealed[row][col] = True
if board[row][col] == -1:
buttons[row][col].configure(text="*", bg="red")
else:
count = 0
for r in range(max(0, row-1), min(row+2, num_rows)):
for c in range(max(0, col-1), min(col+2, num_cols)):
if board[r][c] == -1:
count += 1
buttons[row][col].configure(text=str(count))
buttons[row][col].configure(relief="sunken")
if count == 0:
for r in range(max(0, row-1), min(row+2, num_rows)):
for c in range(max(0, col-1), min(col+2, num_cols)):
button_click(r, c)
# 绑定按钮的点击事件
for row in range(num_rows):
for col in range(num_cols):
buttons[row][col].configure(command=lambda r=row, c=col: button_click(r, c))
# 运行主循环
window.mainloop()
这段代码创建了一个10x10的扫雷游戏窗口,并使用按钮来表示雷区的每个格子。玩家可以通过点击这些按钮来探索雷区并尝试找出所有的地雷。按钮的文本表示周围格子的地雷数量,如果点击到地雷,则按钮文本显示为"*",按钮背景颜色为红色。
这个示例只是一个基本的扫雷游戏,你可以根据自己的需求进行扩展和美化。