요구조건(1일차 코드에 각각 추가코드 작성)
- 기존의 가위, 바위, 보 게임에서 사용자 또는 컴퓨터가 3판 2승을 먼저하면 게임이 종료되도록 기능을 추가한다.
- 사용자의 입력을 받는 코드를 함수로 작성한다.
- 사용자 입력 함수를 모듈로 만들어서 get_input.py파일로 따로 분리한다.
1) 가장 먼저 생각 해 볼 것은 두가지이다.
첫번째로 사용자와 컴퓨터의 승,패 결과가 저장되어야 한다. 두번째로 이 결과에 따라 우리가 원하는 3판 2승이 될때까지 게임이 계속되어야 한다.
게임 전체를 while문으로 묶어주어 게임이 끝날때까지 반복하는 식으로 코드를 작성했다.
while True:
print(f"현재 스코어는 {player_count}:{computer_count}입니다.")
if player_count == 2 or computer_count == 2:
if player_count == 2:
print("컴퓨터를 상대로 이겼습니다.")
else:
print("컴퓨터를 상대로 졌습니다.")
break
2) 사용자와 컴퓨터의 값을 받는 것은 이전과 동일하며 게임을 진행할 때 사용자와 컴퓨터의 게임 결과에 따라 count를 1씩 더해주는 코드만 추가로 작성했다.
if player_value == computer_value:
print("무승부")
elif player_value == "가위":
if computer_value == "보":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
elif player_value == "바위":
if computer_value == "가위":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
elif player_value == "보":
if computer_value == "바위":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
✨ 완성된 전체 코드
# 가위, 바위, 보를 입력받는다. 이 외에 입력을 받으면 다시 입력하게 한다.
# 컴퓨터가 가위, 바위, 보를 랜덤으로 선택
# 이 두개를 비교해서 승패를 표시
import random
# player의 입력 받기
option = ['가위','바위','보']
player_count = 0
computer_count = 0
while True:
print(f"현재 스코어는 {player_count}:{computer_count}입니다.")
if player_count == 2 or computer_count == 2:
if player_count == 2:
print("컴퓨터를 상대로 이겼습니다.")
else:
print("컴퓨터를 상대로 졌습니다.")
break
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
break
else:
print("값을 정확히 입력해주세요.")
# coumputer의 입력 받기
# 컴퓨터 가위, 바위, 보 선택 1(randint 사용)
random_number = random.randint(0,2)
computer_value = option[random_number]
print(f"플레이어는 {player_value}를 선택, 컴퓨터는 {computer_value}를 선택했습니다.")
if player_value == computer_value:
print("무승부")
elif player_value == "가위":
if computer_value == "보":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
elif player_value == "바위":
if computer_value == "가위":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
elif player_value == "보":
if computer_value == "바위":
print("승리")
player_count += 1
else:
print("패배")
computer_count += 1
else:
print("예상하지 못한 경우입니다.")
print("게임을 종료합니다")
1) 기존의 사용자 입력값을 받아오는 코드는 다음과 같다.
option = ['가위','바위','보']
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
break
else:
print("값을 정확히 입력해주세요.")
2) get_user_value를 함수로 정의해주어 가위, 바위, 보 중에 입력하면 player_value값을 return해준다.
option = ['가위','바위','보']
def get_user_value():
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
return player_value
else:
print("값을 정확히 입력해주세요.")
player_value = get_user_value()
✨ 완성된 전체 코드
import random
option = ['가위','바위','보']
# player의 입력 받기
def get_user_value():
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
return player_value
else:
print("값을 정확히 입력해주세요.")
player_value = get_user_value()
# coumputer의 입력 받기
random_number = random.randint(0,2)
computer_value = option[random_number]
print(f"플레이어는 {player_value}를 선택, 컴퓨터는 {computer_value}를 선택했습니다.")
if player_value == computer_value:
print("무승부")
elif player_value == "가위":
if computer_value == "보":
print("승리")
else:
print("패배")
elif player_value == "바위":
if computer_value == "가위":
print("승리")
else:
print("패배")
elif player_value == "보":
if computer_value == "바위":
print("승리")
else:
print("패배")
else:
print("예상하지 못한 경우입니다.")
1) 기존의 사용자 입력값을 받아오는 코드는 다음과 같다.
option = ['가위','바위','보']
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
break
else:
print("값을 정확히 입력해주세요.")
2) get_user_value를 함수로 정의해주어 가위, 바위, 보 중에 입력하면 player_value값을 return해준다.
option = ['가위','바위','보']
def get_user_value():
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
return player_value
else:
print("값을 정확히 입력해주세요.")
player_value = get_user_value()
✨ 완성된 전체 코드
import random
option = ['가위','바위','보']
# player의 입력 받기
def get_user_value():
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
return player_value
else:
print("값을 정확히 입력해주세요.")
player_value = get_user_value()
# coumputer의 입력 받기
random_number = random.randint(0,2)
computer_value = option[random_number]
print(f"플레이어는 {player_value}를 선택, 컴퓨터는 {computer_value}를 선택했습니다.")
if player_value == computer_value:
print("무승부")
elif player_value == "가위":
if computer_value == "보":
print("승리")
else:
print("패배")
elif player_value == "바위":
if computer_value == "가위":
print("승리")
else:
print("패배")
elif player_value == "보":
if computer_value == "바위":
print("승리")
else:
print("패배")
else:
print("예상하지 못한 경우입니다.")
1) get_input.py파일을 새로 생성하고 기존 사용자의 입력을 받는 함수를 작성한다.
option = ['가위','바위','보']
# player의 입력 받기
def get_user_value():
while True:
player_value = input("가위, 바위, 보 중에서 내주세요")
if player_value in option:
return player_value
else:
print("값을 정확히 입력해주세요.")
2) 기존 파일에서 get_input 파일에 있는 get_user_value 함수를 import한다.
from get_input import get_user_value