if문만 활용해 직접 만들어보는 간단한 Python 게임
설명
Python의 if, elif, else 조건문을 활용하면 반복문 없이도 간단한 게임을 만들 수 있습니다. 이번에는 컴퓨터가 낸 선택과 사용자의 선택을 비교하는 가위바위보 게임을 만들어보면서 조건문의 활용법을 익혀보겠습니다.
가위바위보 게임 만들기
가위바위보는 조건문을 연습하기 좋은 간단한 예제입니다.
사용자가 가위, 바위, 보 중 하나를 입력하면 컴퓨터의 선택과 비교해서 승리, 패배, 무승부를 판단합니다.
게임의 기본 구조는 다음과 같습니다.
player = "가위"
computer = "바위"
if player == computer:
print("무승부입니다.")
elif player == "가위" and computer == "보":
print("플레이어 승리!")
elif player == "바위" and computer == "가위":
print("플레이어 승리!")
elif player == "보" and computer == "바위":
print("플레이어 승리!")
else:
print("컴퓨터 승리!")
이 코드에서 핵심은 if, elif, else를 이용해 각각의 상황을 판단하는 것입니다.
직접 입력받도록 만들기
이번에는 사용자가 직접 가위바위보를 선택하도록 바꿔보겠습니다.
player = input("가위, 바위, 보 중 하나를 입력하세요: ")
computer = "바위"
if player == computer:
print("무승부입니다.")
elif player == "가위" and computer == "보":
print("플레이어 승리!")
elif player == "바위" and computer == "가위":
print("플레이어 승리!")
elif player == "보" and computer == "바위":
print("플레이어 승리!")
else:
print("컴퓨터 승리!")
여기서는 input()을 사용해 사용자의 입력을 받고, if문으로 결과를 판단합니다.
잘못된 입력도 처리하기
사용자가 가위, 바위, 보가 아닌 다른 값을 입력할 수도 있습니다.
이 경우에도 if문을 활용할 수 있습니다.
player = input("가위, 바위, 보 중 하나를 입력하세요: ")
computer = "바위"
if player not in ["가위", "바위", "보"]:
print("잘못된 입력입니다.")
elif player == computer:
print("무승부입니다.")
elif player == "가위" and computer == "보":
print("플레이어 승리!")
elif player == "바위" and computer == "가위":
print("플레이어 승리!")
elif player == "보" and computer == "바위":
print("플레이어 승리!")
else:
print("컴퓨터 승리!")
not in을 이용하면 특정 값이 목록에 포함되어 있지 않은지 확인할 수 있습니다.
컴퓨터가 랜덤으로 선택하게 만들기
지금까지는 컴퓨터가 항상 바위만 내기 때문에 실제 게임이라고 하기에는 조금 아쉽습니다.
Python의 random 모듈을 사용하면 컴퓨터가 무작위로 선택하도록 만들 수 있습니다.
import random
choices = ["가위", "바위", "보"]
player = input("가위, 바위, 보 중 하나를 입력하세요: ")
computer = random.choice(choices)
print("컴퓨터:", computer)
이제 컴퓨터가 세 가지 중 하나를 무작위로 선택합니다.
그리고 앞에서 만든 if문으로 승패를 판단하면 실제 가위바위보 게임이 완성됩니다.
완성된 가위바위보 코드
import random
choices = ["가위", "바위", "보"]
player = input("가위, 바위, 보 중 하나를 입력하세요: ")
computer = random.choice(choices)
print("컴퓨터:", computer)
if player not in choices:
print("잘못된 입력입니다.")
elif player == computer:
print("무승부입니다.")
elif player == "가위" and computer == "보":
print("플레이어 승리!")
elif player == "바위" and computer == "가위":
print("플레이어 승리!")
elif player == "보" and computer == "바위":
print("플레이어 승리!")
else:
print("컴퓨터 승리!")
이 프로그램은 반복문 없이 if, elif, else만으로 게임의 핵심 로직을 구현한 예제입니다.
여기서 연습해볼 것
코드를 직접 작성했다면 다음 기능을 추가해보는 것도 좋습니다.
- 승리하면
"🎉"출력하기 - 패배하면
"😢"출력하기 - 사용자의 선택도 화면에 표시하기
"가위바위보 게임에 오신 것을 환영합니다!"출력하기player대신user_choice처럼 변수 이름 바꿔보기
특히 조건을 직접 변경해보면서 어떤 조건에서 어떤 결과가 나오는지 확인하면 if문을 이해하는 데 큰 도움이 됩니다.
마무리
조건문은 단순히 숫자를 비교할 때만 사용하는 문법이 아닙니다.
이번 가위바위보 예제처럼 사용자의 입력을 확인하고, 여러 상황을 비교해 게임의 결과를 결정하는 데에도 사용할 수 있습니다.
이번 예제에서 사용한 핵심 문법은 다음과 같습니다.
if → 조건 확인
elif → 다른 조건 확인
else → 나머지 상황 처리
and → 여러 조건을 동시에 확인
not in → 특정 값이 포함되지 않았는지 확인
random.choice() → 목록에서 무작위 값 선택
먼저 반복문 없이 조건문만으로 하나의 작은 프로그램을 완성해보는 것부터 시작해보세요. 이후 for와 while을 배우면 이 게임을 여러 번 플레이할 수 있도록 직접 확장할 수도 있습니다.