Forum: Ders Arası RSS
MVC -> D <- SDL'nin Buluştuğu Nokta
Sayfa:  önceki  1  2 
Avatar
Salih Dinçer #16
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 7396
Öncelikle hakkını helal et hocam; bu kadar uzun iletiyi yazarken vakit harcattığım için. Çünkü bu vakit şu bayram günü sevdiklerinle geçireceğine bununla uğraşmana neden oldum...:blush:

Şimdi aşağıya yazacaklarım (tabi siz bu satırları okuduğunuz da yazdıklarım olacak!) real-time'dır...:)

- Objektif olmalıydım ve tüm olumsuz düşüncelerimi bırakıp MVC'nin ruhuna uygun geliştirme yapmalıyım...
- Evet, aklıma ekran dışına çıktığında verdiği hataya bakmak geldi.
- İlk olarak boyaci.d dosyasını açtmalıyım çünkü seçimin gerçekleştiği bölüm burası. (controller olmalı?)
- Ama önce tüm dosyaları Ali.tar.gz haline getirmeliyim. (iyiki hatırladım!)
- Şimdi kağıt.d'deyim orada boya() diye bir işlev var ama nesne main()'de kurulmuş/ilklenmiş olmalı...
- Evet öyleymiş! Zaten iki sürümün ortak noktası kağıt nesnesi ve şu satır boyacı.kullan(kağıt);
- En başa döndüm ama buradan kağıt.d'ye bakayım şimdi burada iki döngü var biri MVC tekniği...
- Sanırım boya() işlevinin döngüsü içinde bir if( ... < kareler.length) ile halledilebilir
- Opps, bilgi eksikliği! Çift boyutlu dizilerde bunu nasıl yapacağımı bilimiyorum...:)
- N'apıyoruz, hedef D.ershane...
- Bulamadım ama pratik zeka ile denemeliydim: deneme[0].length.writeln; (diğer boyutu veriyor)
- Olmadı...:(
        foreach (yer, renk; benekler) {
          if(yer.satır < kareler[0].length && yer.sütun < kareler.length) {
            kareler[yer.satır][yer.sütun] = renk;
          }
        }
Elbette bu ilk denememdi ve buraya kadar programcılık tecrübem ile alakalı. Ama Ali.tar.gz'yi oluşturduğu saate bakayım bir:

23:19 imiş...:)

Şu satırları yazdığım anda 23:54 ki yaklaşık yarım saattir uğraşıyorum. Birazdan bu iletiyi göndereceğim ama devam etmeliyim. Çünkü MVC'nin başka bir geliştirici için ne kadar iş kolaylaştırıcı olduğunu anlamaya çalışacağım. Hedefte yer.d dosyası var.

Son olarak Ali hocama böyle bir deneyimi yaşattığı için teşekkür ederim...

Dip Not: Bu arada denemenin ilk derlemesinde toplam 6 dosyayı (5906 byte/224 satır) söylendiği gibi ve Linux32 bitte ortamında derlendi. Yaklaşık 1 MB. dosya oluştu. Sanırım -gc ve -unittest parametreleri buna etkili oldu. Bu parametreleri çıkarınca yarı yarıya düştüğünü belirtmeliyim.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #17
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Salih Dinçer:
Öncelikle hakkını helal et hocam; bu kadar uzun iletiyi yazarken vakit harcattığım için.

Ne demek! Sen bu konuyu açmasaydın ben de bu deneyimi edinemezdim. :)

        foreach (yer, renk; benekler) {
          if(yer.satır < kareler[0].length && yer.sütun < kareler.length) {
            kareler[yer.satır][yer.sütun] = renk;
          }
        }

Ben de aynen öyle yapmaya başlamış ama sıfır indeksli satırın bulunmayabileceğini düşündüğüm için boşvermiştim. Çözüm olarak kurucu işlevde satır adedi olarak sıfırı reddedebilirdim ama işler karmaşıklaşacaktı.

Onun için sütunAdedi diye bir üye değişken eklemek daha iyi:

        foreach (yer, renk; benekler) {
            if ((yer.satır < kareler.length) &&
                (yer.sütun < sütunAdedi)) {  // <-- sütunAdedi yeni üye
                kareler[yer.satır][yer.sütun] = renk;
            }
        }

Ali
Avatar
Salih Dinçer #18
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
boyacı.d modülüne bir üye eklemeyi ben de denedim ama kafam karışmış olacak ki length'in verdiği değeri / ilklenirken dönenleri x, y olarak eklemişim...:)

Vallahi ne yalan söyleyeyim (yalan değil... :-D) hala bir kaç sınıf arasında gidip geliyorum. Dedim ya belki tecrübe ile alakalı ama hep söylerim, "bir şeyi tablo gibi toplu görmekten hoşlanıyorum" diye...

Sanırım bu MVC bana çok ters çünkü lazım olan bir yapı (Yer) gitmiş başka dosyada. Orada kardeş kardeş dursalar ve programcıyı üç kategori ile kalıba sokmasalar olmuyor mu...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
Salih Dinçer #19
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Meğer satırla sütunu karıştırmışım! Çalışıyor...:)
  0| .....o.o..
  1| .....o.o..
  2| .....o.o..
  3| .....o.o..
  4| .....o.X..

if(yer.satır < kareler.length &&
   yer.sütun < kareler[0].length)
     kareler[yer.satır][yer.sütun] = renk;
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #20
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #18
Salih Dinçer:
Sanırım bu MVC bana çok ters çünkü lazım olan bir yapı (Yer) gitmiş başka dosyada. Orada kardeş kardeş dursalar ve programcıyı üç kategori ile kalıba sokmasalar olmuyor mu...:)

Farklı dosyalarda bulunmaları MVC'ye engel değil. Oradaki bütün kodları tek dosyada toparlasan yine de MVC oluyor çünkü Kağıt yine de yalnızca Kağıtİlgilisi arayüzünü tanıyor, vs.

Ali
Avatar
Salih Dinçer #21
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet hocam, bu interface kümesini bilmiyorum ve okusam iyi olacak...:)

Hep açıklamalarda "observer pattern" dikkatimi çekti; ayrıca MVC arasında haberleşme ihtiyacı. Bunun için insan ek efor sarf ediyor gibime geliyor. Yine de körü körüne önyargılı değilim, anlamaya çalışıyorum...

...::: OKUDUM :::...
extern gibi bir şeymiş...:)

Biz extern'ü harici kütüphanelerdeki işlevleri/yapıları programımızda çağırabilmek için kullanıyoruz. Bu da dahili olanakların ondan türeyen tüm sınıflardan çağrılabilmesi içinmiş. Aslında buna türetmeden çok bağlama da diyebiliriz. Aynı yere/interface'e bağlanan sınıflar sanki birlikteymişler gibi birbirlerine bağlanıyor. Hoş bir özellikmiş, kullanmazsam ayıp olur...:D
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj 2 defa değişti; son değiştiren: Salih Dinçer; zaman: 2012-08-20, 16:38.
Değişiklik nedeni: Okuyup anladıklarımı ekledim...
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2 
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 06:57:49 (UTC -08:00)