Melanjutkan dengan pembelajaran diri saya dan membuat permainan dasar Minesweeper ... klik untuk mengungkapkan sejumlah 'tambang' di sekitar kotak itu atau merah untuk 'tambang'. Klik kanan untuk menandai di mana menurut Anda tambang dan kuadrat berubah menjadi biru ... untuk beberapa alasan klik kanan bisa sedikit temperamental dan mendaftar sebagai klik biasa. Adakah yang bisa memberi tahu saya jika ini mouse laptop atau masalah dengan kode? Jika ada cara mudah untuk mengubah kode untuk dapat mengubah ukuran kisi dan jumlah 'tambang' juga, itu akan bagus untuk diketahui! Impor Tkinter Impor Random Gameover = FALSE SCORE = 0 SquareStoclear = 0
def play_minesweeper (): create_bombfield (bombfield) window = tkinter.tk () tata letak_window (window) window.mainloop ()
Bombfield = [] def create_bombfield (Bombfield): Global SquareStoclear untuk baris dalam kisaran (0,10): rowlist = [] untuk kolom dalam kisaran (0,10): jika acak. Printfield (Bombfield): Untuk Rowlist di Bombfield: Print (Rowlist)
Def layout_window (jendela): untuk Rownumber, Rowlist in Enumerate (Bombfield): untuk ColumnNumber, ColumnEntry in Enumerate (RowList): jika acak.randint (1.100) <35: square = tkinter.label (window, text = "", bg = "darkgreen") elif random. text = "", bg = "seagreen") else: square = tkinter.label (window, text = "", bg = "green") square.grid (row = rownumber, column = columnNumber) square.bind ("", on_click) square.bind ("", on_rightklick) def on_rightklick (event) square.bind ("", on_rightklick) def on oNRightClick (event) square.bind ("", on_rightklick) def on oNRIGHTIGHTCLICK (event) square = event (event) square = event. int (square.grid_info () ["baris"]) kolom = int (square.grid_info () ["kolom"]) square.config (bg = "biru")
def on_click (event): skor global Global Gameover global squareStoclear square = event.widget row = int (square.grid_info () ["row"]) kolom = int (square.grid_info () ["kolom"] (row] "square. print("Game Over! You hit a bomb.") print("Your score was:", score) elif currentText == " ": square.config(bg = "brown") totalBombs = 0 if row < 9: if bombfield[row+1][column] == 1: totalBombs = totalBombs + 1 if row > 0: if bombfield[row-1][column] == 1: totalBombs = totalBombs + 1 if column > 0: Jika Bombfield [baris] [Kolom-1] == 1: TotalBombs = TotalBombs + 1 Jika Kolom <9: Jika Bombfield [baris] [Kolom + 1] == 1: TotalBombs = TotalBombs + 1 jika baris> 0 dan kolom> 0: IF BOMFIELD [ROW-1] [Kolom-1] == 1: TotalBombs = TotalBombs + 1 If Row [Row-1] [Kolom-1] == 1: TotalBombs = TotalBoMBS + 1 IF BOWFFIELD [ROW-1 dan KOLOM dan KOLOM-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 skor = skor + 1 jika squareStoclear == 0: Gameover = true print ("Bagus sekali! Anda menemukan semua kotak aman! ") Cetak (" Skor Anda adalah: ", skor) play_minesweeper ()