톱 1445 파이썬 타자 연습 프로그램 새로운 업데이트 138 시간 전

주제에 대한 기사를 찾고 있습니까 “파이썬 타자 연습 프로그램“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 k1.krabirelaxytour.com 탐색에서: https://k1.krabirelaxytour.com/blog. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 파이썬 타자 연습 프로그램 타자연습 프로그램 만들기, 타자 연습 프로그램 소스, 파이썬 타자게임, C 언어 타자 연습 정확도, 한컴타자연습, 파이썬 간단한 프로그램, 파이썬 간단한 프로그램 만들기

[Python/파이썬] 간단한 타자연습 프로그램 만들기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from random import * import time f = open ( “all.txt” , “rt” ) l1 = f.readlines() l2 = [] for i in l1: l2.append(i[: – 1 ]) shuffle(l2) start = time.time() x = input(l2[ 0 ] + “

” ) if ( x = = l2[ 0 ]): print ( “correct!” ) else : print ( “wrong!” ) end = time.time() dur = end – start res = ( len (l2[ 0 ]) / dur) * 60 print ( “Time : %.2f, Result : %.2f” %(dur, res) ) Colored by Color Scripter cs

다음에 발전시킬 수 있는 것 : 예문 추가하기, 정확도 %로 만들어 출력하기, 프로그램 계속 실행시키기, 장문 타자 연습

[Python/파이썬] 간단한 타자연습 프로그램 만들기 … 것 : 예문 추가하기, 정확도 %로 만들어 출력하기, 프로그램 계속 실행시키기, 장문 타자 연습 …

  • Source: cvos.tistory.com
  • Views: 66754
  • Publish date: 28 minute ago
  • Downloads: 70492
  • Likes: 5960
  • Dislikes: 3
  • Title Website: [Python/파이썬] 간단한 타자연습 프로그램 만들기
  • Description Website: [Python/파이썬] 간단한 타자연습 프로그램 만들기 … 것 : 예문 추가하기, 정확도 %로 만들어 출력하기, 프로그램 계속 실행시키기, 장문 타자 연습 …

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 40111
  • Date: 23 hours ago
  • Download: 89724
  • Likes: 9751
  • Dislikes: 9

파이썬] 간단한 타자연습 프로그램 만들기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from random import * import time f = open ( “all.txt” , “rt” ) l1 = f.readlines() l2 = [] for i in l1: l2.append(i[: – 1 ]) shuffle(l2) start = time.time() x = input(l2[ 0 ] + ”

” ) if ( x = = l2[ 0 ]): print ( “correct!” ) else : print ( “wrong!” ) end = time.time() dur = end – start res = ( len (l2[ 0 ]) / dur) * 60 print ( “Time : %.2f, Result : %.2f” %(dur, res) ) Colored by Color Scripter cs

위 코드와 동일한 파일 경로에 all.txt 예문을 생성하고 코드를 실행시키면 된다.

all.txt 안에 다음 문장들을 예문으로 추가하였다.

Where am I?

What time is it now? It is a quarter past nine by my watch.

You will not be able to persuade that obstinate man.

You will have to submit to your fate whether you will or not.

Will you have time enough to do this for me tomorrow?

How much will you need? I will need two thousand won

541타가 나왔다. 평소의 내 영타 속도와 얼추 비슷하다.

다음에 발전시킬 수 있는 것 : 예문 추가하기, 정확도 %로 만들어 출력하기, 프로그램 계속 실행시키기, 장문 타자 연습

(인프런) 06. 간단한 한컴타자연습 만들기 – 30살 인공지능 도전기

import time import random import os os.system(“cls”) WORD_LIST = [ “남박사의 파이썬 100% 실전 프로그래밍 강좌”, “파이썬에서는 ord() 함수는 문자의 유니코드 값을 알아오는 함수로 10진수 값을 리턴합니다.”, “chr(x)는 유니코드 10진수 값을 입력하면 해당하는 문자를 리턴합니다.”, “UTF-8은 유니코드를 8비트 기반으로 저장하는 인코딩 방식입니다”, “CP949는 윈도우에서 사용하기 위해 EUC-KR 확장해서 만든 문자셋 입니다.”, “파이썬은 코드가 짧고 유연하여 가독성과 생산성이 좋은 프로그래밍 언어 입니다.”, “코딩하세요 코딩~”, “독도는 우리땅” ] random.shuffle(WORD_LIST) for q in WORD_LIST: start_time = time.time() user_input = str(input(q + ‘

‘)).strip() end_time = time.time() – start_time if user_input == “/exit”: break correct =0 for i,c in enumerate(user_input): if i>=len(q): break if c == q[i]: correct +=1 total_len = len(q) c = correct/total_len*100 e = (total_len – correct)/total_len*100 speed = (correct/end_time) *60 print(“속도 : {:0.2f} 정확도 : {:0.2f} 오타율 : {:0.2f}”.format(speed, c,e))

