繼續我的自我學習,並製作了一個基本的掃雷遊戲...單擊以揭示該盒子周圍有多少個“礦山”或“礦山”的紅色。右鍵單擊以將您認為是礦山的位置,正方形變成藍色...出於某種原因,右鍵單擊可能有點氣質,並以常規點擊註冊。誰能告訴我這是筆記本電腦鼠標還是代碼的問題?如果有一種簡單的方法來更改代碼以更改網格的大小和“礦山”的數量,那就太好了!導入tkinter導入隨機gameover = false score = 0 Squarestoclear = 0
def play_minesweeper():create_bombfield(bombfield)window = tkinter.tk()layout_window(window)window.mainloop()
bombfield = [] def create_bombfield(bombfield): global squaresToClear for row in range(0,10): rowList = [] for column in range(0,10): if random.randint(1,100) <20: rowList.append(1) else: rowList.append(0) squaresToClear = squaresToClear + 1 bombfield.append(rowList) #printfield(bombfield) def printfield(Bombfield):對於Bombfield的Rowlist:Print(Rowlist)
def layout_window(窗口):對於屆時,枚舉(bombfield)中的rowlist:對於columnnumber,columnentry in Enumerate(rowlist)中的columnentry(rowlant):如果Randy.randint(1,100)<35:square = tkinter.tkinter.label.label.label.label(window = window = text,text =“,bg =”,bg =“ tkinter.label(窗口,text =“”,bg =“ seagreen”)else:square = tkinter.label(window,text,text =“”,bg =“ green”)square.grid(row = rownumber,columnnumber,columnnumber) int(square.grid_info()[“ row”])列= int(square.grid_info()[“列”])square.config(bg =“ blue”)
def on_click(事件):全局分數全局squarestoclear square = event.widget row = int(square.grid_info()[“ row”])列= int = int(square.grid_info()打印(“遊戲結束!您擊中炸彈。”)print(“您的得分是:”,得分) 0: if bombfield[row][column-1] == 1: totalBombs = totalBombs + 1 if column < 9: if bombfield[row][column+1] == 1: totalBombs = totalBombs + 1 if row > 0 and column > 0: if bombfield[row-1][column-1] == 1: totalBombs = totalBombs + 1 if row < 9 and column > 0: if bombfield[row+1][column-1] == 1: totalBombs = totalBombs + 1 if row > 0 and column < 9: if bombfield[row-1][column+1] == 1: totalBombs = totalBombs + 1 if row < 9 and column < 9: if bombfield[row+1][column+1] == 1: totalBombs = totalBombs + 1 square.config(text = " " + str(totalBombs) + " ") squaresToClear = squaresToClear - 1分數=得分 + 1如果SquareStoclear == 0:GameOver = true Print(“做得好!您找到了所有安全的正方形!”)print(“您的得分是:”,得分)play_minesweeper()