Skip to content

H6332/Python_Project_Group_5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

import random

def create_board(rows, cols, mines): # 隨機創造地圖並埋地雷 return

def count_adjacent_mines(board, r, c): # 計算指定格子周圍的地雷數 return

def check_victory(board, revealed): # 判斷是否非地雷的都被翻開 return True #以上由羅靖宥負責

def show_board(board, revealed): # 顯示棋盤目前狀態 return

def introduction(): # 遊戲介紹 return #以上由謝杰叡負責

def choose_difficulty(): # 選擇難度 return

def get_player_input(): # 取得玩家輸入 return

def reveal_cell(board, revealed, r, c): """翻開格子:踩雷、顯示數字、展開空白""" if revealed[r][c]: return revealed[r][c] = True

if board[r][c] == "*":
    return  # 踩到雷交給外面判斷

# 計算周圍地雷
mines_around = count_adjacent_mines(board, r, c)
board[r][c] = str(mines_around) if mines_around > 0 else " "

if mines_around == 0:
    # 自動展開空白格(遞迴)
    return

def game_loop(): settings = choose_difficulty() board = create_board(settings["rows"], settings["cols"], settings["mines"]) revealed = [[False for _ in range(settings["cols"])] for _ in range(settings["rows"])]

while True:
    show_board(board, revealed)
    row, col = get_player_input()

    # 如果輸入的位置不合理要求重新輸入
    if not (0 <= row < settings["rows"] and 0 <= col < settings["cols"]):
        print("❌ 超出範圍,請重新輸入!")
        continue

    # 翻格子
    reveal_cell(board, revealed, row, col)

    # 判斷勝利與否
    if check_victory(board, revealed):
        show_board(board, revealed)
        break

#以上由黃郁晟負責

def main(): introduction() game_loop()

if name == "main": main()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published