26 thg 5, 2021 — import time import random import os os.system(“cls”) WORD_LIST = [ “남박사의 파이썬 100% 실전 프로그래밍 강좌”, “파이썬에서는 ord() 함수는 …

  • Source: 30aichallenge.tistory.com
  • Views: 91820
  • Publish date: 16 hours ago
  • Downloads: 28201
  • Likes: 4030
  • Dislikes: 4
  • Title Website: (인프런) 06. 간단한 한컴타자연습 만들기 – 30살 인공지능 도전기
  • Description Website: 26 thg 5, 2021 — import time import random import os os.system(“cls”) WORD_LIST = [ “남박사의 파이썬 100% 실전 프로그래밍 강좌”, “파이썬에서는 ord() 함수는 …

세부 정보를 보려면 여기를 클릭하십시오.

파이썬으로 한메타자같은 타이핑 게임 만들기

  • Source: Youtube
  • Views: 53732
  • Date: 12 minute ago
  • Download: 45735
  • Likes: 100
  • Dislikes: 3

(인프런) 06. 간단한 한컴타자연습 만들기

import time import random import os os.system(“cls”) WORD_LIST = [ “남박사의 파이썬 100% 실전 프로그래밍 강좌”, “파이썬에서는 ord() 함수는 문자의 유니코드 값을 알아오는 함수로 10진수 값을 리턴합니다.”, “chr(x)는 유니코드 10진수 값을 입력하면 해당하는 문자를 리턴합니다.”, “UTF-8은 유니코드를 8비트 기반으로 저장하는 인코딩 방식입니다”, “CP949는 윈도우에서 사용하기 위해 EUC-KR 확장해서 만든 문자셋 입니다.”, “파이썬은 코드가 짧고 유연하여 가독성과 생산성이 좋은 프로그래밍 언어 입니다.”, “코딩하세요 코딩~”, “독도는 우리땅” ] random.shuffle(WORD_LIST) for q in WORD_LIST: start_time = time.time() user_input = str(input(q + ‘

‘)).strip() end_time = time.time() – start_time if user_input == “/exit”: break correct =0 for i,c in enumerate(user_input): if i>=len(q): break if c == q[i]: correct +=1 total_len = len(q) c = correct/total_len*100 e = (total_len – correct)/total_len*100 speed = (correct/end_time) *60 print(“속도 : {:0.2f} 정확도 : {:0.2f} 오타율 : {:0.2f}”.format(speed, c,e))

파이썬 예제 (타자연습게임) – 오션코딩학원

def initUI(self): #컨트롤 레이아웃 박스 self.vbox = QVBoxLayout() self.hbox = QHBoxLayout() #한글 영어 선택 self.lang = QComboBox() self.lang.addItem(‘한글’) self.lang.addItem(‘영어’) self.lang.setCurrentIndex(0) #난이도 self.level = QComboBox() self.level.addItem(‘초보자’) self.level.addItem(‘중급자’) self.level.addItem(‘전문가’) self.level.setCurrentIndex(0) #단어 입력창 self.edit = QLineEdit() #게임 시작버튼 self.btn = QPushButton(‘게임시작’) self.btn.setCheckable(True) self.btn.toggled.connect(self.toggleButton) #수평 레이아웃 위젯 추가 self.hbox.addWidget(self.lang) self.hbox.addWidget(self.level) self.hbox.addWidget(self.edit) self.hbox.addWidget(self.btn) self.vbox.addStretch(1) self.vbox.addLayout(self.hbox) self.setLayout(self.vbox) self.setGeometry(100,100, 500,500) self.setWindowTitle(‘파이썬 문법 타자연습’) self.map = map.CMap(self) 한, 영 선택 콤보박스와 난이도 콤보박스, 단어 입력 라인에디트, 게임 시작 토글 버튼을 구성해 화면의 하단에 배치하고 상단은 단어가 떨어지는 화면으로 구성합니다.

9 thg 4, 2019 — 전체 프로그램 소스는 크게 3개의 모듈로 구성되어 있습니다. 1. map.py (단어 클래스 및 게임 진행 클래스로 구성) ?

  • Source: oceancoding.blogspot.com
  • Views: 72261
  • Publish date: 12 hours ago
  • Downloads: 75544
  • Likes: 4546
  • Dislikes: 10
  • Title Website: 파이썬 예제 (타자연습게임) – 오션코딩학원
  • Description Website: 9 thg 4, 2019 — 전체 프로그램 소스는 크게 3개의 모듈로 구성되어 있습니다. 1. map.py (단어 클래스 및 게임 진행 클래스로 구성) ?

세부 정보를 보려면 여기를 클릭하십시오.

(초급) 재미있는 코딩(2), 타자연습 만들기, 파이썬 프로그램 작성(2)

  • Source: Youtube
  • Views: 20784
  • Date: 16 hours ago
  • Download: 5672
  • Likes: 2156
  • Dislikes: 7

파이썬 예제 (타자연습게임)

이 코드를 이해하기 위해 필요한 사전 지식입니다.

1. 파이썬 자료형 (정수, 문자, 튜플, 리스트)

2. 파이썬 모듈 (C++의 #include와 유사)

3. 파이썬 클래스 (상속, 객체변수, 생성자) 및 쓰레드, 동기화

4. PyQt5 클래스 이해 (QPoint, QRect, QWidget, QPainter, QLayoutBox 등)

전체 프로그램 소스는 크게 3개의 모듈로 구성되어 있습니다.

1. map.py (단어 클래스 및 게임 진행 클래스로 구성)

from PyQt5.QtCore import QPointF, QRect from PyQt5.QtGui import QFont from threading import Thread, Lock from random import randint from time import sleep # 튜플 단어장 kor = (‘문자열’, ‘정수’, ‘리스트’, ‘튜플’, ‘딕셔너리’, ‘타입’, ‘출력’, ‘반복문’, ‘변수’, ‘파이썬’) eng = (‘input’, ‘int’, ‘string’, ‘type’, ‘list’, ‘class’, ‘print’, ‘python’, ‘tuple’, ‘for’, ‘if’, ‘while’, ‘thread’, ‘random’, ‘with’, ‘__init__’, ‘__del__’) class CWord: def __init__(self, pt, word): # 단어 좌표 self.pt = pt # 단어 문자 self.word = word class CMap: def __init__(self, parent): self.parent = parent self.rect = parent.rect() self.word = [] self.thread = Thread(target=self.play) self.bthread = False self.lock = Lock() def __del__(self): self.gameOver() def gameStart(self, lang, level): self.lang = lang self.level = level self.bthread = True if self.thread.is_alive() == False: self.thread = Thread(target=self.play) self.thread.start() def gameOver(self): self.bthread = False self.word.clear() self.parent.update() def draw(self, qp): qp.setFont(QFont(‘맑은 고딕’, 12)) self.lock.acquire() for w in self.word: qp.drawText(w.pt, w.word) self.lock.release() def createWord(self): self.rect= QRect(self.parent.rect()) # 무작위 단어 선정 str = ” if self.lang==0: n = randint(0, len(kor)-1) str = kor[n] else: n = randint(0, len(eng)-1) str = eng[n] # 무작위 좌표 선정 x = randint(0, self.rect.width()-50) y = 0 cword = CWord(QPointF(x,y), str) self.word.append(cword) def downWord(self, speed): i=0 for w in self.word[:]: if w.pt.y() < self.rect.bottom(): w.pt.setY(w.pt.y()+speed) i+=1 else: del(self.word[i]) def delword(self, str): self.lock.acquire() i=0 find = False for w in self.word[:]: if str == w.word: del(self.word[i]) find = True break else: i+=1 self.lock.release() if find: self.parent.update() def play(self): while self.bthread: if randint(1,200) == 1: self.lock.acquire() self.createWord() self.lock.release() self.lock.acquire() if self.level == 0: self.downWord(0.3) elif self.level == 1: self.downWord(0.5) else: self.downWord(0.7) self.lock.release() self.parent.update() sleep(0.01) 2. window.py (윈도우 창 클래스, map을 has A 구조 객체 변수로 가짐) from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * import map class CWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): #컨트롤 레이아웃 박스 self.vbox = QVBoxLayout() self.hbox = QHBoxLayout() #한글 영어 선택 self.lang = QComboBox() self.lang.addItem('한글') self.lang.addItem('영어') self.lang.setCurrentIndex(0) #난이도 self.level = QComboBox() self.level.addItem('초보자') self.level.addItem('중급자') self.level.addItem('전문가') self.level.setCurrentIndex(0) #단어 입력창 self.edit = QLineEdit() #게임 시작버튼 self.btn = QPushButton('게임시작') self.btn.setCheckable(True) self.btn.toggled.connect(self.toggleButton) #수평 레이아웃 위젯 추가 self.hbox.addWidget(self.lang) self.hbox.addWidget(self.level) self.hbox.addWidget(self.edit) self.hbox.addWidget(self.btn) self.vbox.addStretch(1) self.vbox.addLayout(self.hbox) self.setLayout(self.vbox) self.setGeometry(100,100, 500,500) self.setWindowTitle('파이썬 문법 타자연습') self.map = map.CMap(self) def closeEvent(self, e): self.map.gameOver() def paintEvent(self, e): qp = QPainter(); qp.begin(self) self.map.draw(qp) qp.end() def toggleButton(self, state): if state: self.map.gameStart(self.lang.currentIndex(), self.level.currentIndex()) self.btn.setText('게임종료') self.lang.setEnabled(False) self.level.setEnabled(False) else: self.map.gameOver() self.btn.setText('게임시작') self.lang.setEnabled(True) self.level.setEnabled(True) def keyPressEvent(self, e): # 계속 포커스를 가지도록 self.edit.setFocus() # 엔터키 입력시 단어 확인 if e.key() == Qt.Key_Return: self.map.delword(self.edit.text()) self.edit.setText('') 3. main.py (앱 실행) import sys from window import * QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) if __name__ == '__main__': app = QApplication(sys.argv) w = CWidget() w.show() sys.exit(app.exec_()) 파이썬에서 모듈은 하나의 소스코드 파일이 지나치게 길어지는 것을 막아주며, 코드를 모듈별로 나누어 사용할 수 있는 방법입니다. 그럼 바로 코드 분석에 들어가 보겠습니다. 1. map.py 코드 분석 먼저 해당 파일에 필요한 PyQt5 및 쓰레드 등 모듈을 불러오는 코드입니다. from PyQt5.QtCore import QPointF, QRect from PyQt5.QtGui import QFont from threading import Thread, Lock from random import randint from time import sleep 튜플로 한글, 영어 단어를 저장하는 변수 입니다. # 튜플 단어장 kor = ('문자열', '정수', '리스트', '튜플', '딕셔너리', '타입', '출력', '반복문', '변수', '파이썬') eng = ('input', 'int', 'string', 'type', 'list', 'class', 'print', 'python', 'tuple', 'for', 'if', 'while', 'thread', 'random', 'with', '__init__', '__del__') 직접 코드를 수정해 단어를 추가한다면 더 다양한 단어연습이 가능합니다. CWord 클래스는 좌표와 단어의 문자열을 저장하는 역할을 담당하는 클래스입니다. class CWord: def __init__(self, pt, word): # 단어 좌표 self.pt = pt # 단어 문자 self.word = word 나중에 게임을 관리하는 CMap 클래스에 CWord를 저장하는 리스트를 만들어 단어 클래스의 객체들을 관리합니다. CMap 클래스는 전체 게임을 관리하는 클래스 입니다. class CMap: def __init__(self, parent): self.parent = parent self.rect = parent.rect() self.word = [] self.thread = Thread(target=self.play) self.bthread = False self.lock = Lock() def __del__(self): self.gameOver() 생성자에서 부모 윈도우를 인자로 넘겨 받은 후, 부모 윈도우의 크기를 이용해 단어가 표시되는 영역을 지정합니다. 또한 CWord 클래스를 관리하는 리스트와 게임을 진행하는 쓰레드(실행흐름)도 생성합니다. 쓰레드에서 사용되는 공유자원에 대한 동기화 처리를 위해 Lock도 생성해 둡니다. gameStart() 함수는 부모 윈도우에서 호출되며, 단어 언어(한, 영) 종류와 난이도가 전달인자로 넘어옵니다. def gameStart(self, lang, level): self.lang = lang self.level = level self.bthread = True if self.thread.is_alive() == False: self.thread = Thread(target=self.play) self.thread.start() 또한, 게임 종료 시 재 시작이 가능하도록 쓰레드가 죽었는지 확인하고, 다시 쓰레드를 가동하는 코드를 포함합니다. gameOver() 함수는 쓰레드 내부 무한루프를 중지하는 변수를 거짓으로 설정해 쓰레드를 정지하고, 단어 리스트를 전체 삭제한 후, 부모 윈도우로 다시 그리기 이벤트를 보냅니다. def gameOver(self): self.bthread = False self.word.clear() self.parent.update() 단어 리스트가 모두 삭제되었다면, 화면에서도 사라지게 하기 위함입니다. draw() 함수는 부모 윈도우의 paintEvent()에서 호출되는 함수이며, 부모의 QPainter 객체를 넘겨 받아, 단어리스트의 단어들을 출력해주는 역할을 담당합니다. def draw(self, qp): qp.setFont(QFont('맑은 고딕', 12)) self.lock.acquire() for w in self.word: qp.drawText(w.pt, w.word) self.lock.release() 부모 윈도우가 그리는 것 보다는 부모의 QPainter 객체를 넘겨 받아 그리기 권한을 위임 받는 형태가 클래스 설계상 더 좋습니다. 또한 자신의 쓰레드에서 단어리스트 공유 자원에 접근하므로, 메인 쓰레드에서 발생하는 그리기 명령과 Lock을 이용해 동기화 처리가 필요합니다. 쓰레드 동기화는 내용이 너무 방대하므로, 간략히 설명하면 내가 공유자원(화장실 변기)을 쓰는 동안 다른 실행흐름(쓰레드)들이 문을 열고 들어와 같이 볼일을 보는 불상사를 막고자 문을 잠그는 행위(acquire), 볼일을 본 후 다른 쓰레드도 이용하도록 문을 해제(release)하는 것입니다. createWord() 함수는 단어의 글자를 무작위로 선택하고, 단어가 출발하는 지점인 화면 위 x 좌표 또한 무작위로 정해 단어 리스트에 추가하는 기능을 담당합니다. def createWord(self): self.rect= QRect(self.parent.rect()) # 무작위 단어 선정 str = '' if self.lang==0: n = randint(0, len(kor)-1) str = kor[n] else: n = randint(0, len(eng)-1) str = eng[n] # 무작위 좌표 선정 x = randint(0, self.rect.width()-50) y = 0 cword = CWord(QPointF(x,y), str) self.word.append(cword) downWord() 함수는 단어리스트에 있는 단어들을 화면 아래로 내려가도록 보여주는 역할을 담당합니다. def downWord(self, speed): i=0 for w in self.word[:]: if w.pt.y() < self.rect.bottom(): w.pt.setY(w.pt.y()+speed) i+=1 else: del(self.word[i]) 다만 화면의 아래 Y 좌표 보다 크다면, 단어리스트에서 단어를 해야 하겠죠. delWord() 함수는 부모 윈도우에서 엔터키를 누르면 호출되며, 전달인자로 입력창에 적힌 문자를 넘겨 받아 단어 리스트에 있는지 확인한 후, 해당 단어가 있다면 삭제하는 기능을 담당합니다. def delword(self, str): self.lock.acquire() i=0 find = False for w in self.word[:]: if str == w.word: del(self.word[i]) find = True break else: i+=1 self.lock.release() if find: self.parent.update() 유심히 봐야 할 부분은 리스트의 삭제시 반복자 인덱스에 문제가 없도록 리스트 슬라이싱기법을 통해 복사본을 생성하여 원본을 삭제하는 부분입니다. play() 함수는 쓰레드 함수이며, 단어를 생성하고 아래로 좌표를 이동시키는 역할을 담당합니다. def play(self): while self.bthread: if randint(1,200) == 1: self.lock.acquire() self.createWord() self.lock.release() self.lock.acquire() if self.level == 0: self.downWord(0.3) elif self.level == 1: self.downWord(0.5) else: self.downWord(0.7) self.lock.release() self.parent.update() sleep(0.01) 단어의 생성은 쓰레드의 호출 간격이 짧아 200분의 1의 확률로 생성되도록 하였으며, 단어의 떨어지는 속도는 난이도에 따라 차등을 두었습니다. 해당 쓰레드는 무한 루프로 구성되어 있으며, 0.01초 주기를 갖고 반복적으로 단어의 생성과 이동을 수행합니다. 2. window.py 코드 분석 먼저 필요한 모듈을 불러옵니다. from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * import map CWidget 클래스는 Qt의 QWidget 클래스를 상속받은 클래스이며, 메인 윈도우 창을 생성합니다. class CWidget(QWidget): def __init__(self): super().__init__() self.initUI() initUI() 함수는 윈도우 창을 수직, 수평 레이아웃 박스를 이용해 컨트롤을 배치하는 역할을 담당합니다. def initUI(self): #컨트롤 레이아웃 박스 self.vbox = QVBoxLayout() self.hbox = QHBoxLayout() #한글 영어 선택 self.lang = QComboBox() self.lang.addItem('한글') self.lang.addItem('영어') self.lang.setCurrentIndex(0) #난이도 self.level = QComboBox() self.level.addItem('초보자') self.level.addItem('중급자') self.level.addItem('전문가') self.level.setCurrentIndex(0) #단어 입력창 self.edit = QLineEdit() #게임 시작버튼 self.btn = QPushButton('게임시작') self.btn.setCheckable(True) self.btn.toggled.connect(self.toggleButton) #수평 레이아웃 위젯 추가 self.hbox.addWidget(self.lang) self.hbox.addWidget(self.level) self.hbox.addWidget(self.edit) self.hbox.addWidget(self.btn) self.vbox.addStretch(1) self.vbox.addLayout(self.hbox) self.setLayout(self.vbox) self.setGeometry(100,100, 500,500) self.setWindowTitle('파이썬 문법 타자연습') self.map = map.CMap(self) 한, 영 선택 콤보박스와 난이도 콤보박스, 단어 입력 라인에디트, 게임 시작 토글 버튼을 구성해 화면의 하단에 배치하고 상단은 단어가 떨어지는 화면으로 구성합니다. closeEvent() 함수는 윈도우 창 우 상단 'X 버튼'을 누르면 호출되며, 위젯 종료시 CMap 클래스의 게임 종료 함수를 호출해 쓰레드를 중지시킵니다. def closeEvent(self, e): self.map.gameOver() paintEvent() 함수는 윈도우를 새로 그려야 할 필요(화면크기변경, 가려졌다 나타나는 경우 등)가 있을때 마다 호출되는 QWidget의 오버라이딩 함수(재정의)이며, 그리기 권한을 CMap으로 넘기기 위해 CMap 클래스의 draw()함수를 매번 호출합니다. 실제 그림을 그리는 행위는 CMap이 담당하게 되는 것이죠. def paintEvent(self, e): qp = QPainter(); qp.begin(self) self.map.draw(qp) qp.end() toggleButton() 함수는 게임 시작버튼이 눌러지면 호출되는 시그널의 슬롯과 연결되어 호출되며, CMap 클래스의 게임시작 함수를 호출해 게임을 시작시킵니다. 게임 시작 시 언어선택과 난이도 선택이 비 활성화 되도록 하고, 종료시 활성화 시킵니다. def toggleButton(self, state): if state: self.map.gameStart(self.lang.currentIndex(), self.level.currentIndex()) self.btn.setText('게임종료') self.lang.setEnabled(False) self.level.setEnabled(False) else: self.map.gameOver() self.btn.setText('게임시작') self.lang.setEnabled(True) self.level.setEnabled(True) keyPressEvent() 함수는 키보드가 눌러지면 호출되는 QWidget의 오버라이딩(재정의) 함수이며, 키보드를 누를때 마다 단어입력창에 포커스를 주고, 엔터키를 입력하면 입력창의 단어가 화면상에 표시되어 있는 단어인지 체크하는 함수 delWord()를 호출합니다. def keyPressEvent(self, e): # 계속 포커스를 가지도록 self.edit.setFocus() # 엔터키 입력시 단어 확인 if e.key() == Qt.Key_Return: self.map.delword(self.edit.text()) self.edit.setText('') 먼저 필요한 모듈을 불러옵니다.는 Qt의 QWidget 클래스를 상속받은 클래스이며, 메인 윈도우 창을 생성합니다.initUI() 함수는 윈도우 창을 수직, 수평 레이아웃 박스를 이용해 컨트롤을 배치하는 역할을 담당합니다.한, 영 선택 콤보박스와 난이도 콤보박스, 단어 입력 라인에디트, 게임 시작 토글 버튼을 구성해 화면의 하단에 배치하고 상단은 단어가 떨어지는 화면으로 구성합니다.closeEvent() 함수는 윈도우 창 우 상단 'X 버튼'을 누르면 호출되며, 위젯 종료시 CMap 클래스의 게임 종료 함수를 호출해 쓰레드를 중지시킵니다.paintEvent() 함수는 윈도우를 새로 그려야 할 필요(화면크기변경, 가려졌다 나타나는 경우 등)가 있을때 마다 호출되는 QWidget의 오버라이딩 함수(재정의)이며, 그리기 권한을 CMap으로 넘기기 위해 CMap 클래스의 draw()함수를 매번 호출합니다.실제 그림을 그리는 행위는 CMap이 담당하게 되는 것이죠.toggleButton() 함수는 게임 시작버튼이 눌러지면 호출되는 시그널의 슬롯과 연결되어 호출되며, CMap 클래스의 게임시작 함수를 호출해 게임을 시작시킵니다.게임 시작 시 언어선택과 난이도 선택이 비 활성화 되도록 하고, 종료시 활성화 시킵니다.keyPressEvent() 함수는 키보드가 눌러지면 호출되는 QWidget의 오버라이딩(재정의) 함수이며, 키보드를 누를때 마다 단어입력창에 포커스를 주고, 엔터키를 입력하면 입력창의 단어가 화면상에 표시되어 있는 단어인지 체크하는 함수 delWord()를 호출합니다. 3. main.py 코드 분석 프로그램의 시작점 역할을 하는 메인함수 입니다. if __name__ == '__main__': app = QApplication(sys.argv) w = CWidget() w.show() sys.exit(app.exec_()) 먼저 모듈로 불러들여진 것이 아님을 체크하는 if 문이 있고 __name__이 메인이면, Qt의 QApplication 객체를 생성합니다. QApplication 클래스는 Qt GUI 프로그램들이 필수적으로 가져야 할 이벤트 루프를 생성해 처리하는 역할을 주로 담당하며, MFC의 CWinApp와 비슷합니다. 신기한 부분은 QApplication 은 실제 눈이 보이는 QWidget 클래스와 아무런 연결관계를 코드에서 찾을 수 없지만 app.exec() 를 수행하면 윈도우가 실행되어 동작하는 현상이 나타납니다. MFC는 CWinApp 클래스 내부를 살펴보면 CMainFrame, CView, CDoc 클래스의 객체를 생성해 관계를 만드는 코드를 찾아 볼 수 있지만 Qt는 이런 부분이 없습니다. 하지만 분명한 사실은 QApplication의 객체 생성 시점이 QWidget 보다 늦다면 아래와 같은 에러가 뜹니다. " QWidget: Must construct a QApplication before a QWidget " 분명히 둘은 무슨 관계를 가지고 있다는 사실이죠. 궁금해 C++ QWidget.cpp 코드를 살펴 보니, QApplication은 qApp 라는 전역 변수를 제공하고 QWidget 코드 내부에서 이를 참조하는 형태로 연결이 이루어져 있네요. MFC의 theApp 가 생각납니다. 이상으로 전체 코드 분석을 마칩니다. pyinstaller로 제작한 실행파일 링크 : 개발 환경 운영체제 : MS Windows 10 Pro 개발 언어 : Python 3.7 (32bit), PyQt5 (5.11.3) 개발 도구 : MS Visual Studio 2017 Pro 감사합니다. 프로그램의 시작점 역할을 하는 메인함수 입니다.먼저 모듈로 불러들여진 것이 아님을 체크하는 if 문이 있고 __name__이 메인이면, Qt의 QApplication 객체를 생성합니다.QApplication 클래스는 Qt GUI 프로그램들이 필수적으로 가져야 할 이벤트 루프를 생성해 처리하는 역할을 주로 담당하며, MFC의 CWinApp와 비슷합니다.신기한 부분은 QApplication 은 실제 눈이 보이는 QWidget 클래스와 아무런 연결관계를 코드에서 찾을 수 없지만 app.exec() 를 수행하면 윈도우가 실행되어 동작하는 현상이 나타납니다.MFC는 CWinApp 클래스 내부를 살펴보면 CMainFrame, CView, CDoc 클래스의 객체를 생성해 관계를 만드는 코드를 찾아 볼 수 있지만 Qt는 이런 부분이 없습니다.하지만 분명한 사실은 QApplication의 객체 생성 시점이 QWidget 보다 늦다면 아래와 같은 에러가 뜹니다.분명히 둘은 무슨 관계를 가지고 있다는 사실이죠.궁금해 C++ QWidget.cpp 코드를 살펴 보니, QApplication은 qApp 라는 전역 변수를 제공하고 QWidget 코드 내부에서 이를 참조하는 형태로 연결이 이루어져 있네요.MFC의 theApp 가 생각납니다.이상으로 전체 코드 분석을 마칩니다.pyinstaller로 제작한 실행파일 링크 : 파이썬 타자연습게임 감사합니다. 이번에 만든 주제는 파이썬 타자연습게임(Typing Game) 입니다.은 아래와 같습니다.1. 한글, 영어 선택 기능2. 난이도 선택 기능 (초, 중, 고급)

[코딩초짜] C/JAVA/파이썬 타이핑 연습 사이트 공유 – 한나미디어

한컴타자와 비슷한? C언어, JAVA, 파이썬, HTML 등등 언어의 형태를 구경하고

See also  베스트 725 메이플 코디 시뮬레이션 새로운 업데이트 48 분 전
See also  톱 578 쿠팡 플레이 시리즈 새로운 업데이트 56 일 전

전.. 타이핑이 빠른편은 아니지만? 적당하게는 타이핑하고 있습니다.

무작정 시작해서, 본인의 타자 속도를 늘려가면 성취감이 생깁니다!

26 thg 11, 2019 — 안녕하세요. IT강사 한나미디어입니다~ 코딩 초짜 이신 분들 필독! 코딩이 재미 없는 분들 필독! 타이핑 연습부터 해보세요. 한컴타자와 비슷한?

  • Source: hannamedia.tistory.com
  • Views: 44528
  • Publish date: 19 hours ago
  • Downloads: 90215
  • Likes: 6588
  • Dislikes: 9
  • Title Website: [코딩초짜] C/JAVA/파이썬 타이핑 연습 사이트 공유 – 한나미디어
  • Description Website: 26 thg 11, 2019 — 안녕하세요. IT강사 한나미디어입니다~ 코딩 초짜 이신 분들 필독! 코딩이 재미 없는 분들 필독! 타이핑 연습부터 해보세요. 한컴타자와 비슷한?

세부 정보를 보려면 여기를 클릭하십시오.

(초급) 재미있는 코딩(5), 타자연습 만들기(두번째), 파이썬 타자연습 만들기(2)

  • Source: Youtube
  • Views: 55827
  • Date: 48 minute ago
  • Download: 34634
  • Likes: 1369
  • Dislikes: 3

[코딩초짜] C/JAVA/파이썬 타이핑 연습 사이트 공유

안녕하세요. IT강사 한나미디어입니다~

코딩 초짜 이신 분들 필독!

코딩이 재미 없는 분들 필독!

타이핑 연습부터 해보세요.

한컴타자와 비슷한? C언어, JAVA, 파이썬, HTML 등등 언어의 형태를 구경하고

타이핑 연습까지 가능한 사이트가 있습니다.

무작정 시작해서, 본인의 타자 속도를 늘려가면 성취감이 생깁니다!

한번 해보세요~

아래 공유한 사이트는 무료이니~ 마음껏 해보세요.

사이트 2개 추천드려요~

1. http://www.speedcoder.net/

2. https://typing.io/lessons

1번은 스크린샷으로 소개해드릴께요.

사이트 접속하셔서! “Start Now!”를 눌러주세요.

그 다음! 연습할 코딩 언어를 선택하세요.

언어를 선택하셨다면!! 후두두둑 타이핑해보세요.

한영키 확인하시고 하셔요~~

전.. 타이핑이 빠른편은 아니지만? 적당하게는 타이핑하고 있습니다.

부끄럽지만.. 제 기준으로 결과 넣었어요.

제가 연습한 언어는 C언어 입니다.~

20210113_ Python 입문10(총 활용), 간단한 타이핑 게임

import random import time import winsound import sqlite3 import datetime “DB 파일 생성 및 연결” conn = sqlite3.connect(“C:/record.db”, isolation_level=None) # Auto commit 모드 “커서 연결” cursor = conn.cursor() “테이블 및 필드 생성” cursor.execute(“CREATE TABLE IF NOT EXISTS recods(id INTEGER PRIMARY KEY AUTOINCREMENT, cor_cnt INTEGER, record text, regedate text)”) # AUTOINCREMENT는 굳이 입력 안해도 자동으로 넣어주는 거임 # id , cor_cnt, record, regedate 필드 생성 “게임 구조 코드 블록 자리” “게임 종료 후 DB로 데이터 기록하기” regedate = datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M-%S’) # regedate 등록 날짜 시간 할당 datetime 함수 사용하고 strftime으로 서식 지정 cursor.execute(“INSERT INTO records(‘cor_cnt’, ‘record’, ‘regedate’) VALUES(?, ?, ?)”, (cor_cnt, record, regedate))

start = time.time() “1. 문제 출력 & 입력” n = 1 cor_cnt = 0 while n <= 5 : random.suffle(words) q = random.choice(words) print("Qestion # {}".format(n)) x = input() print() "2. 정답 확인" 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() "3. 게임 종료 결과 메세지" et = end - start # 걸린 시간 변수 et = format(et, ".3f") print('-----------게임 종료!-----------') # 게임 종료 메세지 if cor_cnt >= 3: # 합격, 불합격 메세지 print(‘합격!’) else: print(‘불합격!’) # 게임시간, 정답개수 안내 메세지 print(“게임 시간 : {} / 정답 개수 : {}”.format(et ,cor_cnt))

start = time.time() # 시작 시간 기록 “1. 문제 출력 & 입력” n = 1 cor_cnt = 0 while n <= 5 : random.suffle(words) q = random.choice(words) print("Qestion # {}".format(n)) x = input() print() # 구분을 위해서 개행 출력 "2. 정답 확인" if str(q).strip() == str(x).strip(): # 리스트 값의 안전성을 위해서 str로 형변환하고 strip 함수를 통해 다시한번 공백과 개행 제거 print("Pass!") # 정답 안내 출력 winsound.PlaySound('./sound/good.wav', winsound.SND_FILENAME) # 정답 Sound 출력 -> winsound 모듈 playsound 함수 (경로, 어떤걸 했는지 옵션) cor_cnt += 1 # 정답 개수 1개 증가 설정 else: print(“Wrong!”) # 오답 안내 출력 winsound.PlaySound(‘./sound/bad.wav’, winsound.SND_FILENAME) # 오답 sound 출력 n += 1 end = time.time() # 종료 시간 기록 “3. 게임 종료 결과 메세지 코드 블록 자리”

See also  베스트 932 독서 교육 종합 시스템 강원 업데이트 122 시간 전

13 thg 1, 2021 — Python 을 활용한 간단한 타이핑 게임 만들기 1. 게임 구상 한컴 타자연습과 같이 게임에서 타이핑 해야하는 문자를 출력한다.

  • Source: goforit.tistory.com
  • Views: 21130
  • Publish date: 19 hours ago
  • Downloads: 59390
  • Likes: 72
  • Dislikes: 6
  • Title Website: 20210113_ Python 입문10(총 활용), 간단한 타이핑 게임
  • Description Website: 13 thg 1, 2021 — Python 을 활용한 간단한 타이핑 게임 만들기 1. 게임 구상 한컴 타자연습과 같이 게임에서 타이핑 해야하는 문자를 출력한다.

세부 정보를 보려면 여기를 클릭하십시오.

2021 SM 러닝페어 파이썬 타자연습 게임

  • Source: Youtube
  • Views: 73912
  • Date: 4 hours ago
  • Download: 54911
  • Likes: 3919
  • Dislikes: 9

20210113_ Python 입문10(총 활용), 간단한 타이핑 게임

Python 을 활용한 간단한 타이핑 게임 만들기

1. 게임 구상

한컴 타자연습과 같이 게임에서 타이핑 해야하는 문자를 출력한다.

사용자의 입력을 받는다.

사용자의 입력과 게임에서 출제하는 문제 출력과 동일한지 체크한다.

동일하다는 출력문, 다르다는 출력문 출력 중에서 하나 출력 하고 동시에 해당하는 사운드 출력

5문제 정도 반복 후 게임 끝 출력

맞은 개수에 따른 합격, 불합격 출력

맞은 개수, 걸린 시간, 출력

데이터 베이스 연동 (id, 맞은 개수, 걸린 시간, 등록 시간)

2. 필요한 패키지 import

import random # 문제 뽑거나 섞을때 무작위 import time # 걸린 시간을 측정하기 위해서 import winsound # 정답, 오답 사운드를 출력하기 위해서 import sqlite3 # 데이터 베이스 연동을 위해서 import date time # 데이터 베이스 등록 시간 필드를 위해서

3. 게임 전체 간단한 틀 만들기

1) 출력할 문제 리스트화 시키기

strip 함수 : 값의 개행, 공백 제거시

words = [] # word 라는 단어를 모을 리스트 생성 with open(“./word.txt”, ‘r’) as f: # 단어들을 모아둔 txt 파일을 word list에 리턴 for c in f: words.append(c.strip()) # strip 함수를 써줘야 /n 개행이 문자로 같이 안들어옴

2) 문제 실행 전 안내 메세지 (input)

input 함수 : enter 키가 실행 될때까지 기다림, 입력을 받을 수 있음

input(“Ready? Press Enter key!”)

3) 시간을 재기 위한 time 모듈의 time 함수 사용

