Advertisement
Guest User

bcccccccccccccccccccccc

a guest
Dec 13th, 2019
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. # Section13-2
  2. # 업그레이드 타이핑 게임 제작
  3. # 사운드 적용 및 DB 연동
  4.  
  5. import random
  6. import time
  7. # 사운드 출력 필요 모듈
  8. import winsound
  9. import sqlite3
  10. import datetime
  11.  
  12. # DB생성 & Autocommit
  13. # 본인 DB 파일 경로
  14. conn = sqlite3.connect('./records.db', isolation_level=None)
  15.  
  16. # Cursor연결
  17. cursor = conn.cursor()
  18.  
  19. # 테이블 생성(Datatype : TEXT NUMERIC INTEGER REAL BLOB)
  20. cursor.execute(
  21. "CREATE TABLE IF NOT EXISTS records(시행횟수INTEGER PRIMARY KEY AUTOINCREMENT, 정답갯수 INTEGER, 실행시간 text, 기록시간 text)"
  22. )
  23.  
  24. words = [] # 영어 단어 리스트(1000개 로드)
  25.  
  26. n = 1 # 게임 시도 횟수
  27. cor_cnt = 0 # 정답 개수
  28.  
  29. with open('./resource/word.txt', 'r') as f: # 문제 txt 파일 로드
  30. for c in f:
  31. words.append(c.strip())
  32.  
  33. print(words) # 단어 리스트 확인
  34.  
  35. input("Ready? Press Enter Key!") # Enter Game Start!
  36.  
  37. start = time.time() # Start Time
  38.  
  39. while n <= 5: # 5회 반복
  40. random.shuffle(words) # List shuffle!
  41. q = random.choice(words) # List -> words random extract!
  42.  
  43.  
  44. print("*Question # {}".format(n))
  45. print(q) # 문제 출력
  46.  
  47. x = input() # 타이핑 입력
  48.  
  49.  
  50. if str(q).strip() == str(x).strip(): # 입력 확인(공백제거)
  51. winsound.PlaySound( # 정답 소리 재생
  52. './sound/good.wav',
  53. winsound.SND_FILENAME
  54. )
  55. print("Pass!")
  56. cor_cnt += 1 # 정답 개수 카운트
  57.  
  58. else:
  59. winsound.PlaySound( # 오답 소리 재생
  60. './sound/bad.wav',
  61. winsound.SND_FILENAME
  62. )
  63.  
  64. print("Wrong!")
  65.  
  66. n += 1 # 다음 문제 전환
  67.  
  68. end = time.time() # End Time
  69. et = end - start # 총 게임 시간
  70.  
  71. et = format(et, ".3f") # 소수 셋째 자리 출력(시간)
  72.  
  73. print()
  74. print('--------------')
  75.  
  76.  
  77. if cor_cnt >= 5: # 3개 이상 합격
  78. print("결과 : 합격")
  79. else:
  80. print("불합격")
  81.  
  82. # 기록 DB 삽입
  83. cursor.execute(
  84. "INSERT INTO records('cor_cnt', 'record', 'regdate') VALUES (?, ?, ?)",
  85. (
  86. cor_cnt, et, datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
  87. )
  88. )
  89.  
  90. # 접속 해제
  91. conn.close()
  92.  
  93. # 수행 시간 출력
  94. print("게임 시간 :", et, "초", "정답 개수 : {}".format(cor_cnt))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement