MINESWEEPER_SATU_DIMENSI/Minesweeper Satu Dimensi

46 lines
1.6 KiB
Plaintext

def count_missing_mines(board):
"""
Menghitung jumlah kotak ranjau yang diperlukan agar Minesweeper satu dimensi menjadi lengkap.
Args:
board (list): List angka, di mana setiap angka menunjukkan jumlah ranjau di sekitar posisi tersebut.
Gunakan -1 untuk menunjukkan posisi ranjau yang diketahui.
Returns:
int: Jumlah kotak ranjau yang diperlukan.
"""
missing_mines = 0
n = len(board)
for i in range(n):
# Jika posisi saat ini bukan ranjau (-1), hitung kekurangan ranjaunya
if board[i] != -1:
# Hitung jumlah ranjau yang sudah ada di sekitar posisi ini
current_mines = 0
if i > 0 and board[i - 1] == -1:
current_mines += 1
if i < n - 1 and board[i + 1] == -1:
current_mines += 1
# Tambahkan kekurangan ranjau
missing_mines += max(0, board[i] - current_mines)
return missing_mines
def main():
print("Selamat datang di program hitung ranjau Minesweeper satu dimensi!")
# Input papan Minesweeper
print("Masukkan papan Minesweeper dalam format berikut:")
print("Gunakan -1 untuk kotak ranjau yang sudah diketahui, dan angka (0-2) untuk kotak lainnya.")
print("Contoh input: -1 2 0 1 -1")
board_input = input("Masukkan papan Minesweeper (pisahkan dengan spasi): ")
board = list(map(int, board_input.split()))
# Hitung jumlah ranjau yang diperlukan
missing_mines = count_missing_mines(board)
print(f"Jumlah kotak ranjau yang diperlukan: {missing_mines}")
if __name__ == "__main__":
main()