프로그램

[파이썬] 문제 : 임의의 위치에 지뢰 설치(random)

오디세이99 2023. 2. 20. 21:36
728x90
반응형

(문제)

임의의 지뢰를 생성해 주어야 하는데 randint를 사용해 0부터 8까지의 범위로 임의의 위치를 생성해준다.

x가 0부터 8까지, y가 0부터 8까지 2차원 리스트 같은 element(cell)에 겹치지 않도록 해 주어야 한다.

따라서 처음 모든 좌표를 false로 지정하고, 지뢰를 생성한다면 true로 바꿔주고, true인 경우를 피해서 다른 위치에 지뢰를 또 랜덤하게 생성해주도록 한다.

위의 말대로 지뢰찾기 게임에서 지뢰를 저장하는데 2차원 배열을 사용합니다. 처음 모든 좌표가 false에서 지뢰를 랜덤으로 생성할 때마다 true로 바꾼 후 다시 생성하려고 하는 코드를 작성

 

 

(방법)

# 지뢰
import random

lst = [[-1]*8 for i in range(8)]      # 8 x 8 배열

for i in range(3):                    # 3개의 지뢰
    while True:                       # 설치가능한 x, y 찾기
        x = random.randint(0,7)        # random 위치
        y = random.randint(0,7)
        print(x, y) 
        if lst[x][y] != 8:            # 해당 위치에 설치가 되어 있지 않다면 해당 x, y 사용 가능
            break
        
    lst[x][y] = 8                      # 해당 위치에 설치

728x90
반응형