본문 바로가기
프로그램

[파이썬] 문제 : 숫자 맞추기 게임.

by 오디세이99 2022. 11. 18.
728x90
반응형

1. 숫자 맞추기 게임, 사용자 정의 함수를 하나 이상 활용한다.

1에서 15까지 숫자 중 하나를 생성하는 함수 dice()를 만든다. 
3개를 random 함수를 사용한다. 
만들어진 3개의 값이 a, b, c라고 한다면 b, c값과 (a+b)*c 결과값을 화면에 출력하고, 
숫자 a값을 맞추는 게임을 작성한다.

입력받은 a값이 맞으면 맞았다고 출력하고, 
맞지 않으면 3번까지 다시 입력할 기회를 준다.

 

import random                                # 랜덤 패키지 사용

def dice():                                   # 함수 선언
    rtn = []                                  # 
    for i in range(3):                       # 3개의 값
        rtn.append(random.randint(1, 15))     # 1에서 15까지 숫자 중 하나를 생성
        
    return rtn                               # 3개의 1~15까지 중 랜덤생성 숫자 리턴

lst = dice()                                  # 함수 실행. 리스트 변수를 받음(lst[0]=a, lst[1]=b, lat[2]=c 로 처리)

print(f"a=?, b={lst[1]}, c={lst[2]}, (a+b)*c={(lst[0]+lst[1])*lst[2]}")     # 만들어진 a,b,c 출력
for i in range(3):                            # 3번까지 다시 입력할 기회를 준다.
    n = int(input('a를 맞춰보세요 : '))        # a를 맞추는 입력 받음
    if n == lst[0]:                           # lst는 3개의 임의 생성된 수 리스트. lst[0]은 a 이기때문에 입력한 수와 같으면 맞음
        print('맞았습니다.')                   # 맞습니다 .출력
        break                                 # 3번 맞추는 것을 진행 할 필요없어 break로 for 반복문 빠져나감
    
    if i == 2 and n != lst[0]:                # 3번 중 마지막까지 맞추지 못하면 정답을 보여주면 끝낸다. 3번째 맞춘다면 위 코드에서 빠져나감
        print(f'정답은 {lst[0]}입니다.')

결과

a=?, b=11, c=10, (a+b)*c=150
a를 맞춰보세요 : 3
a를 맞춰보세요 : 4
맞았습니다.
728x90
반응형

댓글