본문 바로가기
프로그램

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

by 오디세이99 2023. 2. 20.
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
반응형

댓글