파이썬 내장 모듈인 time 모듈의 time 함수 : timestamp를 얻는 함수

: timestamp를 얻는 함수 즉, 현재 시간의 고유 timestamp 숫자를 얻는 것이다.

format 함수 : 값의 서식을 지정하고 싶을 경우, format(값 , “서식법”)

start = time.time() # start 변수에 timestamp 할당 “게임 출력” end = time.time() # end 변수에 timestamp 할당 et = end – start # et변수가 걸린시간이 되는 것임 et = format(et, “.3f”)

4) 본격적인 게임 실행 구조 1_(문제 출력과 입력 받기)

random.suffle함수

random.choice함수

start = time.time() # 시작 시간 기록 “1. 문제 출력 & 입력” n = 1 # 문제 회차 설정 cor_cnt = 0 # 정답 개수 설정 while n <= 5 : # 총 5문제 출제 random.suffle(words) # words 리스트를 섞는다. q = random.choice(words) # words 리스트에서 무작위로 1개 뽑는다. print("Qestion # {}".format(n)) # 현재 문제 회차 출력 x = input() # 타이핑 입력 받기, 입력 받은 문자 x변수에 할당 "2. 정답 확인 코드 블록 자리" n += 1 # 회차 증가 설정 end = time.time() # 종료 시간 기록 "3. 게임 종료 결과 메세지 코드 블록 자리" 5) 본격적인 게임 실행 구조 2_(정답 확인하기) start = time.time() # 시작 시간 기록 "1. 문제 출력 & 입력" n = 1 cor_cnt = 0 while n <= 5 : random.suffle(words) q = random.choice(words) print("Qestion # {}".format(n)) x = input() print() # 구분을 위해서 개행 출력 "2. 정답 확인" if str(q).strip() == str(x).strip(): # 리스트 값의 안전성을 위해서 str로 형변환하고 strip 함수를 통해 다시한번 공백과 개행 제거 print("Pass!") # 정답 안내 출력 winsound.PlaySound('./sound/good.wav', winsound.SND_FILENAME) # 정답 Sound 출력 -> winsound 모듈 playsound 함수 (경로, 어떤걸 했는지 옵션) cor_cnt += 1 # 정답 개수 1개 증가 설정 else: print(“Wrong!”) # 오답 안내 출력 winsound.PlaySound(‘./sound/bad.wav’, winsound.SND_FILENAME) # 오답 sound 출력 n += 1 end = time.time() # 종료 시간 기록 “3. 게임 종료 결과 메세지 코드 블록 자리”

