Language/Python

[ Python ] 범인 찾기 게임 프로그램

곽수진 2021. 8. 29. 02:34
반응형
경찰에 쫓기던 범인이 3개의 방 중의 한 곳에 숨어버렸다고 할 때 범인을 찾는 게임 프로그램을 작성해보자.

단, 범인은 방문을 열 때마다 무작위로 3개의 방 중 하나의 방으로 이동하며, 3개의 방 중 하나의 방을 선택했을 때, 범인이 없으면 점수가 10점씩 감점되면서 범인은 다른 방으로 이동함


범인을 잡으면 기존의 점수에 100점을 추가한 점수를 출력하고 프로그램은 종료됨

 

 

import random
score = 0

while True:
    room = random.randint(1, 3)
    n = int(input("방 번호를 입력하세요: "))

    if n == room:
        print("범인 체포!")
        score += 100
        break
    elif n > 3:
        print(n, "번 방은 없습니다.")
    else:
        print("범인이 없습니다.")
        score -= 10

print("게임 종료")
print("점수", score, "점")

 

한번에 범인을 체포해 100점으로 게임이 종료된 경우 결과값 출력

 

결과값 출력 모습

 

score = 0 : 최초 점수는 0점으로 초기화함

break : 사용자가 입력한 방 번호와 범인이 있는 방의 번호가 일치하는 경우, 점수는 100점을 추가하고 게임이 종료됨

▶ if문을 다른 방식으로 표현하기

if n == room:
    print("범인 체포!")
    score += 100
    break
elif n > 3:
    print(n, "번 방은 없습니다.")
else:
    print("범인이 없습니다.")
    score -= 10

→ 범인의 방이 사용자가 입력한 방과 일치하는 경우, 없는 방일 경우, 범인이 없을 경우 순서로 나열함

 

if not(1 <= room <= 3):
    print("해당 방 번호는 없습니다,")
    continue

if n == room:
    print("범인 검거!")
    score += 100
    break
else:
    print("범인이 없습니다.")
    score -= 10

→ 없는 방일 경우, 범인의 방이 일치하는 경우, 범인이 없을 경우 순서로 나열함

★ 없는 방일 경우를 if not을 사용해서 elif 없이 if와 else구문만 사용함 ★

 

 


 

 

초기 점수를 100점으로 부여하고 한 번 틀릴 때마다 10점씩 감점되며 2번 틀릴 때마다 범인의 위치는 랜덤으로 변경된다. 범인을 검거하거나 점수가 0점이 되면 게임을 종료하고 최종 점수를 출력하는 프로그램을 작성해보자.

 

import random
score = 100
wrong = 0
criminal=random.randint(1,3)

while True:
    room=int(input("방 번호 입력: "))

    if not(1 <= room <= 3):
        print("해당 방 번호는 없습니다,")
        continue

    if criminal == room:
        print("범인 검거!")
        score += 100
        break
    else:
        print("범인이 없습니다.")
        score -= 10
        if score <=0:
            break
        wrong += 1
        if wrong == 2:
            criminal=random.randint(1,3)
            wrong=0

print("최종 점수: %s"%(score))

 

한번에 범인을 체포해 200점으로 게임이 종료된 경우 결과값 출력 모습

 

3번만에 범인 검거를 성공해 종료된 경우 결과값 출력 모습

 

wrong = 0 : 틀렸을 경우를 0으로 초기화함

▶틀리는 횟수가 2번일 경우, 범인이 숨는 방은 다시 1~3 중 랜덤으로 결정되고, 틀리는 횟수는 0으로 초기화함

if wrong == 2:
    criminal=random.randint(1,3)
    wrong=0

 

반응형