Python

(파이썬) 덧셈 뺄셈 계산하기 게임 프로그램: 사칙연산 더하기 빼기 계산해서 맞추기

고니자니 2023. 12. 16. 13:14
반응형

파이썬으로 덧셈과 뺄셈의 계산 문제를 맞추는 간단한 프로그램을 만들었습니다.

컴퓨터가 임의의 2개의 수와 "+", "-" 부호를 임으로 선택해서 문제를 냅니다.

예를 들어, a=5, b=3, 부호 "+"를 생성했다면

5 + 3 = _  

위와 같이 묻고, 사용자를 계산 결과를 입력해서 맞추는 게임입니다.

이 예제에서는 1~10까지의 수를 생성하게 했습니다.

import random

ocnt = 0
xcnt = 0
answer = 0
for i in range(10):
    print("%d. " % (i+1), end='')
    
    a = random.randint(1, 10)   #1~10까지의 난수(정수) 생성
    b = random.randint(1, 10)
    op = random.choice(['+','-'])  # +, - 부호를 랜덤하게 선택

    if op == '+':
        answer = a + b
    else:   # 연산은 +, - 밖에 없으므로 '+'가 아니면 '-'임
        answer = a - b
        if b>a:       # '-' 연산일때는 큰 수에서 자은 수를 빼도록 큰수를 a로 함
            a,b = b,a

    print(a, op, b, '= ', end='')
    c = int(input())

    if c != answer:
        print('틀렸습니다.')
        xcnt += 1
    else:
        ocnt += 1   # 맞은 개수

print("점수: %d" % (ocnt*10))   #10문제 이므로 1개에 10점씩 계산
print("10번중에서 %d번 틀렸습니다." % xcnt)

(파이썬) 덧셈 뺄셈 계산하기 게임 프로그램: 사칙연산 더하기 빼기 계산해서 맞추기

 

수정하여 난이도 올리기

위 프로그램은 !~10까지의 숫자를 사용하므로 비교적 쉬운 문제를 생성합니다.

자리수를 늘리면 계산하기기 좀 더 어려워 질겁니다.

아래와 같은 형식으로 생성된 수를 좀 더 복잡하게 만들 수 있습니다.

    a = random.randint(1, 100)   #1~100까지의 난수(정수) 생성
    b = random.randint(1, 100)

   

두 자리의 난수를 생성하기 위해서는 다음과 같이 수정하면 됩니다,

 a = random.randint(10, 99)   #10~99까지의 두 자리 숫자의 난수 생성
 b = random.randint(10, 99)

 

부호도 추가할 수 있습니다.

op = random.choice(['+','-','*','/'])  # 더하기, 빼기, 곱하기, 나누기 부호를 랜덤하게 선택

곱하기(*), 나누기(/)가 추가되면 if 문도 조금 수정해야 됩니다.

 

728x90
반응형