6) 본격적인 게임 실행 구조 3_(게임 종료 결과 메세지)

start = time.time() “1. 문제 출력 & 입력” n = 1 cor_cnt = 0 while n <= 5 : random.suffle(words) q = random.choice(words) print("Qestion # {}".format(n)) x = input() print() "2. 정답 확인" 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() "3. 게임 종료 결과 메세지" et = end - start # 걸린 시간 변수 et = format(et, ".3f") print('-----------게임 종료!-----------') # 게임 종료 메세지 if cor_cnt >= 3: # 합격, 불합격 메세지 print(‘합격!’) else: print(‘불합격!’) # 게임시간, 정답개수 안내 메세지 print(“게임 시간 : {} / 정답 개수 : {}”.format(et ,cor_cnt))

4. DB 연동 시키기

1) DB 연동 관련 패키지, 모듈 import

“게임 구조 관련한 패키지,모듈” import random import time import winsound “DB 연동을 위한 패키지, 모듈” import sqlite3 import datetime

2) 본격적인 DB 연동

import random import time import winsound import sqlite3 import datetime “DB 파일 생성 및 연결” conn = sqlite3.connect(“C:/record.db”, isolation_level=None) # Auto commit 모드 “커서 연결” cursor = conn.cursor() “테이블 및 필드 생성” cursor.execute(“CREATE TABLE IF NOT EXISTS recods(id INTEGER PRIMARY KEY AUTOINCREMENT, cor_cnt INTEGER, record text, regedate text)”) # AUTOINCREMENT는 굳이 입력 안해도 자동으로 넣어주는 거임 # id , cor_cnt, record, regedate 필드 생성 “게임 구조 코드 블록 자리” “게임 종료 후 DB로 데이터 기록하기” regedate = datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M-%S’) # regedate 등록 날짜 시간 할당 datetime 함수 사용하고 strftime으로 서식 지정 cursor.execute(“INSERT INTO records(‘cor_cnt’, ‘record’, ‘regedate’) VALUES(?, ?, ?)”, (cor_cnt, record, regedate))

