Mar 292016
 
3.179 views

Python Pygame ve Thread Uygulaması

Python Pygame ve Thread Uygulaması

Al Sweigart tarafından Python 2 ve 3 için uyumlu şekilde yazılmış “threadworms” isimli bir uygulama var. Proje https://github.com/asweigart/threadworms adresinde paylaşılıyor.

Programın içinde ayrıntılı açıklamaların bulunması özellikle thread, pygame veya Python konusunda öğretici örnek arayanlar için onu daha değerli hale getiriyor.

Açıklamalar İngilizce. Ben de dil sorunu olan arkadaşlarımız için kodların arasına serpiştirilmiş açıklamaları büyük oranda Türkçeleştirdim. Kalan kısmını da en kısa zamanda halletmeye çalışacağım.

Tamamlanmamamış haliyle bile bu açıklamaların işe yarayacağını düşünüyorum.

Türkçe açıklamaları içeren dosyaya https://github.com/ahmetax/threadworms adresinden ulaşabilirsiniz. Orijinal kod dosyasının adı: threadworms.py. Türkçe açıklamaları içeren dosya adı ise: threadworms-tr.py. Her iki dosyadaki kodlar aynı. Sadece açıklamalar ve bazı parametreler farklı.

Bu program, thread kullanımı açısından da çok yararlı ve güzel bir örnek. Solucanların işgal ettiği hücrelerin çakışmamasını sağlayan kilit mekanizmaları adım adım açıklanıyor.

Solucan sayısını, kullanılan renkleri, hücre boyutlarını, yatay ve düşey hücre sayısını değiştirmeniz mümkün. Solucanların hızını da ayarlayabilirsiniz.

setGridSquares(squares) satırının başındaki # işaretini kaldırırsanız, squares değişkeni tarafından tanımlanan engeller ızgara üzerinde etkin hale gelir.

Thread ve/veya pygame konusunda kendinizi geliştirmek istiyorsanız, bu örneği mutlaka inceleyin!

Ahmet Aksoy

Mar 272016
 
4.194 views

Python pygame ve kar yağışı

kar yağışıPythonun en zayıf olduğu alan belki de görsel tarafı. Komut modunda olağanüstü bir performansa sahip olsa da, güncel yazılımların ihtiyaç duyduğu görsel etkileşim konusunda yardıma muhtaç.

Pythonun bu açığını kapatmaya yönelik araçlardan birisi pygame. Bu kütüphane ile iki boyutlu grafikler için pratik çözümler geliştirebilirsiniz. Klavye ve mouse etkileşimi, thread kullanımı önünüze geniş bir kullanım alanı açıyor. Gerisi hayal gücünüze kalmış.

“pygame kütüphanesi”ni Pythonun en güncel sürümüyle birlikte kullanmanız mümkün. Ne yazık ki bu çalışmayı -şimdilik- sadece windows üzerinde yapabiliyorsunuz. Python 3.5 ile uyumlu pygame sürümünü
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
adresinden indirip bilgisayarınıza kurabilirsiniz.

İndireceğiniz dosyanın adında Python sürüm numarası ve işlemci bilgileri yer alıyor. Örneğin:
pygame-1.9.2a0-cp35-none-win32.whl
dosyası 32 bitlik sistem üzerinde çalışan Python 3.5 sürümü içindir. 64 bitlik sisteme göre derlenmiş dosya ise:
pygame-1.9.2a0-cp35-none-win_amd64.whl

Eğer sisteminiz hem 32, hem de 64 biti destekliyorsa, Pythonu hangisine göre kurduğunuz önemlidir. Örneğin benim bilgisayarım 64 biti desteklediği halde, 32 bitlik python kullanıyorum.

Python 3.5.x ve 32 bitlik bir sistemde pygame kurulum komutu şu şekilde:
pip install pygame-1.9.2a0-cp35-none-win32.whl

Yukarıda gördüğünüz kar manzarasını oluşturan açık kaynak proje github üzerinde yer alıyor. Projenin orijinal adresi: https://github.com/adamkdean/Python.Snowfall

Buradaki projeden oluşturduğum çatalın adresi ise şöyle:
https://github.com/ahmetax/Python.Snowfall

Orijinal projede yağan kar düz zeminde birikiyor. Ben ise düz bir zemin yerine ağaçlıklı bir tepecik kullandım. Kar birikimi tepenin şekline uygun şekilde gerçekleşiyor. Aslında farklı arka planlar kullanarak bu projeyi daha da ilginç bir hale getirmek mümkün olabilir.

Yağan karın birikmesi dışında kodlar rüzgar etkisini de içeriyor.

Kodları yukarıdaki adreslerden indirip inceleyebilirsiniz. Benim yeniden düzenlediğim haliyle kodlar python 3.5.1 ve pygame-1.9.2a0 sürümlerini kullanarak çalışabiliyor.

Kodlar karmaşık olmadığı için ayrıca açıklamaya gerek duymuyorum. Yine de takıldığınız bir nokta olursa, sorularınızı bana yöneltebilirsiniz.

Ahmet Aksoy