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