5. 테스트 문

모듈을 테스트를 해야 되는데, 이미 어느 정도 만들고 다른 곳에 import 하여 사용하고 있는 중이라면 테스트문 없이 넣는다면 계속해서 모듈 코드가 변화해서 다른 곳에 영향을 주게 된다.

“게임 코드 블럭” “테스트 문” if __name__ == ‘__main__’: pass # 시도할 코드 작성 부분

[파이썬:Python]타자게임 – SARACEN’s Blog – 티스토리

간단한 랜덤함수(난수)와 배열과 반복문, 조건문으로 충분히 만들 수 있습니다.

요즘 공부하는 파이썬 기본문법을 가지고 간단한 타자게임 하나 만들어봤습니다!

변수가 많지는 않아서 직접해보면 금방 이해하실듯 합니다.

아래에 플레이 사진과 소스코드 올려놓겠습니다.

[파이썬:Python]타자게임. NOBLESSE 2019. 6. 13. 01:17. 요즘 공부하는 파이썬 기본문법을 가지고 간단한 타자게임 하나 만들어봤습니다!

  • Source: saracenletter.tistory.com
  • Views: 7760
  • Publish date: 3 minute ago
  • Downloads: 100957
  • Likes: 485
  • Dislikes: 7
  • Title Website: [파이썬:Python]타자게임 – SARACEN’s Blog – 티스토리
  • Description Website: [파이썬:Python]타자게임. NOBLESSE 2019. 6. 13. 01:17. 요즘 공부하는 파이썬 기본문법을 가지고 간단한 타자게임 하나 만들어봤습니다!

