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

Python 86제] 초등학교 더하기 문제, 게임으로 공부하기 ver 1.

by 건티 2022. 9. 7.
728x90

출처 : 반크_세계유산 창덕궁

 

문제]

10~99사이의 수를 무작위로 발생하여 더하기 문제를 출력하는 게임을 프로그램으로 작성하시오.

조건)

▶ 5문제를 맞추면 계속여부를 확인하시오.

계속여부는 Y/y/N/n만 체크되도록 하시오.

게임을 종료하면 그때까지 출력한 총 문제와 맞춘 개수를 출력하시오.

그외 출력 예를 참조하시오.

 

출력 예)

64 + 81 = 135

아끼비! 집중 화이팅!!

 

90 + 90 = 180

짝짝짝! 정답입니다.

 

37 + 46 = 83

짝짝짝! 정답입니다.

 

54 + 18 = 72

짝짝짝! 정답입니다.

 

48 + 46 = 94

짝짝짝! 정답입니다.

 

99 + 71 = 170

짝짝짝! 정답입니다.

 

계속하시겠습니까?(Y/N) o

Y/y/N/n만 입력하세요.

다시 입력하세요...

 

계속하시겠습니까?(Y/N) n

 

총 6문제 중 5개를 맞추었습니다.

수고하셨습니다.

 

참고풀이]

import random

tot=0 #총 발생된 문제의 수 세는 변수. 초기는 0으로 셋팅한다.
cnt=0 #맞춘 개수를 세는 변수. 초기는 0으로 셋팅한다.
while True:
    #10~99사이의 임의의 정수를 발생한다.
    x=random.randint(10,99)
    y=random.randint(10,99)
    tot+=1
    
    #발생된 수로 더하기 문제를 내어 결과값을 입력하도록 한다.
    xy=int(input(str(x)+" + "+str(y)+" = "))
         
    #게임어가 입력한 값이 맞는 지 체크한다.
    if xy==x+y:
        cnt+=1
        print("짝짝짝! 정답입니다.")
    else:
        print("아까비! 집중 화이팅!!")
        
    #맞춘 개수가 5의 배수이면 게임 계속여부를 체크한다.
    ch='y'
    if cnt>0 and cnt%5==0:
        while True:
            ch=input("\n계속하시겠습니까?(Y/N) ")
            if ch.upper()=='Y' or ch.upper()=='N':
                break
            print("Y/y/N/n만 입력하세요.")
            print("다시 입력하세요...")
    if ch.upper()=='N':
        break
    print()
print(f"\n총 {tot}문제 중 {cnt}개를 맞추었습니다.")
print("수고하셨습니다.")

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

 

반응형

댓글