본문 바로가기
프로그램/Python 1000제

Python 15제] 게임어와 컴퓨터가 숫자게임을 하도록 프로그램을 작성하시오.

by 건티 2021. 8. 9.
728x90

문제]

게임어와 컴퓨터가 카드게임을 하려고 한다. 게임의 규칙은 아래와 같다.
1. 카드를 받을 숫자를 입력하면
2. 컴퓨터는 입력한 숫자 만큼 무작위로 카드를 발생하여 그중 큰 수를 갖는다.
3. 게임어에게는 입력한 숫자 만큼의 카드를 무작위로 발생하여 보여준다.
4. 게임어는 그중 카드를 선택한다.
5. 컴퓨터와 게임어의 숫자를 비교하여 큰 수를 갖은 쪽이 이기는 게임이다.
6. 동점일 경우 다시 할 수 있도록 한다.
7. 카드는 1~5장까지 받을 수 있다.
8. 카드의 수는 1~9까지로 한다.

입출력예시 1]
카드 몇 장 받겠습니까? 2
게임어의 카드 입니다. 번호를 선택하여 주세요.
[1(6), 2(8)]
선택번호 : 2

게임어 수 : 8
컴퓨터 수 : 8

승부를 내지 못하였습니다. 다시하도록 합니다.

카드 몇 장 받겠습니까? 2
게임어의 카드 입니다. 번호를 선택하여 주세요.
[1(6), 2(9)]
선택번호 : 2

게임어 수 : 9
컴퓨터 수 : 8

축하합니다.
게임어가 승리하였습니다.

 

입출력예시 2]
카드 몇 장 받겠습니까? 7
카드는 최대 5장까지 받을 수 있습니다.
다시 입력하세요.

카드 몇 장 받겠습니까? 3
게임어의 카드 입니다. 번호를 선택하여 주세요.
[1(6), 2(8), 3(3)]
선택번호 : 2

게임어 수 : 8
컴퓨터 수 : 9

아쉽습니다.
컴퓨터가 승리하였습니다.

 

 

참고풀이]

import random

while True:
    while True:
        #카드받을 숫자를 입력한다.
        N=int(input("카드 몇 장 받겠습니까? "))
        if 1<= N <=5: break
        print("카드는 최대 5장까지 받을 수 있습니다.")
        print("다시 입력하세요.")

 

    #컴퓨터의 카드 번호를 발생한다.
    Com=random.randint(1,9)
    for i in range(N-1):
        Su=random.randint(1,9)
        if Com<Su:
            Com=Su

 

    #게임어의 수를 발생한다.
    nList=[]
    for i in range(N):
        nList.append(random.randint(1,9))
        
    #게임어가 수를 선택하도록 한다.
    print("게임어의 카드 입니다. 번호를 선택하여 주세요.")
    print("[",end="")
    for i in range(N-1):
        print("%d(%d), "%(i+1,nList[i]), end="")
    print("%d(%d)] "%(N,nList[N-1]), end="")
    Su=int(input("선택번호 : "))
    Player=nList[Su-1]
    
    #게임어와 컴퓨터 수를 비교한다.
    print("\n게임어 수 : %d"%Player)
    print("컴퓨터 수 : %d\n"%Com)
    if Player>Com:
        print("축하합니다.")
        print("게임어가 승리하였습니다.")
        break
    elif Com>Player:
        print("아쉽습니다.")
        print("컴퓨터가 승리하였습니다.")
        break
    else:
        print("승부를 내지 못하였습니다.", end="")
        print("다시하도록 합니다.")

 

출처 ] 사이버외교사절단 반크

 

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 겨울

 

반응형

댓글