반응형
# 타이핑 게임 제작,효과음 적용, DB 연동
# 업그레이드 타이핑 게임 제작
# 타이핑 게임 제작 및 기본 완성
import random
import time
# 사운드
import pygame
import sqlite3
import datetime
# DB 생성 & 오토 커밋
conn = sqlite3.connect('./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
cor_cnt = 0 # 정답 개수
with open('./resource/word.txt','r') as f:
for c in f:
words.append(c.strip())
print(words) # 단어 리스트 확인
input("Ready? Press Enter Key!") # Enter Game Start!
#print(a) # 무조건 string으로
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!")
# 정답 소리 재생
pygame.init()
pygame.mixer.music.load('./sound/good.wav')
pygame.mixer.music.play()
cor_cnt +=1
else:
# 오답 소리 재생
pygame.mixer.music.load('./sound/bad.wav')
pygame.mixer.music.play()
print("Wrong!")
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
예제에서는 winsound를 사용했지만 mac에서는 사용할 수 없어서 pygame 사용
import pygame
pygame.init()
pygame.mixer.music.load(filename)
pygame.mixer.music.play()
반응형
'Algorithm > 자료구조, 알고리즘' 카테고리의 다른 글
[코딩 + 알고리즘 완주반] 11일차. 자료구조, 알고리즘 개요 (0) | 2021.03.25 |
---|---|
[코딩 + 알고리즘 완주반] 11일차. Object Reference (0) | 2021.03.25 |
[코딩 + 알고리즘 완주반] 9일차. 데이터베이스 연동 (SQLite) (0) | 2021.03.23 |
[코딩 알고리즘 완주반] 8일차. 파이썬 외부 파일 처리 ( Excel, CSV 파일) (0) | 2021.03.22 |
[코딩 + 알고리즘 완주반] 8일차. 예외 처리 (0) | 2021.03.22 |