DBバインドと効果音の適用
記録結果をDBに保存し,正解/誤答に応じて効果音を適用した.
DBの正解個数/所要時間/実施時間も記録されます.
DBの正解個数/所要時間/実施時間も記録されます.
import random
import time
from typing import Counter
# 사운드 출력 필요 모듈
import winsound
import sqlite3
import datetime
# DB 생성 $ Auto Commit
# 본인 DB 경로
conn = sqlite3.connect('D:/python_basic/resource/records.db', isolation_level=None)
# Cursor 연결
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS records(id INTEGER PRIMARY KEY AUTOINCREMENT, cor_cnt INTEGER, record text, regdate text)")
words = [] #영어 단어 리스트(1000개 로드)
n = 1 # 게임 시도 횟수a
cor_cnt = 0 # 정답 개수
with open('./resource/word.txt', 'r') as f:
for c in f:
words.append(c.strip()) # strip() : 공백 제거
# print(words) # 단어 리스트 확인
input("Ready? Press Enter Key!") # 사용자 입력 대기 (아래 코드 미실행)
# Enter Game Start!
start = time.time() # 시작 시간 기록
while n <= 5 :
random.shuffle(words)
q = random.choice(words)
print()
print("*Question # {}".format(n))
print(q) # 문제 출력
x = input() # 타이핑 입력
print()
if str(q).strip() == str(x).strip(): # 입력 확인 (공백 제거)
print("Pass!")
# 정답 소리 재생
winsound.PlaySound('./sound/good.wav', winsound.SND_FILENAME)
cor_cnt += 1
else:
print("Wrong!")
# 오답 소리 재생
winsound.PlaySound('./sound/bad.wav', winsound.SND_FILENAME)
n += 1 # 다음 문제 전환
end = time.time() # End Time
et = end - start # 총 게임 시간
et = format(et, ".3f") # 소수 셋째 자리 출력 (시간)
if cor_cnt >= 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')))
# 수행 시간 출력
print("게임 시간 : ", et, "초", "정답 개수 : {}".format(cor_cnt))
# 시작 지점
if __name__ == '__main__':
pass
Reference
この問題について(DBバインドと効果音の適用), 我々は、より多くの情報をここで見つけました https://velog.io/@rkde8938/파이썬-타이핑-게임-DB-연동-및-효과음-적용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol