tkinter库_扫雷游戏

#运用了tkinter库——自己做的案例(很菜)
#但是也算是最近的收获吧
#18个控件加上三种定位方式
#今天学了2个控件和2种方式,真的神奇
#等我全学完了会把所有笔记放上面,加油
from tkinter import N, S, E, W, NE, NW, SE, SW,CENTER,NSEW
import time
import tkinter as tk
import random
root = tk.Tk()
root.title('扫雷游戏')



def command1():  # 定义踩中后的变化
    k.configure(text='游戏结束', bg='red', bd=5
                , highlightbackground='white', fg='black', state='disabled')

    for fastener in buttons:
        fastener.configure(state='disabled')



# 创建一个列表来保存按钮
buttons = []
# 循环创建9个按钮
for i in range(9):

    # 创建按钮
    button= tk.Button(root, width=10, height=2, bg='white',
                       bd=5, highlightbackground='black')
    # 将按钮添加到列表中
    buttons.append(button)
#定义随机选择1个地雷
k=random.choice(buttons)
k.configure(command=command1)




# 使用 grid 布局管理器放置按钮
for i, button in enumerate(buttons):
       #enumerate 是 Python 的内置函数,
       # 它可以在遍历序列的同时获取元素的索引和值。
       # 这对于需要访问序列中的元素及其位置的情况非常有用
    button.grid(row=i // 3, column=i % 3, sticky=tk.NSEW)
    # 整数除法 (//):返回两个数相除的整数部分。(向下整除)
    # 取模运算 (%):返回两个数相除的余数

# 配置列和行的权重,使它们能够扩展
for i in range(3):
    root.grid_columnconfigure(i, weight=1)
    root.grid_rowconfigure(i, weight=1)

root.mainloop()

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python的tkinter来创建一个扫雷游戏。这个游戏使用了tkinter的标准模块,并且包含了一些算法和类的继承。你可以在这个链接中找到一个详细的教程和示例代码:https://blog.csdn.net/weixin_48448842/article/details/117401056。 以下是一个简单的示例代码,展示了如何使用tkinter创建一个扫雷游戏: ```python import tkinter as tk import random class MinesweeperGame: def __init__(self, rows, cols, num_mines): self.rows = rows self.cols = cols self.num_mines = num_mines self.board = [[0] * cols for _ in range(rows)] self.mines = set() self.create_mines() self.create_board() def create_mines(self): while len(self.mines) < self.num_mines: row = random.randint(0, self.rows - 1) col = random.randint(0, self.cols - 1) self.mines.add((row, col)) def create_board(self): self.root = tk.Tk() self.buttons = [[None] * self.cols for _ in range(self.rows)] for row in range(self.rows): for col in range(self.cols): button = tk.Button(self.root, width=2, height=1) button.grid(row=row, column=col) button.bind('<Button-1>', lambda event, row=row, col=col: self.left_click(row, col)) button.bind('<Button-3>', lambda event, row=row, col=col: self.right_click(row, col)) self.buttons[row][col] = button def left_click(self, row, col): if (row, col) in self.mines: self.buttons[row][col].config(text='X') else: self.buttons[row][col].config(text=' ') def right_click(self, row, col): self.buttons[row][col].config(text='?') def run(self): self.root.mainloop() game = MinesweeperGame(10, 10, 10) game.run() ```***游戏窗口中的按钮可以通过左键点击来揭开方块,右键点击来标记方块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值