diff --git a/Minesweeper Satu Dimensi b/Minesweeper Satu Dimensi new file mode 100644 index 0000000..3375afd --- /dev/null +++ b/Minesweeper Satu Dimensi @@ -0,0 +1,46 @@ +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() \ No newline at end of file