Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Ortalama yazma hızı dakikada yaklaşık 40 kelimedir. Çalışmanızda üretken olmak istiyorsanız, dakikada en az 65 ila 70 kelime yazmayı hedeflemelisiniz. Yazma hızınızı artırmak verimliliğinizi artıracak ve bu da veri girişi, metin yazarlığı, transkripsiyon ve yönetici rolleri gibi görevleri artıracaktır.

Yazma becerilerinizi test etmek için Python kullanarak basit bir yazma testi uygulaması oluşturabilirsiniz. Bunu kullanarak, kesin sonuçlar alabilir ve zamanla geliştirmek için bağımlılık yapan bir alışkanlık geliştirebilirsiniz.

Tkinter ve Random Modülleri

Yazma Testi Oyununu geliştirmek için, tkinter modül ve rastgele modül. Tkinter, masaüstü uygulamaları oluşturmanıza olanak tanır. Uygulamaları çok fazla çaba harcamadan geliştirmeyi kolaylaştıran düğmeler, etiketler, metin kutuları ve düzen yöneticileri gibi çeşitli widget'lar sunar.

instagram viewer

Bunların dışında yardımcı kitaplıklar, tuval nesneleri ve HTML/XML/PDF ayrıştırıcıları ile birlikte gelir. Tkinter'ı sisteminize kurmak için terminali açın ve şunu çalıştırın:

bip düzenlemek tkinter

Random modülü, rasgele sayılar üretmek için bir dizi işleve sahiptir. Karışık diziler, oyun hareketleri ve sözde rasgele tamsayılar üretmek için bu rutinleri kullanabilirsiniz. Yaygın kullanımlarından bazıları, zar atışlarının simülasyonunu, karıştırma listelerini, rastgele şifre üreticisive gibi oyunlarda el kriket ve sayı tahmini.

Python Kullanarak Yazma Testi Uygulaması Nasıl Oluşturulur

Python'un Tkinter ve Random modülünü kullanarak bir yazma testi uygulaması oluşturmak için bu adımları izleyin.

Typing Test App using Python'un kaynak kodunu ve word metin dosyasını bu dosyada bulabilirsiniz. GitHub deposu.

Tkinter ve Random modülünü içe aktararak başlayın. Tkinter örneğini başlatın ve kök pencereyi görüntüleyin. Pencerenin boyutlarını, başlığını ve arka plan rengini piksel cinsinden ayarlayın.

itibaren tkinter içe aktarmak *
içe aktarmak rastgele
itibaren tkinter içe aktarmak mesaj Kutusu

Ana ekran = Tk()
Ana ekran.geometri("1000x600")
ana ekran.başlık("MakeUseOf Yazma Oyunu")
ana ekran.config(bg="su")

GitHub deposundan kelime listesini indirin ve kolay referans için Python betiğiyle aynı klasöre yerleştirin. Metin dosyasının içeriğini okuyun ve her kelimeyi bir listede saklamak için split() işlevini kullanın. Puan, cevapsız ve say1 değişkenlerini sıfıra ve zaman değişkenini 60'a sıfırlayın.

dosya1 = aç("kelimeler.txt", 'R')
kelimeler = dosya1.read().split()
puan = cevapsız = say1 = 0
zaman = 60

adlı bir işlev tanımlayın. verilen zaman() bu, yukarıda bahsedilen global değişkenlere atıfta bulunur. Kalan süre sıfırdan büyükse, bir azaltın ve zamanlayıcı sayısı etiketinde görüntüleyin (kodun sonraki yarısında belirtilir). Kullan sonrasında() 1.000 milisaniyelik (bir saniye) gecikmeden sonra verilenzaman() işlevini geri çağırma işlevi.

Süre dolmuşsa, başlangıç ​​etiketinin içeriğini Game Over olarak değiştirin ve aynı anda skoru oyun talimatı etiketinde görüntüleyin. İlgili değişkenleri şuraya iletin: biçim() Hit, Miss ve Total Score'u görüntülemek için işlev.

kesinverilen zaman():
küresel zaman, puan, kaçırılan

zaman > 0 ise:
zaman -= 1
timercount.configure (metin=zaman)
zamanlayıcı sayısı.sonrasında(1000, verilen zaman)
başka:
startlabel.configure (metin='Oyun bitti!')
gameinstruction.configure (metin='İsabet = {} | Bayan = {} | Toplam Puan = {}'.format (puan, cevapsız, skor - cevapsız))

