Add Minesweeper Satu Dimensi
This commit is contained in:
parent
0467d40c51
commit
8c0524da9c
46
Minesweeper Satu Dimensi
Normal file
46
Minesweeper Satu Dimensi
Normal file
@ -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()
|
Loading…
x
Reference in New Issue
Block a user