내 자기 학습을 계속하고 Minesweeper의 기본 게임을 만들었습니다 ... 클릭하여 '광산'을 위해 그 상자 주위에 몇 개의 '광산'이 있는지를 공개하십시오. 마우스 오른쪽 버튼을 클릭하여 광산이 있다고 생각하고 정사각형이 파란색으로 변합니다 ... 어떤 이유로 오른쪽 클릭은 약간 기질이 될 수 있으며 일반 클릭으로 등록 할 수 있습니다. 이것이 노트북 마우스인지 코드의 문제인지 말해 줄 수 있습니까? 그리드의 크기와 '광산'수를 변경할 수 있도록 코드를 변경하는 쉬운 방법이 있다면 알아두면 좋습니다. tkinter 가져 오기 랜덤 게임 오버 = 거짓 점수 = 0 squarestoclear = 0
def play_minesweeper () : create_bombfield (Bombfield) Window = tkinter.tk () layout_window (Window) Window.MainLoop ()
BOMBFIELD = [] DEF CREATE_BOMBFIELD (BOMBFIELD) : 범위의 행에 대한 글로벌 스카 스레스트 토크 리어 (0,10) : 범위 내 열에 대한 RowList = [] : If Random.Randint (1,100) <20 : RowList.Append (1) else : rowlist.Append (0) SquarEStocLear = SquarEStocLear = SquarEStocLear = alffield. Printfield (Bombfield) : Bombfield의 Rowlist : Print (Rowlist)
DEF LAYOUT_WINDOW (창)의 경우, Rownumber의 경우 (Bombfield)의 RowList : ColumnNumber의 경우, Enumerate (rowList)의 ColumnEntry의 경우 : If Random.randint (1,100) <35 : square = tkinter.label (Window = "", BG = "Darkgreen") Elif Random.randint (1,100)> 65 : smare = tkinter. = "", bg = "seagreen") else : square = tkinter.label (창, 텍스트 = "", bg = "녹색") square.grid (row = rownumber, column = columnnumber) square.bind ( "", on_click) square.bind ( "", on_rightclick) def on_rightClick (event). int (square.grid_info () [ "row"]) 열 = int (square.grid_info () [ "column") square.config (bg = "blue")
def on_click (이벤트) : 글로벌 스코어 글로벌 게임 오버 글로벌 게임 오버 글로벌 Squarestoclear Square = event.widget row = int (square.grid_info ()) 열 = int (square.grid_info () [ "column") currentText = square.cget ( "text") [column] [rok] 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 : if bombfield [row] [column-1] == 1 : totalbombs = totalbombs + 1 if column <9 : if bombfield [row] [column + 1] == 1 : totalbombs = totalbombs + 1 if row> 0, column> 0 : if bomber-1] [row-1] [row-1] [row-1] [row-1] [row-1] [row <9와 embold> 0 : if alffield [row + 1]. Totalbombs = Totalbombs + 1이면 row> 0이고 열 <9 : if bombfield [row -1] [column + 1] == 1 : totalbombs = totalbombs + 1 if row <9 및 열 <9 : if bombfield [row + 1] [column + 1] == 1 : totalbombs = totalbombs + 1 square.config (tattbombs) + " +" + " +" + " +" + " 1 Score = score + 1 인 경우 1 Squarestoclear == 0 : GameOver = True Print ( "잘 완료되었습니다! 당신은 모든 안전한 사각형을 찾았습니다! ") print ("당신의 점수는 : ", 점수) play_minesweeper ()