파이썬 가위, 바위, 보 게임 -2

hyo_d·2022년 9월 20일
0

가위, 바위, 보 게임 -2

요구조건(1일차 코드에 각각 추가코드 작성)

  1. 기존의 가위, 바위, 보 게임에서 사용자 또는 컴퓨터가 3판 2승을 먼저하면 게임이 종료되도록 기능을 추가한다.
  2. 사용자의 입력을 받는 코드를 함수로 작성한다.
  3. 사용자 입력 함수를 모듈로 만들어서 get_input.py파일로 따로 분리한다.

1. 3판 2승제

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("게임을 종료합니다")

2. 사용자 입력값을 받는 함수 작성

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("예상하지 못한 경우입니다.")

3. 사용자 입력값을 받는 함수 작성

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("예상하지 못한 경우입니다.")

3. 사용자 입력 함수를 분리

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
profile
햇병아리

0개의 댓글