Python study
9일차
랜덤연산게임
import random
사용
랜덤으로 뽑은 두 수의 덧셈과 뺄셈 문제가 반복적으로 나오는 프로그램
- 20%의 확률로 200점 짜리 문제가 나오고 25%의 확률로 목숨 2개 짜리 문제가 나오게 한다.
- 쉬움(한자리 수 연산), 노멀(두자리 수 연산), 어려움(세자리 수 연산)으로 난이도 조정을 한다.
- Game out이 될 경우 사용자에게 다시 할 건지 물어보고 yes로 답할 경우 난이도 설정부터 다시 반복되도록 한다.
import random
import os
import time
while 1:
life = 5
score = 0
nan = int(input("난이도 선택 1. 쉬움, 2. 노멀, 3. 어려움 : "))
if nan == 1:
r1 = 1
r2 = 9
elif nan == 2:
r1 = 10
r2 = 99
else :
r1 = 100
r2 = 999
while 1:
print("현재 점수 : {}, 현재 목숨 : {}".format(score, life))
if life <= 0:
break
A = random.randint(r1, r2)
B = random.randint(r1, r2)
op = random.randint(0,1)
l2 = random.randint(1,4)
s200 = random.randint(1,5)
if l2 == 1:
print("목숨 2개 짜리 문제")
목숨 = 2
else :
목숨 = 1
if s200 == 1:
print("200점 짜리 문제")
점수 = 200
else :
점수 = 100
if op == 0:
user = int(input("{} + {} = ".format(A,B)))
C = A+B
else :
user = int(input("{} - {} = ".format(A,B)))
C = A-B
if user == C:
score += 점수
print("정답입니다.")
else :
life -= 목숨
print("오답입니다.")
time.sleep(1)
os.system('cls')
x = input("다시 게임을 시작하시겠습니까? (y/n) : ")
if x == 'n':
print("게임 종료!")
break
A = random.randint(r1, r2)
: 범위를 미리 지정한 변수를 대입 해서 랜덤 함수를 반복해서 점검할 필요 없이 처리해준다.
op = random.randint(0,1)
: 덧셈(0), 뺄셈(1)로 지정해서 랜덤 함수 사용
l2 = random.randint(1,4)
: 1~4까지의 수 중 하나를 목숨 두개 문제로 지정하면 25% 확률로 다룰 수 있다.
s200 = random.randint(1,5)
: 1~5까지의 수 중 하나를 200점 문제로 지정하면 20% 확률로 다룰 수 있다.
if l2 == 1
: if문에서 목숨 = 2
이렇게 변수로 저장을 해준 뒤 if user == C
답을 비교해주는 구문에서 처리해준다.
x = input("다시 게임을 시작하시겠습니까? (y/n) : ")
게임이 끝난 후에 물어봐야하기에 while문 내부의 while문이 break된 후에 작성해 준다.