세부 정보를 보려면 여기를 클릭하십시오.

파이썬 GUI/윈도우 한글 타자 게임 만들기(making GUI lotto Game by python)

  • Source: Youtube
  • Views: 37107
  • Date: 5 hours ago
  • Download: 26653
  • Likes: 1353
  • Dislikes: 10

[파이썬:Python]타자게임

요즘 공부하는 파이썬 기본문법을 가지고 간단한 타자게임 하나 만들어봤습니다!

변수가 많지는 않아서 직접해보면 금방 이해하실듯 합니다.

간단한 랜덤함수(난수)와 배열과 반복문, 조건문으로 충분히 만들 수 있습니다.

아래에 플레이 사진과 소스코드 올려놓겠습니다.

파이썬 정복: 파이썬 개발에 필요한 기본 지식을 모두 담은 파이썬 입문서

  • Source: books.google.com.vn
  • Views: 103938
  • Publish date: 38 minute ago
  • Downloads: 85319
  • Likes: 423
  • Dislikes: 10
  • Title Website: 파이썬 정복: 파이썬 개발에 필요한 기본 지식을 모두 담은 파이썬 입문서
  • Description Website:

세부 정보를 보려면 여기를 클릭하십시오.

타자 연습 사이트 | Typing Works – 깔끔하고 세련된 온라인 프로그램

  • Source: Youtube
  • Views: 107008
  • Date: 11 hours ago
  • Download: 90331
  • Likes: 5330
  • Dislikes: 2

주제에 대한 관련 정보 파이썬 타자 연습 프로그램

Bing에서 파이썬 타자 연습 프로그램 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 파이썬 타자 연습 프로그램. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 파이썬 타자 연습 프로그램 타자연습 프로그램 만들기, 타자 연습 프로그램 소스, 파이썬 타자게임, C 언어 타자 연습 정확도, 한컴타자연습, 파이썬 간단한 프로그램, 파이썬 간단한 프로그램 만들기

Leave a Comment