私の自己学習を続けて、鉱山の基本的なゲームを作りました...クリックして、「私の鉱山」のためにその箱または赤の周りにある「鉱山」がいくつあるかを明らかにします。右クリックして、鉱山があると思う場所にフラグを立て、正方形が青くなると考えています...何らかの理由で、右クリックは少し気まぐれで、定期的なクリックとして登録できます。これがラップトップマウスかコードの問題であるかどうかを教えてもらえますか?コードを変更してグリッドのサイズと「鉱山」の数を変更できるようにする簡単な方法がある場合は、それが素晴らしいことです!インポートTKINTERインポートランダムゲームオーバー= falseスコア= 0 squarestoclear = 0
def play_minesweeper():create_bombfield(bombfield)window = tkinter.tk()layout_window(window)window.mainloop()
bombfield = [] def create_bombfield(bombfield):range in range(0,10):rowlist = []範囲の列のグローバルなsquareStoclear(0,10):if random.randint(1,100)<20:rowlist.append(1)elslist.append(0)squarestoclear + 1 bomb leastelecleale + 1 bombfield(bombfield(bombfield) Printfield(Bombfield):BombfieldのRowlist:Print(Rowlist)
def layout_window(window):rownumber、enumerate(bombfield):columnnumber、columnentry in Enumerate(rowlist):if random.randint(1,100)<35:square = tkinter.label(window、text = ""、bg = "darkgreen")elif random.randint(1,100) text = ""、bg = "seagreen")else:square = tkinter.label(windo、text = ""、bg = "green")squort.grid(row = rownumber、column = column number)square.bind( ""、on_click)square.bind( ""、on_rightclick)def = def = widget row = event.widget row int(square.grid_info()["row"])column = int(square.grid_info()["colled"])square.config(bg = "blue"))
def on_click(event):グローバルスコアグローバルゲームオーバーグローバルSquarestoclear square = event.widget row = int(square.grid_info()["row"])column = int(square.grid_info( "column"]) print( "game over!hit a bomb a hit a bomb。")print( "your score was:"、score)elif currenttext == "":square.config(bg = "brown")totalbombs = 0 if row + 1] [column] == 1:totalbombs = totalbombs + 1 if row> 0:column 1:column1:columm 0:bombfield [row] [column-1] == 1:totalbombs = totalbombs + 1 if if if column <9:if bombfield [列 + 1] == 1:totalbombs = totalbombs + 1 row> 0および列> 0:bombfield [row-1] [column-1] == 1:totalbombs = totalbombs + 1 if [colummbs + 1] TotalBombs = TotalBombs + 1 If row> 0および列<9:If bombfield [row -1] [column + 1] == 1:totalbombs = totalbombs + 1 row <9およびcolumn <9:if bomb [列 + 1] == 1:1:totalbombs = totalbombs + 1 square.config(total str(total bombs)sprectocred "sprest +") 1スコア=スコア + 1 squarestoclear == 0:gameover = true print( "よくやった!あなたはすべての安全な正方形を見つけました!」)印刷(あなたのスコアは: "、スコア)play_minesweeper()