본문 바로가기

Python 카테고리

random 함수 이용 (러시안 룰렛)

random함수 사용하기 전에 먼저 외장 함수이기에 random을 import 해주어야 합니다.

import random

 

random함수의 종류는 random( ), uniform( ), randint( ),  randrange( ), choice( ), shuffle( ) 등이 있습니다.

 

먼저 random( )0부터 11 사이의 실수를 랜덤으로 지정합니다.

 

>>> print(random.random())
>>> 0.9090304923

 

uniform( )random.uniform(x, y) 형태로 두 숫자 사이의 실수로 랜덤으로 지정합니다.

 

>>> print(random.uniform(1, 10))
>>> 3.51423451

 

randint( )uniform과 같이 random.randint(x, y) 형태로 두 숫자 사이의 정수로 랜덤으로 지정합니다.

 

>>> print(random.randint(1, 10))
>>> 6

 

randrange( )randint와 비슷합니다. 여기서 random.randrange(시작, , 스텝)으로 합니다. 스텝은 3을 적었을 시 3칸

씩 이동합니다. 그러므로 3의 배수만 나오게 됩니다.

 

>>> print(random.randrange(0, 10, 3))
>>> 9

 

choice( )는 문자열 중에서 글자 하나를 뽑아서 지정합니다.

 

>>> print(random.choice("블로그 작성 중 입니다."))
>>> 성

 

shuffle( )은 말 그대로 섞습니다. 리스트 안에 요소들을 shuffleshuffle 한 뒤 출력하면 지정해준 것과 달리 섞여 나옵니다.

 

>>> blog = [1, 2, 3, 4]
>>> random.shuffle(blog)
>>> print((blog))
>>> [3, 4, 2, 1]

 

이 랜덤 함수를 사용하여 러시안룰렛을 만들겠습니다.

 

먼저 random함수 사용 전 import random을 해준 뒤 러시안룰렛을 위한 총알 리스트 하나를 만들겠습니다.

 

bullet = ['생존', '생존', '생존', '생존', '생존', '죽음']

 

이제 bullet을 랜덤으로 섞어줍니다. 저는 randint를 사용하여 인덱스번호를 가져와 만들었습니다.

 

while True문을 이용하여 '죽음'이 나올 때까지 돌려줍니다.

 

이제 쓴 총알은 지우기 위하여 list안에 내장함수 pop을 사용하여 쓴 총알 칸을 빼냅니다.

 

그전에 리스트 bullet의 인덱스 번호를 가져와 총을 쏠 것이기 때문에 인덱스 번호를 랜덤으로 하기 위해 아래와 같은 코드를 사용합니다. 

 

i = 5
idx_bullet = random.randint(0, i)

 

러시안룰렛은 대부분 리볼버 형태로 6발을 사용하기 때문에 인덱스번호로 0부터 5까지 랜덤으로 섞습니다.

 

그리고 이제 bullet 리스트에서 랜덤으로 pop으로 하나씩 빼냅니다.

 

a = bullet.pop(idx_bullet)
print(a)

 

이제 하나씩 빼면서 출력할 때 '죽음'이 나온다면 게임을 종료해야합니다.

 

if문을 사용하여 a가 '죽음'이라면 break로 while True문을 빠져나가 줍니다.

 

그리고 만약 '생존'이라면 리스트의 범위가 줄어들기 때문에 i -= 1 또는 i = i - 1을 써줍니다.

 

그리고 다시 while문을 돌면서 '죽음'이 나올 때까지 게임을 합니다.

 

러시안 룰렛 코드