Continuando con mi egoísta e hice un juego básico de traje de minas ... haga clic para revelar una serie de cuántas 'minas' están alrededor de esa caja o rojo para un 'mío'. Haga clic derecho para marcar donde cree que está una mina y el cuadrado se vuelve azul ... Por alguna razón, el clic derecho puede ser un poco temperamental y registrarse como un clic regular. ¿Alguien puede decirme si este es el mouse portátil o un problema con el código? Si hay una manera fácil de cambiar el código para poder cambiar el tamaño de la cuadrícula y el número de 'minas' también, ¡sería genial saberlo! import tkinter import gameover aleatorio = puntaje falso = 0 squarestoclear = 0
Def Play_Minesweeper (): create_bombfield (Bombfield) Window = tkinter.tk () Layout_window (Window) Window.Mainloop ()
Bombield = [] def create_bombfield (Bombfield): Global SquarestOclear para la fila en el rango (0,10): RowList = [] para la columna en el rango (0,10) Printfield (Bombfield): para Rowlist en Bombfield: Print (Rowlist)
Def Layout_window (Window): para Rownumber, RowList en Enumerate (Bombfield): para columnnumber, columnEntry en enumerate (rowlist): si random.randint (1,100) <35: square = tkinter.label (ventana, text = "", bg = "darkgreen") elif. random.randint (1,100)> 65: tkinter. text = "", bg = "Seagreen") else: square = tkinter.label (ventana, text = "", bg = "verde") Square.grid (row = Rownumber, column = columnnumber) Square.bind ("", on_click) Square.bind ("", on_rightClick) def on_rightClick (event): square = event.widget row int (square.grid_info () ["fila"]) columna = int (square.grid_info () ["columna"]) square.config (bg = "azul")
def on_click (evento): Global Score Global GameOver Global Squarestoclear Square = Event.Widget Row = int (Square.Grid_info () ["Row"]) columna = int (Square.Grid_info () ["columna"]) CurrentText = Square.cget ("Texto") Si GameOver == False: si Bombield [Row] [columna] == 1: GameOver = True Square. print ("Juego Over! ¡Golpea una bomba") Imprima ("Su puntaje fue:", Score) Elif CurrentText == "": Square.Config (Bg = "Brown") TotalBombs = 0 if Row <9: si Bombield [fila + 1] [columna] == 1: TotalBombs = TotalBombombs + 1 if if if Bombield [Row-1] [columna] ==: TotalBoms 0: if Bombfield [fila] [columna-1] == 1: totalBombs = totalBombs + 1 if columna <9: if Bombfield [fila] [columna + 1] == 1: totalBombombs = totalBombombs + 1 if> 0 y columna> 0: if Bombfield [fila-1] [columna-1] == 1: Totalbombs = Total Bombombs + 1 if <9 y columna y columna: si Bombefield [fila] [columna 1] TotalBombs = TotalBombs + 1 if fila> 0 y columna <9: if Bombfield [fila -1] [columna + 1] == 1: totalbombombs = totalbombombs + 1 if fila <9 y columna <9: if Bombield [fila + 1] [columna + 1] == 1: totalbombs = totalbombombs + 1 square.config (text = " + STR (total (total) +") 1 puntaje = puntaje + 1 si Squarestoclear == 0: GameOver = True Print ("Bien hecho! ¡Encontraste todos los cuadrados seguros! ") Impresión (" Tu puntaje fue: ", Score) Play_Minesweeper ()