반응형
파이썬으로 덧셈과 뺄셈의 계산 문제를 맞추는 간단한 프로그램을 만들었습니다.
컴퓨터가 임의의 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 문도 조금 수정해야 됩니다.
반응형
'Python' 카테고리의 다른 글
(파이썬) 터틀그래픽: 랜덤하게 별 그리기 (94) | 2023.12.18 |
---|---|
(파이썬) 행맨 hangman 게임 소스 (81) | 2023.12.17 |
(파이썬) random.randint(): 숫자 맞추기 게임 (98) | 2023.12.15 |
(파이썬) 터틀 그래픽: 막대 그래프 그리기 (84) | 2023.12.14 |
(파이썬) Label 위젯: 이미지 출력하기 (88) | 2023.12.13 |