====== 타이핑 게임 제작 (확장) ====== * description : 타이핑 게임 제작 (확장) * author : 도봉산핵주먹 * email : hylee@repia.com * lastupdate : 2020-06-30 ===== 타이핑 게임 제작 (확장) ===== ==== 준비사항 ==== > 아래 파일을 받아 압축을 풀면 sound 폴더가 나오는데 그것을 resource 폴더 와 동일선상에 넣어주고 실행하면 됩니다.\\ > 테스트 후 DB예제에 있던것처럼 툴을 이용해서 데이터를 확인하면 됩니다. \\ {{ :wiki:ai:python:sound.zip |}}\\ \\ ==== 주의사항 ==== > 소리 낮추고 진행하셔야 합니다. \\ \\ ==== 예제 코드 ==== # Section13-2 # 업그레이드 타이핑 게임 제작 # 사운드 적용 및 DB 연동 import random import time # 사운드 출력 필요 모듈 import winsound import sqlite3 import datetime # DB생성 & Autocommit # 본인 DB 파일 경로 # conn = sqlite3.connect('본인이 원하는 경로/records.db', isolation_level=None) conn = sqlite3.connect('D:/python/python_bnasic/resource/records.db', isolation_level=None) # isolation_level=None -> 오토커밋 # Cursor연결 cursor = conn.cursor() # 테이블 생성(Datatype : TEXT NUMERIC INTEGER REAL BLOB) cursor.execute( "CREATE TABLE IF NOT EXISTS records(id INTEGER PRIMARY KEY AUTOINCREMENT, cor_cnt INTEGER, record text, regdate text)" ) words = [] # 영어 단어 리스트(1000개 로드) n = 1 # 게임 시도 횟수 cor_cnt = 0 # 정답 개수 with open('./resource/word.txt', 'r') as f: # 문제 txt 파일 로드 for c in f: words.append(c.strip()) # print(words) # 단어 리스트 확인 input("Ready? Press Enter Key!") # Enter Game Start! start = time.time() # Start Time while n <= 5: # 5회 반복 random.shuffle(words) # List shuffle! q = random.choice(words) # List -> words random extract! # print() print("*Question # {}".format(n)) print(q) # 문제 출력 x = input() # 타이핑 입력 # print() if str(q).strip() == str(x).strip(): # 입력 확인(공백제거) winsound.PlaySound( # 정답 소리 재생 './sound/good.wav', winsound.SND_FILENAME ) print("Pass!") cor_cnt += 1 # 정답 개수 카운트 else: winsound.PlaySound( # 오답 소리 재생 './sound/bad.wav', winsound.SND_FILENAME ) print("Wrong!") n += 1 # 다음 문제 전환 end = time.time() # End Time et = end - start # 총 게임 시간 et = format(et, ".3f") # 소수 셋째 자리 출력(시간) print() print('--------------') if cor_cnt >= 3: # 3개 이상 합격 print("결과 : 합격") else: print("불합격") # 기록 DB 삽입 cursor.execute( "INSERT INTO records('cor_cnt', 'record', 'regdate') VALUES (?, ?, ?)", ( cor_cnt, et, datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), ) ) # 접속 해제 conn.close() # 수행 시간 출력 print("게임 시간 :", et, "초", "정답 개수 : {}".format(cor_cnt)) ==== 실행 콘솔 ==== Ready? Press Enter Key! *Question # 1 configurations con Wrong! *Question # 2 connector connector Pass! *Question # 3 fit fit Pass! *Question # 4 nose no Wrong! *Question # 5 impressed impressed Pass! -------------- 결과 : 합격 게임 시간 : 35.729 초 정답 개수 : 3 ===== Tip ===== {{tag>도봉산핵주먹 python }}