반응형
경찰에 쫓기던 범인이 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, "점")
▶ 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))
▶ wrong = 0 : 틀렸을 경우를 0으로 초기화함
▶틀리는 횟수가 2번일 경우, 범인이 숨는 방은 다시 1~3 중 랜덤으로 결정되고, 틀리는 횟수는 0으로 초기화함
if wrong == 2:
criminal=random.randint(1,3)
wrong=0
반응형
'Language > Python' 카테고리의 다른 글
[ Python ] 모든 약수 구하기 프로그램 (0) | 2021.08.29 |
---|---|
[ Python ] 몬드리안 터틀 프로그램 (0) | 2021.08.29 |
[ Python ] 랜덤 워크 시뮬레이션 프로그램 (0) | 2021.08.29 |
[ Python ] n각형 그리기 프로그램 (0) | 2021.08.29 |
[ Python ] 짝수 출력 프로그램 (0) | 2021.08.27 |