Continuando com o meu aprendizado próprio e fiz um jogo básico de Minesweeper ... clique para revelar uma série de quantas 'minas' estão em torno dessa caixa ou vermelho para uma 'mina'. Clique com o botão direito do mouse para sinalizar onde você acha que uma mina é e o quadrado fica azul ... por algum motivo, o clique direito pode ser um pouco temperamental e se registrar como um clique regular. Alguém pode me dizer se este é o mouse do laptop ou um problema com o código? Se houver uma maneira fácil de alterar o código para poder alterar o tamanho da grade e o número de 'minas', também seria ótimo saber! Importar Tinter Importar Gameover aleatório = Falso = 0 Squarestoclear = 0
def
Bombfield = [] def create_bombfield (Bombfield): quadrado global para a linha no alcance (0,10): rowlist = [] para coluna no alcance (0,10): se random.randint (1,100) <20): rowlist.append (1) else: Rowlist.Apfend (0) (squarestoclearn = squarestoclear. Printfield (Bombfield): Para Rowlist in Bombfield: Print (Rowlist)
def layout_window (janela): Para rowlist, list em enumerar (Bombfield): para columnNumber, colunnentry em enumerar (lista de rowlist): se random.randint (1,100) <35: square = tknter.label (janela, text = "", BG = "Darkgreen") eLif tkinter.label (janela, text = "", bg = "Seagreen") else: square = tkinter.label (janela, text = "", bg = "verde") square.grid (linha = rowumber, column = columnument) square.bind ("", on_lick) square.bind ("", on_lorth) int (square.grid_info () ["linha"]) coluna = int (square.grid_info () ["coluna"]) square.config (bg = "azul")
def ON_CLICK (Evento): Global Global Gameover Global Squarestoclear Square = Event.Widget Row = int (Square.grid_info () ["Row"]) colun = int (square.grid_info () ["column"]) currentText = square.cget (texto ") se gameover == False: se "Red") Print ("Jogo sobre! Você bate em uma bomba.") Imprimir ("Sua pontuação foi:", pontuação) elif currentText == "": square.config (bg = "brown") totalbombs = 0 se linha <9: se bombafield [linha de linha + 1] [column] == 1: totalbombs = totalbombs + 1 se linha> 0: 1) [column] == 1: totalbombs = totalbombs + 1 se linha> 0: + 1 1 coluna> 0: se Bombfield [linha] [coluna-1] == 1: totalbombs = totalbombs + 1 se coluna <9: se Bombfield [linha] [coluna + 1] == 1: totalbombs = totalbombs + 1 se linha> 0 e coluna> 0: se bomba [linha 1] [column-1] == 1: Bombield [linha +1] [coluna-1] == 1: totalbombs = totalbombs +1 se linha> 0 e coluna <9: se Bombfield [linha-1] [coluna +1] == 1: totalbombs = totalbombs +1 se linha <9 e coluna <9: se bomba [linha +1] [column +1] == 1: 1: str (totalbombs) + "") squarestoclear = squarestoclear - 1 pontuação = pontuação + 1 se squarestoclear == 0: gameover = impressão true ("Muito bem! Você encontrou todos os quadrados seguros! ") Imprimir (" Sua pontuação foi: ", pontuação) play_minesweeper ()