Language/Python

[ Python ] 가위 바위 보 게임 프로그램

곽수진 2021. 8. 30. 23:17
반응형
컴퓨터가 랜덤으로 가위, 바위, 보 중 하나를 결정하고, 사용자에게 입력받은 값과 비교해 '비겼습니다', '이겼습니다', '졌습니다' 결과값을 출력하는 프로그램을 작성해보자.
단, 잘못 입력한 경우 올바른 값이 입력될 때 까지 반복

 

import random
srp = ["가위", "바위", "보"]
random.shuffle(srp)

while True:
    my_srp = input("가위, 바위, 보 중 하나를 입력하세요: ")
    if my_srp in srp:
        break
    else:
        print("잘못 입력하였습니다. 다시 입력하세요.")

com_srp = random.choice(srp)
if my_srp == com_srp:
    print("비겼습니다.")
elif my_srp == "가위" and com_srp == "보"or my_srp == "바위" and com_srp == "가위"or my_srp == "보" and com_srp == "바위":
    print("컴:", com_srp)
    print("당신이 이겼습니다.")
else:
    print("컴:", com_srp)
    print("당신이 졌습니다.")

 

random.shuffle(srp) : srp 변수에 저장된 리스트를 무작위로 섞어줌

사용자로부터 가위, 바위, 보 중 하나를 입력받고, 이를 제외한 다른 말을 입력하면 잘못 입력했음을 안내해줌

while True:
    my_srp = input("가위, 바위, 보 중 하나를 입력하세요: ")
    if my_srp in srp:
        break
    else:
        print("잘못 입력하였습니다. 다시 입력하세요.")

▶  com_srp = random.choice(srp) : srp 변수에 저장된 리스트 중 요소 하나를 무작위로 선택함

▶  if, elif, else문을 이용해 컴퓨터와 사용자의 가위, 바위, 보 결과값을 비교

if my_srp == com_srp:
    print("비겼습니다.")
elif my_srp == "가위" and com_srp == "보"or my_srp == "바위" and com_srp == "가위"or my_srp == "보" and com_srp == "바위":
    print("컴:", com_srp)
    print("당신이 이겼습니다.")
else:
    print("컴:", com_srp)
    print("당신이 졌습니다.")

 

결과값 출력 모습

 

 

 


 

위와 동일한 가정으로 프로그램을 작성해보자.

 

import random

def match(computer, user):
    if computer == user:
        return '비겼습니다'
    elif match_table[computer] == user:
        return '졌습니다'
    else:
        return '이겼습니다'

rps_dic = {1:'가위', '2':'바위', 3:'보'}
match_table = {'가위':'보','바위':'가위', '보':'바위'}

computer = rps_dic[random.randint(1,3)]
user = input('가위, 바위, 보 입력 ')
result = match(computer, user)
print(result)

 

rps_dic = {1:'가위', '2':'바위', 3:'보'}
match_table = {'가위':'보','바위':'가위', '보':'바위'}

▶ 딕셔너리를 이용해 가위, 바위, 보를 저장

 

결과값 출력 모습

 

 


 

 

가위바위보에서 비겼을 때, 다시 가위바위보를 진행하도록 하는 프로그램을 작성해보자.
즉, 승부가 날 때까지 게임이 계속된다.

 

import random
srp = ["가위", "바위", "보"]
random.shuffle(srp)
my_srp = com_srp = "가위"
while my_srp == com_srp:
    while True:
        my_srp = input("가위, 바위, 보 중 하나를 입력하세요: ")
        if my_srp in srp:
            break
        else:
            print("잘못 입력하였습니다. 다시 입력하세요.")

    com_srp = random.choice(srp)
    if my_srp == com_srp:
        print("비겼습니다. 다시 합니다.")
    elif my_srp == "가위" and com_srp == "보"or my_srp == "바위" and com_srp == "가위"or my_srp == "보" and com_srp == "바위":
        print("컴:", com_srp)
        print("당신이 이겼습니다.")
    else:
        print("컴:", com_srp)
        print("당신이 졌습니다.")

while my_srp == com_srp사용자의 입력값과 컴퓨터가 랜덤으로 뽑은 값이 동일한 경우(가위, 바위, 보 게임이 비겼을 경우)에만 반복문이 진행됨

 

결과값 출력 모습

반응형