Pages

Sunday, February 19, 2012

C ile Multithreading Örneği

Geçen dönem İşletim Sistemleri dersinin en heyecanlı lab dersi Thread konusundakiydi. Bir programın yapacağı işi parçalara bölmek ve her parçayı ayrı ayrı thread’lere paralel olarak yaptırma fikri gerçekten herkesin ilgisini çekmişti.

Labda yaptığımız örnek ise Silberschatz’ın kitabındaki matris çarpma projesi oldu. Labdan kısaca bahsedeyim: A ve B matrisini çarpıp C matrisi elde ediyoruz. Yalnız bu çarpma işlemini yaparken C’nin her bir elemanını ayrı ayrı thread’lerde hesaplıyoruz. Örneğin, A 3x2 bir matris ve B 2x3 bir matris olsun, çarpma sonucu oluşan C matrisi bu durumda 3x3 olur ve C matrisini oluşturmak için toplam 9 thread kullanılırız. Umarım anlatabilmişimdir.

Labın kodlama kısmı şöyle:


Şimdi ise nasıl derleyip çalıştırdığımıza ve çıktısına bakalım.

ozan@pardus2011 Labs $ gcc thread_project2.c -o thread_project2.o -pthread
ozan@pardus2011 Labs $ ./thread_project2.o  
28      23      18
41      34      27
54      45      36

Görüşmek üzere.

Saturday, February 4, 2012

Pygame ile Zombi Oyunu Denemesi

Daha önce de bahsettiğim gibi Pygame ile uğraşmak istiyordum. Başlangıç için ufak bir zombi oyunu yapmaya karar verdim. Şu ana kadar, temel bazı şeylerin programlaması bitti, mermi ve zombilerin hareketleri gibi.

Bu aşamaya kadar yazarken, beni biraz da olsa zorlayan kısım mermilerin nasıl çapraz hareket edeceği oldu. Bu sorunu halletmek için mermilerin x ve y koordinatlarını belli bir açının sinüs ve kosinüsleriyle arttırarak çözdüm. Bu oyunda ise o açı, asker ve hedef arasında kalan açı.

Yalnız hala çözemediğim bi’ şey var. Hareket halindeyken ateş edince mermiler falso alıyormuş gibi gözüküyor. Bu olması gereken bir durum mu yoksa göz ardı ettiğim bir durum mu hala karar veremedim.

Bir sonraki aşama için ise eklenebilecek pek çok şey var gibi gözüküyor. Öncelikle, zombiler ve asker resimleri olarak kareler yerine resimler koymak istiyorum, tabii uygun spritesheet’leri bulabilirsem. Daha sonra, silahların geliştirilebilir olması, zombilerin bölümler geçtikçe daha hızlı hareket etmesi, bazılarının bize fırlatabilecekleri şeylerin olması aklıma ilk gelenler.

Ama bu aralar Unity3D'ye merak saldığım için devam eder miyim bilmiyorum.

Oyundan bir görüntü:


Kodu çok dağınık yazdığım için koymadım. Biraz vakit harcayıp düzelttikten sonra koymayı düşünüyorum.

Görüşmek üzere.