/ / Kiểm tra tốc độ gõ và độ chính xác của bạn bằng Python

Kiểm tra tốc độ gõ và độ chính xác của bạn bằng Python

Tốc độ gõ trung bình là khoảng 40 từ mỗi phút. Nếu bạn muốn làm việc hiệu quả, bạn nên đặt mục tiêu gõ ít nhất 65 đến 70 từ mỗi phút. Tăng tốc độ gõ của bạn sẽ cải thiện hiệu quả của bạn, điều này sẽ thúc đẩy các tác vụ như nhập dữ liệu, viết quảng cáo, phiên âm và các vai trò quản trị.


Để kiểm tra kỹ năng đánh máy của mình, bạn có thể xây dựng một ứng dụng kiểm tra đánh máy đơn giản bằng Python. Sử dụng điều này, bạn có thể nhận được kết quả chính xác và phát triển thói quen gây nghiện để cải thiện theo thời gian.


Các mô-đun Tkinter và Random

Để phát triển Trò chơi kiểm tra đánh máy, bạn sẽ sử dụng tkinter mô-đun và ngẫu nhiên mô-đun. Tkinter cho phép bạn tạo các ứng dụng máy tính để bàn. Nó cung cấp nhiều tiện ích như nút, nhãn, hộp văn bản và trình quản lý bố cục giúp dễ dàng phát triển ứng dụng mà không tốn quá nhiều công sức.

Ngoài những thứ này, nó đi kèm với các thư viện hữu ích, đối tượng canvas và trình phân tích cú pháp HTML/XML/PDF. Để cài đặt Tkinter vào hệ thống của bạn, hãy mở terminal và thực hiện:

 pip install tkinter 

Mô-đun Ngẫu nhiên có một tập hợp các hàm để tạo số ngẫu nhiên. Bạn có thể sử dụng các thói quen này để tạo ra các chuỗi xáo trộn, các chuyển động của trò chơi và các số nguyên giả ngẫu nhiên. Một số cách sử dụng phổ biến của nó bao gồm mô phỏng tung xúc xắc, xáo trộn danh sách, trình tạo mật khẩu ngẫu nhiên và trong các trò chơi như cricket bằng tay và đoán số.

Cách xây dựng ứng dụng kiểm tra đánh máy bằng Python

Làm theo các bước sau để xây dựng ứng dụng kiểm tra đánh máy bằng mô-đun Tkinter và Random của Python.

Bạn có thể tìm thấy mã nguồn của Ứng dụng kiểm tra đánh máy bằng Python và tệp văn bản từ trong kho lưu trữ GitHub này.

Bắt đầu bằng cách nhập mô-đun Tkinter và Random. Khởi tạo phiên bản Tkinter và hiển thị cửa sổ gốc. Đặt kích thước tính bằng pixel, tiêu đề và màu nền của cửa sổ.

 from tkinter import *
import random
from tkinter import messagebox

Mainscreen = Tk()
Mainscreen.geometry('1000x600')
Mainscreen.title('smartreviewaz Typing Game')
Mainscreen.config(bg="aqua")

Tải xuống danh sách các từ từ kho lưu trữ GitHub và đặt nó vào cùng thư mục với tập lệnh Python để dễ dàng tham khảo. Đọc nội dung của tệp văn bản và sử dụng hàm split() để lưu từng từ vào danh sách. Khởi tạo các biến số điểm, bỏ lỡ và đếm1 thành 0 và biến thời gian thành 60.

 file1 = open('words.txt', 'r')
words = file1.read().split()
score = missed = count1 = 0
time = 60

Xác định một chức năng có tên thời gian nhất định() tham chiếu đến các biến toàn cục được đề cập ở trên. Nếu thời gian còn lại lớn hơn 0, hãy giảm nó đi một và hiển thị nó trên nhãn đếm thời gian (được khai báo ở nửa sau của mã). Sử dụng sau đó() để gọi lại hàm đã cho() sau độ trễ 1.000 mili giây (một giây).

Nếu quá thời gian, hãy thay đổi nội dung của nhãn bắt đầu thành Trò chơi kết thúc và đồng thời hiển thị điểm số trên nhãn hướng dẫn trò chơi. Truyền các biến tương ứng cho định dạng() để hiển thị Lượt truy cập, Bỏ lỡ và Tổng điểm.

 def giventime():
    global time, score, missed

    if time > 0:
        time -= 1
        timercount.configure(text=time)
        timercount.after(1000, giventime)
    else:
        startlabel.configure(text='Game Over!')
        gameinstruction.configure(text='Hit = {} | Miss = {} | Total Score = {}'.format(score, missed, score - missed))

Chuyển tiêu đề và thông điệp tới yêu cầu hủy () chức năng. Nếu phản hồi nhận được trên hộp thoại được đánh giá là đúng, hãy dừng ứng dụng bằng cách sử dụng lối ra() chức năng.

         rr = messagebox.askokcancel('Game Over!', 'Press Ok to Exit')

        if rr == True:
            exit()

Xác định một chức năng có tên trò chơi() lấy sự kiện làm đối số đầu vào. Tham khảo các biến toàn cầu. Nếu biến thời gian bằng 60, hãy thực thi hàm Giventime() để bắt đầu đếm ngược. Khi trò chơi đang diễn ra, hãy thay đổi nhãn bắt đầu thành Tiếp tục và nhãn hướng dẫn trò chơi thành nhấn enter sau khi nhập từ đó bằng hàm configure().

 def game(event):
    global score, missed

    if time == 60:
        giventime()

    startlabel.configure(text='Continue..')
    gameinstruction.configure(text='Hit Enter After Typing The Word')