Başlığı ve mesajı şu kişiye iletin: askokcancel() işlev. İletişim kutusunda alınan yanıt doğru olarak değerlendirilirse, uygulamayı kullanarak uygulamayı durdurun. çıkış() işlev.

 rr = mesaj kutusu.askokcancel('Oyun bitti!', 'Çıkmak için Tamam'a basın')

eğer sa == Doğru:
çıkış()

adlı bir işlev tanımlayın. oyun() bu olayı bir giriş bağımsız değişkeni olarak alır. Global değişkenlere başvurun. Zaman değişkeni 60'a eşitse, geri sayımı başlatmak için verilenzaman() işlevini yürütün. Oyun devam ederken, configure() işlevini kullanarak kelimeyi yazdıktan sonra başlangıç ​​etiketini Devam olarak değiştirin ve gameinstruction etiketini enter tuşuna basın.

kesinoyun(etkinlik):
küresel puan, kaçırılan

zaman == 60 ise:
verilen zaman()

startlabel.configure (metin='Devam etmek..')
gameinstruction.configure (metin="Kelimeyi Yazdıktan Sonra Enter'a Bas")

Wordentry'de yazılan kelimeyi kullanarak alın elde etmek() işlevini seçin ve ekranda görüntülenen kelimeye eşit olup olmadığını kontrol edin. Evet ise, puanı artırın ve puan etiketine yansıtın. Aksi takdirde, kaçırılan değişkeni bir artırın.

Sözcük listesindeki öğeleri yeniden sıralayın ve ilk öğeyi görüntüleyin. Kullan silmek() içeriği temizlemek için wordentry widget'ında sıfırdan son dizine kadar işlev.

eğer wordentry.get() == etiket ileri['metin']:
puan += 1
puan etiketi sayısı. yapılandırma (metin = puan)
başka:
cevapsız += 1

rastgele.Karıştır(kelimeler)
labelforward.configure (metin=kelimeler[0])
kelime girişi.silmek(0, SON)

Etiket widget'ını kullanarak başlangıç ​​etiketini, etiket ilerisini, puan etiketini, puan etiketi sayısını, etiket fortimer'ı, zamanlayıcı sayısını ve oyun talimatını ayarlayın. Etiket parçacığı, onu yerleştirmek istediğiniz ana pencereyi, görüntülemesi gereken metni, yazı tipi türünü, boyutunu, rengini ve stilini ve etiketin arka plan rengini alır.

X ve Y koordinatlarını şuraya iletin: yer() etiketleri belirli bir konumda düzenleme yöntemi.

startlabel = Etiket (Ana ekran, metin="Yazma Oyunu",yazı tipi=("arial",30,"italik kalın"),bg='siyah',fg='beyaz')
startlabel.place (x=375, y=50)

labelforward = Etiket (Ana ekran, metin=' ',yazı tipi=("arial",45,"italik kalın"),fg='yeşil')
labelforward.place (x=350, y=240)

puan etiketi = Etiket (Ana ekran, metin='Puanın:',yazı tipi=("arial",25,"italik kalın"),fg='bordo')
puan etiketi.yer (x=110, y=100)

skor etiketi sayısı = Etiket (Ana ekran, metin=puan, yazı tipi=("arial",25,"italik kalın"),fg='mor')
puan etiketisayısı.yer (x=250, y=180)

labelfortimer = Etiket (Ana ekran, metin='Kalan zaman:',yazı tipi=("arial",25,"italik kalın"),fg='bordo')
labelfortimer.place (x=700, y=100)

timercount = Etiket (Ana ekran, metin=zaman, yazı tipi=("arial",25,"italik kalın"),fg='mor')
timercount.place (x=700, y=180)

gameinstruction = Etiket (Ana ekran, metin="Kelimeyi Yazdıktan Sonra Enter'a Bas",yazı tipi=("arial",25,"italik kalın"),fg='gri')
gameinstruction.place (x=250, y=500)

Yazdığınız kelimeyi kabul eden bir giriş widget'ı tanımlayın. Yerleştirmek istediğiniz ana pencereyi, yazı tipi türünü, boyutunu, stilini, kenarlık boyutunu ve haklı özelliğini ayarlayın. Giriş widget'ını konumlandırmak için place() yöntemini kullanın ve odak_set() giriş için giriş kutusunu etkinleştirme yöntemi.

wordentry = Giriş (Ana ekran, yazı tipi=("arial",25,"italik kalın"), bd=10, yasla='merkez')
wordentry.place (x=350, y=330)
kelime girişi.odak_kümesi()

Önemli bir adım, Enter tuşunu Tkinter penceresindeki bir olayla ilişkilendirmektir. Bunu yapmak, oyuncu bastığında Girmek belirli bir işlev yürütülür. Bunu başarmak için, string ve game() işlevi, bağlamak() işlev. bu Ana döngü() işlevi, Python'a Tkinter olay döngüsünü çalıştırmasını ve siz pencereyi kapatana kadar olayları (düğmeye basmalar gibi) dinlemesini söyler.

Ana ekran.bind('', oyun)
Ana döngü()

Tüm kodu bir araya getirin ve parmaklarınızın ucunda yazma testi oyununu oynamak için kodu çalıştırın.

Python Yazma Testi Uygulamasının Çıktısı

Yukarıdaki programı çalıştırdığınızda, 1.000 piksel genişliğinde ve 600 piksel yüksekliğinde, su arka plan rengi, puan tablosu, geri sayım sayacı ve oyuna başlama talimatı içeren bir pencere görünür.

Enter'a basıldığında oyun başlar ve her doğru cevapta program puanı bir artırır.

Süre dolduğunda program, oyundan çıkmak için bir iletişim kutusuyla birlikte nihai skoru görüntüler.

Yeni Başlayanlar İçin Tkinter GUI Fikirleri

Tkinter, çekici ve sağlam, basitten tam işlevselliğe kadar uygulamalar oluşturmak için kullanabileceğiniz çok güçlü bir araçtır. Bir acemi bile Tkinter'ı kullanabilir. Oluşturabileceğiniz birkaç örnek proje, bir sınav oyunu, bir adres defteri, yapılacaklar listesi veya bir resim görüntüleyicidir.

Tkinter'in ötesine geçmek istiyorsanız, popüler alternatiflerden birkaçı Qt tasarımcısı, Kivy, Toga ve BeeWare'dir. Tüm bu çerçeveler çok yönlüdür ve platformlar arası geliştirmeyi destekler, böylece uygulamalarınızı herhangi bir ortamda sorunsuz çalıştırabilirsiniz.