goodthings4me.tistory.com
파이썬 기초 예제로 구구단을 게임으로 만들어보는 코딩 연습임. 구구단 게임 함수의 매개변수로 구구단 단수와 답변 제한 시간(초)을 넘겨주면 실행 게임수를 입력받아 설정하고 랜덤 하게 구구단 문제를 출력해준다.
구구단 게임 코딩 연습
※ 글 마지막 부분에 GUI 프로그램 다운로드 버튼 있음
[파이썬 소스 코드]
def game_gugdan(dans, game_time):
print(f'\n{"="*10} 구구단 게임 {"="*10}\n')
games = '0'
while games == '0' or not games.isdecimal():
games = input('\n몇 게임 할까요? : ')
games = int(games) # 실행 게임수 설정
game_cnt = 0 # 진행 게임수
correct_cnt = 0 # 맞은 게임수
incorrect_cnt = 0 # 틀린 게임수
g_time = game_time # 제한시간(초) 설정
while True:
dan = random.randint(2, dans)
number = random.randint(2, 9)
if game_cnt == games:
print(f'\n총 {games}게임 중\n맞은 게임수: {correct_cnt}\n틀린 게임수: {incorrect_cnt}\n정확도: {(correct_cnt/games)*100:.1f}%')
break
start = time.time()
answer = input(f'\n#{game_cnt + 1} 게임: {dan} X {number} = ')
end = time.time()
# print(f'{start} - {end} = {end - start}')
if not answer.isdigit():
incorrect_cnt += 1
print('오입력, 틀렸습니다!')
elif (end - start) > g_time:
incorrect_cnt += 1
print(f'입력 시간 {g_time}초 경과로 오답 처리합니다.')
elif int(answer) == (dan * number):
correct_cnt += 1
print('맞았습니다!')
else:
incorrect_cnt += 1
print('틀렸습니다!')
game_cnt += 1
dans = 9 # 단수 (9 ~ 19)
game_time = 5 # 응답 시간 제한(초)
game_gugdan(dans, game_time)
- 실행 게임수를 입력받아 설정하고,
- random 함수로 단수와 숫자를 임의를 추출하여 문제를 만든다.
- 입력 시간(매개변수 설정 시간(초))이 초과하면 시간 경과로 오답 처리하고,
- 정수가 아닌 답은 오입력으로 오답 처리한다.
- 실행 게임수를 모두 진행하면 맞은 게임수와 틀린 게임수, 그리고 정답의 정확도를 출력한다.
※ 실행 게임수를 입력받는 while 반복문에 대해 다음과 같이 예외 처리로도 만들 수 있다.
games = 0 # 게임수 설정
while True:
try:
games = int(input('\n몇 게임을 할까요? > '))
if games <= 0:
continue
except:
continue
break
[실행 결과]
========== 구구단 게임 ==========
몇 게임 할까요? : 5
#1 게임: 4 X 2 = 8
맞았습니다!
#2 게임: 5 X 8 = 40
맞았습니다!
#3 게임: 8 X 4 = 35
틀렸습니다!
#4 게임: 9 X 2 = 18
입력 시간 5초 경과로 오답 처리합니다.
#5 게임: 8 X 8 = 66
입력 시간 5초 경과로 오답 처리합니다.
총 5게임 중
맞은 게임수: 2
틀린 게임수: 3
정확도: 40.0%
◎ 구구단 게임 GUI 프로그램
- tkinter로 구현해본 프로그램
- 시작단수와 끝단수는 구구단의 범위(2단 ~ 19단)를 설정함
- 게임수는 진행할 게임수 설정
- 제한시간은 구구단 답을 입력하는 시간을 제한함(입력 시간 초과 시 오답으로 처리)
- 게임 설정을 한 후 '게임 시작' 버튼을 클릭하고 하단에 나오는 구구단에 대해 입력 후 키보드 Enter 키를 누르거나 마우스로 'Enter' 버튼을 클릭함
- 하단 회색 부분에 정답, 오답이 표시되고, 설정된 게임수를 모두 진행하면 회색 부분에 게임 결과가 표시됨
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
판매 데이터 파일(텍스트) 읽고 계산한 후 결과를 저장하기 (0) | 2022.05.09 |
---|---|
파이썬 while문 isdecimal(), isdigit(), isnumeric() 활용하기 (0) | 2022.05.04 |
진수 변환 - 2진수 변환, 8진수 변환, 16진수 변환 [파이썬기초예제] (0) | 2022.04.23 |
가위바위보 게임 [파이썬기초예제] (0) | 2022.04.21 |
bmi 계산하기 - 한국인의 체질량 지수 계산 [파이썬기초예제] (0) | 2022.04.20 |
댓글