Truy xuất từ ​​đã nhập trong mục nhập từ bằng cách sử dụng lấy() chức năng và kiểm tra xem có bằng từ hiển thị trên màn hình không. Nếu có, hãy tăng điểm và phản ánh nó trên nhãn điểm. Nếu không, hãy tăng biến bị bỏ lỡ lên một.

Sắp xếp lại các mục trong danh sách từ và hiển thị phần tử đầu tiên. Sử dụng xóa bỏ() chức năng từ số 0 đến chỉ mục cuối cùng trên tiện ích nhập từ để xóa nội dung.

     if wordentry.get() == labelforward['text']:
        score += 1
        scorelabelcount.configure(text=score)
    else:
        missed += 1

    random.shuffle(words)
    labelforward.configure(text=words[0])
    wordentry.delete(0, END)

Đặt nhãn bắt đầu, nhãn chuyển tiếp, nhãn điểm, số lượng nhãn điểm, nhãn cho bộ đếm thời gian, bộ đếm thời gian và hướng dẫn trò chơi bằng cách sử dụng tiện ích Nhãn. Tiện ích nhãn nhận trong cửa sổ chính nơi bạn muốn đặt nó, văn bản sẽ hiển thị, loại phông chữ, kích thước, màu sắc và kiểu cùng với màu nền của nhãn.

Truyền tọa độ X và Y cho địa điểm() phương pháp tổ chức các nhãn tại một vị trí cụ thể.

 startlabel = Label(Mainscreen,text='Typing Game',font=('arial',30,'italic bold'),bg='black',fg='white')
startlabel.place(x=375, y=50)

labelforward = Label(Mainscreen,text=' ',font=('arial',45,'italic bold'),fg='green')
labelforward.place(x=350, y=240)

scorelabel = Label(Mainscreen,text='Your Score:',font=('arial',25,'italic bold'),fg='maroon')
scorelabel.place(x=110, y=100)

scorelabelcount = Label(Mainscreen,text=score,font=('arial',25,'italic bold'),fg='purple')
scorelabelcount.place(x=250, y=180)

labelfortimer = Label(Mainscreen,text='Time Left:',font=('arial',25,'italic bold'),fg='maroon')
labelfortimer.place(x=700, y=100)

timercount = Label(Mainscreen,text=time,font=('arial',25,'italic bold'),fg='purple')
timercount.place(x=700, y=180)

gameinstruction = Label(Mainscreen,text='Hit Enter After Typing The Word',font=('arial',25,'italic bold'),fg='grey')
gameinstruction.place(x=250, y=500)

Xác định tiện ích mục nhập chấp nhận từ bạn nhập. Đặt cửa sổ mẹ mà bạn muốn đặt nó vào, loại phông chữ, kích thước, kiểu cùng với kích thước đường viền và thuộc tính justify. Sử dụng phương thức place() để định vị tiện ích mục nhập và focus_set() phương pháp để kích hoạt hộp nhập cho đầu vào.

 wordentry = Entry(Mainscreen, font=('arial',25,'italic bold'), bd=10, justify='center')
wordentry.place(x=350, y=330)
wordentry.focus_set()

Một bước quan trọng là liên kết phím Enter với một sự kiện trong cửa sổ Tkinter. Làm như vậy đảm bảo rằng khi người chơi nhấn Đi vào một chức năng cụ thể sẽ thực thi. Để đạt được điều này, bạn chuyển chuỗi và hàm game() làm tham số cho trói buộc() chức năng. Các vòng lặp chính() chức năng yêu cầu Python chạy vòng lặp sự kiện Tkinter và lắng nghe các sự kiện (chẳng hạn như nhấn nút) cho đến khi bạn đóng cửa sổ.

 Mainscreen.bind('<Return>', game)
mainloop()

Đặt tất cả các mã lại với nhau và chạy mã để chơi trò chơi kiểm tra đánh máy trong tầm tay của bạn.

Đầu ra của ứng dụng Python Typing Test

Khi chạy chương trình trên, một cửa sổ xuất hiện rộng 1.000 pixel và cao 600 pixel, với màu nền là nước, bảng điểm, đồng hồ đếm ngược và hướng dẫn bắt đầu trò chơi.

Màn hình bắt đầu trò chơi Typing Python

Khi nhấn Enter, trò chơi bắt đầu và trên mỗi câu trả lời đúng, chương trình sẽ tăng điểm một.

Màn hình Typing Game Python In Progress

Khi hết thời gian, chương trình hiển thị điểm số cuối cùng cùng với hộp thoại để thoát khỏi trò chơi.

Trò chơi đánh máy Trò chơi Python qua màn hình

Ý tưởng GUI Tkinter cho người mới bắt đầu

Tkinter là một công cụ rất mạnh mà bạn có thể sử dụng để xây dựng các ứng dụng đơn giản đến đầy đủ chức năng, hấp dẫn và mạnh mẽ. Ngay cả một người mới cũng có thể sử dụng Tkinter. Một số dự án mẫu mà bạn có thể xây dựng là trò chơi đố vui, sổ địa chỉ, danh sách việc cần làm hoặc trình xem ảnh.

Nếu bạn muốn vượt ra ngoài Tkinter, một số lựa chọn thay thế phổ biến bao gồm nhà thiết kế Qt, Kivy, Toga và BeeWare. Tất cả các khung này đều linh hoạt và hỗ trợ phát triển đa nền tảng, vì vậy bạn có thể chạy các ứng dụng của mình một cách dễ dàng trên mọi môi trường.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *