Продолжая свое самоуправление и сделала основную игру в MineSweeper ... нажмите, чтобы показать несколько «шахт» вокруг этой коробки или красного для «шахты». Щелкните правой кнопкой мыши, чтобы отметить, где вы думаете, шахта, и квадрат становится синим ... по какой -то причине щелчок правой кнопкой мыши может быть немного темпераментным и зарегистрироваться как обычный щелчок. Кто -нибудь может сказать мне, является ли это мышью для ноутбука или проблема с кодом? Если есть простой способ изменить код, чтобы иметь возможность изменить размер сетки и количество «шахт», это было бы здорово знать! Импорт Tkinter Import random Gameover = false Bocd = 0 Squarestoclear = 0
def play_minesweeper (): create_bombfield (Bombfield) window = tkinter.tk () layout_window (window) window.mainloop ()
Bombfield = [] def create_bombfield (Bombfield): Global Squarestoclear для строки в диапазоне (0,10): Rowlist = [] для столбца в диапазоне (0,10): если случайный. Для Rowlist в бомбфилде: Print (Rowlist)
def Mayout_window (Window): для Rownumber, Rowlist in Enumerate (Bombfield): для ColumnNumber, ColumnEntry In Enumerate (Rowlist): если случайный. ", bg =" seagreen ") Else: square = tkinter.label (window, text =" ", bg =" green ") square.grid (row = rownumber, column number) square.bind (" ", on_click) square.bind (" ", on_rightclick) def on_rightclick (event): square. int (square.grid_info () ["row"]) column = int (square.grid_info () ["column"]) square.config (bg = "blue")
def on_click (event): глобальная оценка Global Gameover Global Squarestoclear Square = event.widget row = int (square.grid_info () ["row"]) column = int (square.grid_info () ["column"]) currentText = square.cget ("text") if gameover == false: if bombfield [row] = = gameover = vir elque. Print («Игра над! Вы попадаете в бомбу».) Если Bombfield [row] [Column-1] == 1: totalbombs = totalbombs + 1, если столбец <9: если бомба залет [row] [Column + 1] == 1: totalbombs = totalbombs + 1, если строка> 0 и столбец> 0: если бомб бомб [строка-1] [Column-1] == 1: totalbombs = totalbombs + 1, если колонка <9 и столбец> 0: if Bompfield [wost + = 1: 1: 1: 1. TotalBombs = TotalBombs + 1, если строка> 0 и столбец <9: если бомба полета [row -1] [Column + 1] == 1: TotalBombs = TotalBombs + 1, если ряд <9 и столбец <9: if Bompfield [row + 1] [Column + 1] == 1: totalbombs = totalbombs + 1 square.config (Totalbombess straletoscelectoscelectoscelectoscelectOsc -«TotalBombessoscososcelectOsc» -«totalBombessosceStosc». 1 оценка = оценка + 1, если Squarestoclear == 0: Gameover = True Print ("Хорошо сделано! Вы нашли все безопасные квадраты! »)