본문 바로가기
카테고리 없음

[TIL]23.02.27내일배움캠프 3주차 과제2. 가위바위보 게임

by Byeong 2024. 2. 28.

과제 제출을 위해 엄청 시도를 했지만 오류로 인해 아직 완성을 하지 못했다.

import random
list = ['가위', '바위', '보']
computer = random.choice(list).lower()
win = 0
defeat = 0
tie = 0


def re_game():
    while True:
        re_game_q = input('다시 하시겠습니까? (ㅇㅇ/ㄴㄴ) : ')
        try:
            if re_game_q != 'ㅇㅇ' and re_game_q != 'ㄴㄴ':
                print('ㅇㅇ or ㄴㄴ를 입력하세요')
        except:
            continue
        if re_game_q.lower() == 'ㄴㄴ':
            global win 
            global defeat
            global tie
            global stop
            print('게임을 종료 합니다.')
            print(f'승리 : {win} 패배 : {defeat} 무승부 : {tie}')
            break
        elif re_game_q.lower() == 'ㅇㅇ':
            break


while stop >= 2:
    computer = random.choice(list).lower()
    try:
        player_choice = input("'가위', '바위', '보' 중 하나를 선택하세요 : ")
        if player_choice != '가위' and player_choice != '바위' and player_choice != '보':
            print('유요한 입력이 아닙니다.')
    except:
        continue
    if player_choice == computer:
        tie +=1
        print('무승부 입니다.')
        re_game()
    elif player_choice == '가위' and computer == '보':
        win +=1
        print('사용자 승리')
        re_game()
    elif player_choice == '가위' and computer == '바위':
        defeat +=1
        print('사용자 패배')
        re_game()
    elif player_choice == '바위' and computer == '가위':
        win +=1
        print('사용자 승리')
        re_game()
    elif player_choice == '바위' and computer == '보':
        defeat +=1
        print('사용자 패배')
        re_game()
    elif player_choice == '보' and computer == '바위':
        win +=1
        print('사용자 승리')
        re_game()
    elif player_choice == '보' and computer == '가위':
        defeat +=1
        print('사용자 패배')
        re_game()

 

가위바위보 게임을 위해 만든 코드인데 아직 미완성이다.

 

오류 1

def re_game():

게임을 다시 하는 함수를 만들어 게임 승리 여부를 불어 보는데 함수 박에 변수를 선언하면 안에서는 그 변수를 불러와 사용이 불가했다.

전역 변수로 선언한 win이 함수에 내서 사용이 안되어 고생을 했었다.

그때 global을 통해 지역 변수를 전역변수로 바뀌 주어 오류가 사라졌다.

그런데 아무리 생각해도 이미 전역변수로 선언한 변수가 왜 안될까 하는 생각에 다시 지우고 사용했더니 잘됐다... 뭔 실수를 한 건지...

 

 

오류 2

게임 여부를 불어보고 ㄴㄴ을 입력하면 게임이 끝나게 만들어야 하는데.... While 문의 설정을 어떻게 해야 할지 몰라 고생했다.

아니 아직도 진행 중 팀원 분들에게 물어보고 해결 방법을 찾아야겠다.