가위, 바위, 보 게임 만들기

가위, 바위, 보 게임 만들기

조건

문제를 코드로 구현할때는 항상 기획먼저! (feat. if문 else문)

  • 조건 2, 3, 5를 구현하기 위해 두 갈래 또는 세 갈래로 나눠야 한다.
  • 나눌땐 정?이 아니고 if문!
  • 변수를 몇 개나 선언 할 것인가에 대한 고민
  • 머릿속 고민? NO!
    펜이라도 들고 직접 메모지에 끄적거리면서 기획해보기
  • 그러고 나서 타이핑!

import random  # 가위, 바위, 보 중 랜덤으로 선택해야 하므로 랜덤모듈 불러옴

computer_choice = ['가위', '바위', '보']  # 컴퓨터가 랜덤으로 선택 할 가위, 바위, 보를 리스트로 만듬

player_point = 0  # 플레이어 승리 수
player_defeat = 0  # 플레이어 패배 수

computer_point = 0  # 컴퓨터 승리 수
computer_defeat = 0  # 컴퓨터 패배 수

print('가위, 바위, 보 게임을 시작합니다')   # 게임 시작 문구

game_mode = input('게임 모드를 선택하세요\n'
                  '5판 3선승 - 숫자 1을 눌러주세요. \n'
                  '3판 2선승 - 숫자 2를 눌러주세요. ')  # 모드 선택

if game_mode == '1':            # 게임 모드 1번 선택 (5판 3선)
    print('5판 3선승을 시작합니다.')

    while True:         # 몇번 반복될지 알 수 없어 while 문으로 무한 반복
        if player_point == 3 or computer_point == 3:  # 무한 반복 탈출 (플레이어 또는 컴퓨터가 3승시)
            if player_point == 3:                     # 플레이어 3선승으로 승
                print(f'플레이어가 최종 스코어 {player_point}{player_defeat}패로 승리 하였습니다!')  # 조건 6번 (최종스코어 표시)
                print('게임을 종료합니다.')
                break
            elif computer_point == 3:                 # 컴퓨터 3선승으로 승
                print(f'컴퓨터가 최종 스코어 {computer_point}{computer_defeat}패로 승리 하였습니다!')
                print('게임을 종료합니다.')
                break

        player = input('가위, 바위, 보 중 입력하세요: ')  # 플레이어에게 가위, 바위, 보 중 선택 하라는 메세지
        computer = random.choice(computer_choice)  # 컴퓨터는 computer_choice 중에서 랜덤으로 선택

        if player == '가위':     # 플레이어 가위 선택
            if computer == '가위':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')   # 조건 5번 (무얼 선택했는지 출력)
            elif computer == '바위':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '보':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        elif player == '바위':   # 플레이어 바위 선택
            if computer == '바위':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')
            elif computer == '보':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '가위':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        elif player == '보':  # 플레이어 보 선택
            if computer == '보':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')
            elif computer == '가위':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '바위':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        else:  # 플레이어가 가위, 바위, 보를 제외한 단어를 입력할 시 다시 입력하라는 문구
            print('경고: 다시 입력하세요!!!')


elif game_mode == '2':  # 게임 모드 2번 선택 (3판 2선)
    print('3판 2선승을 시작합니다.')

    while True:              # 몇번 반복될지 알 수 없어 while 문으로 무한 반복
        if player_point == 2 or computer_point == 2:  # 무한 반복 탈출 (플레이어 또는 컴퓨터가 2승시)
            if player_point == 2:                     # 플레이어 2선승으로 승
                print(f'플레이어가 최종 스코어 {player_point}{player_defeat}패로 승리 하였습니다!')
                print('게임을 종료합니다.')
                break
            elif computer_point == 2:                 # 컴퓨터 2선승으로 승
                print(f'컴퓨터가 최종 스코어 {computer_point}{computer_defeat}패로 승리 하였습니다!')
                print('게임을 종료합니다.')
                break

        player = input('가위, 바위, 보 중 입력하세요: ')  # 플레이어에게 가위, 바위, 보 중 선택 하라는 메세지
        computer = random.choice(computer_choice)  # 컴퓨터는 computer_choice 중에서 랜덤으로 선택

        if player == '가위':     # 플레이어 가위 선택
            if computer == '가위':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')
            elif computer == '바위':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '보':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        elif player == '바위':   # 플레이어 바위 선택
            if computer == '바위':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')
            elif computer == '보':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '가위':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        elif player == '보':  # 플레이어 보 선택
            if computer == '보':
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [비겼습니다.]')
            elif computer == '가위':
                computer_point += 1
                player_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [컴퓨터 승!]')
            elif computer == '바위':
                player_point += 1
                computer_defeat += 1
                print(f'플레이어 : {player} , 컴퓨터 : {computer} [플레이어 승!]')

        else:  # 플레이어가 가위, 바위, 보를 제외한 단어를 입력할 시 다시 입력하라는 문구
            print('경고: 다시 입력하세요!!!')



요약: 어렵고 복잡한 문법이 멋있는게 아니다. 조건문과 반복문으로도 웬만한건 다 구현 가능!

좋은 웹페이지 즐겨찾기