ดำเนินการต่อด้วยการเรียนรู้ด้วยตนเองของฉันและสร้างเกมพื้นฐานของ Minesweeper ... คลิกเพื่อเปิดเผยจำนวน 'เหมือง' จำนวนเท่าใดที่อยู่รอบ ๆ กล่องนั้นหรือสีแดงสำหรับ 'ของฉัน' คลิกขวาเพื่อตั้งค่าสถานะที่คุณคิดว่าฉันอยู่และสแควร์เปลี่ยนเป็นสีน้ำเงิน ... ด้วยเหตุผลบางอย่างคลิกขวาอาจเป็นเรื่องเจ้าอารมณ์และลงทะเบียนเป็นคลิกปกติ ใครช่วยบอกฉันได้ไหมว่านี่คือเมาส์แล็ปท็อปหรือปัญหาเกี่ยวกับรหัส? หากมีวิธีที่ง่ายในการเปลี่ยนรหัสเพื่อให้สามารถเปลี่ยนขนาดของกริดและจำนวนของ 'เหมือง' เช่นกันที่จะรู้ได้ดี! นำเข้า tkinter นำเข้าแบบสุ่ม gameover = คะแนนเท็จ = 0 squarestoclear = 0
def play_minesweeper (): create_bombfield (bombfield) window = tkinter.tk () layout_window (หน้าต่าง) window.mainloop ()
bombfield = [] def create_bombfield (bombfield): global squarestoclear สำหรับแถวในช่วง (0,10): rowlist = [] สำหรับคอลัมน์ในช่วง (0,10): ถ้าสุ่ม. randint (1,100) <20: rowlist.append (1) อื่น ๆ Printfield (Bombfield): สำหรับ Rowlist ใน Bombfield: Print (Rowlist)
def layout_window (หน้าต่าง): สำหรับ rownumber, rownlist ใน enumerate (bombfield): สำหรับ columnnumber, คอลัมน์ใน enumerate (rowlist): ถ้า random.randint (1,100) <35: square = tkinter.label (window, text = ", bg =" darkgreen " text = "", bg = "seagreen") อื่น: square = tkinter.label (หน้าต่าง, text = "", bg = "สีเขียว") square.grid (แถว = rownumber, คอลัมน์ = คอลัมน์) square.bind ("", on_click) square.bind ("" int (square.grid_info () ["row"]) คอลัมน์ = int (square.grid_info () ["คอลัมน์"]) square.config (bg = "blue")
def on_click (เหตุการณ์): Global Score Global Gameover Global Global Squarestoclear Square = Event.widget Row = int (square.grid_info () ["row"]) คอลัมน์ = int (square.grid_info () ["คอลัมน์"] currentText = square.cget ("text") พิมพ์ ("Game Over! คุณตีระเบิด") พิมพ์ ("คะแนนของคุณคือ:", คะแนน) Elif CurrentText == "": square.config (bg = "brown") totalbombs = 0 ถ้าแถว <9: ถ้า bombfield [แถว + 1] [คอลัมน์] == 1: TotalBombs = TotalBombs ถ้า bombfield [แถว] [คอลัมน์ -1] == 1: TotalBombs = TotalBombs + 1 ถ้าคอลัมน์ <9: ถ้า Bombfield [แถว] [คอลัมน์ + 1] == 1: TotalBombs = TotalBombs + 1 ถ้าแถว> 0 และคอลัมน์> 0: ถ้า BOMBFIELD [ROW-1] TotalBombs = TotalBombs + 1 ถ้าแถว> 0 และคอลัมน์ <9: ถ้า bombfield [row-1] [คอลัมน์ + 1] == 1: TotalBombs = TotalBombs + 1 ถ้าแถว <9 และคอลัมน์ <9: ถ้า BOMBFIELD [แถว + 1] [คอลัมน์ + 1] == 1: TotalBombs = TotalBombs Squarestoclear - 1 คะแนน = คะแนน + 1 ถ้า squarestoclear == 0: gameover = true print ("ทำได้ดีมาก! คุณพบสี่เหลี่ยมที่ปลอดภัยทั้งหมด! ") พิมพ์ (" คะแนนของคุณคือ: ", คะแนน) play_minesweeper ()