Forum: SDL RSS
SDL Mini Modülü
sdlmini.d
Sayfa:  1  2  sonraki 
Avatar
Salih Dinçer #1
Üye Ock 2012 tarihinden beri · 1908 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: SDL Mini Modülü
Merhaba,

Söz verdiğim gibi, denemelerimi yaptığım sdlmini.d modülünü az önce yükledim. Kullanmak için dosya ismini sağ tıklayıp farklı kaydetmeniz yeterli. İçinde, ekrana rasgele çokgen basıp temizleyen ve ilk ESC'de ekranı durduran, ikincisinde yazılımdan çıkan bir debug kodu mevcut. Ama kendi projelerinizde denemek için şu bir kaç satır yeterli görünüyor:
import sdlmini;
 
void main() {
    /* with() ile kuruyoruz ki sınıfın tüm olanaklarından sanki içindeymiş gibi faydalanalım,
     * ancak renk yapısını sınıf içine almadım ve eğer black seçerseniz SDL'nin varsayılanı
     * olduğundan değişim olmaz. Ama kurucunun ve tüm işlevlerin varsayılan rengi beyaz!
     * Aşağıda bunu göstermek için gereksiz yere kullandım...:)
     */
    with( new scene(600, 400, "Japon Bayrağı", clr.white) ) {
      do {
           circle( w/2, h/2, cast(int)(h/(5/3.0))/2, clr.red );
           /* keyEvent() işlevi eğer:
            * 0 olursa, sahne ESC beklemek üzere durur (döngüyü dondurur/by-pass)
            * 1 olursa, arada ESC basıldımı diye bakar ve basıldıysa çıkar
            * 2 olursa, arada ESC basılmasına iki defa bakar: ilkinde durur, ikincisinde çıkar (0 durumu)
            */
      } while( escEvent(1) );
    }
    SDL_Quit();
}
Henüz keyEvent() işlevini fazla geliştirmedim. Zaten sdlmini.d içinde tanımlı pek fazla tuş yok. İleriki sürümlerde ihtiyaç duyulabilecek olası işlevler ile birlikte geliştirebiliriz.

Şimdilik içeriğinde, sırasıyla şu işlevler var:
  • std.math  sınıfındakiler public;
  • std.random  sınıfındakiler public;
  • int SDL_UpperBlit (SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
  • int SDL_SetColorKey (SDL_Surface *surface, uint flag, uint key);
  • int SDL_SetAlpha (SDL_Surface* surface, uint flags, ubyte alpha);
  • int SDL_FillRect (SDL_Surface *dst, SDL_Rect *dstrect, uint color);
  • int SDL_Flip (SDL_Surface *screen);
  • int SDL_Init (uint flags);
  • int SDL_PollEvent (SDL_Event *event);
  • SDL_Surface *SDL_SetVideoMode (int width, int height, int bpp, uint flags);
  • SDL_Surface *SDL_DisplayFormat (SDL_Surface *surface);
  • SDL_Surface *SDL_DisplayFormatAlpha (SDL_Surface *surface);
  • SDL_Surface *SDL_CreateRGBSurface (uint flags, int width, int height, int depth, ...);
  • void SDL_Quit ();
  • void SDL_Delay (uint ms);
  • void SDL_FreeSurface (SDL_Surface *surface);
  • void SDL_UpdateRect (SDL_Surface *screen, int x, int y, uint w, uint h);
  • void SDL_WM_SetCaption (const char *title, const char *icon);
  • class draw (int width, int height, string name, clr color=clr.white);
  • void setBackground (clr color);
  • void setPixel (int x, int y, int c=clr.white);
  • void line (int x0, int y0, int x1, int y1, int c=clr.white);
  • void polygon (double x, double y, double r, int sides, int c=clr.white, int a=0);
  • void curve (int x0, int y0, int x1, int y1, int x2, int y2, int c=clr.white);
  • void yuvarlak (int x, int y, int r, int c=clr.white);
  • bool keyEvent (int type);

-16 Ekim, sınıf ismi draw-> scene olarak değişti ve keyEvent yerine de ayrıyetten escEvent eklendi...
-7 Mayıs, itibariyle keyEvent() sınıfı bitti ve test aşamasına geçildi...

Kolay gelsin...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj 5 defa değişti; son değiştiren: Salih Dinçer; zaman: 2013-05-07, 01:38.
Değişiklik nedeni: Açıklama ve işlev listesini ekledim...
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4481 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Çok güzel. :)

Gözüme çarpan iki şey:

- 'draw' emir halinde 'çiz' anlamına geldiği için 'çizim'in karşılığı oan başka bir isim daha uygun olabilir

- SDL_Quit() tek başına garip duruyor. O bu kapsamda çağrılınca SDL_Init()'in de bu kapsamda olması gerekiyormuş gibi geliyor. Eğer SDL_Init() otomatik olarak çağrılıyorsa neden SDL_Quit() de öyle olmasın gibi düşünceler... :)

Ali
Avatar
Salih Dinçer #3
Üye Ock 2012 tarihinden beri · 1908 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
- 'draw' emir halinde 'çiz' anlamına geldiği için 'çizim'in karşılığı oan başka bir isim daha uygun olabilir

Elbette Türkçe'deki 'çiz'i veya başka bir şeyi kullanabiliriz; bu ilk aklıma gelendi. Aynı zamanda with() ile kullanılmadığında şöyle bir anlamı da var:
auto Draw = new draw( /*...*/ );
Draw.polygon( /*...*/ );
Tabi işin anlamından yola çıkarsak, setBackground() işlevi daha çok Window sınıfında olması gerektiriyor...:)

acehreli:
- SDL_Quit() tek başına garip duruyor. O bu kapsamda çağrılınca SDL_Init()'in de bu kapsamda olması gerekiyormuş gibi geliyor. Eğer SDL_Init() otomatik olarak çağrılıyorsa neden SDL_Quit() de öyle olmasın gibi düşünceler... :)

Belki iki değil bir çok şey olabilir; düzeltecek/ekleyecek. Belki değil, mini olduğu için genişletmemek gerek...:)

Aslında temel aldığım düşünce "gereksiz bir şey olmamalı" üzerindeydi. Haklısın hocam, SDL_Quit() sanki sınıfın sonlandırıcı işlevi gibi anlamı olduğundan Draw.Quit() olmalı veya sonlandırıcı işlevine (~this) bunu taşıyabiliriz. Hem ikinci söylediğim şey sayesinde tek satırlık bir ayrıntıdan kurtulmuş oluruz. Hoş bu işlevi kullansanız da oluyor, kullanmasında! Çünkü yazılım sonlandığında hafıza geri veriliyor. Ama mutlaka bir faydası vardır...

Gereksiz şey olmasın diye setBackground() işlevini de kaldırmayı düşünüyordum. Çünkü zaten halihazırda SDL_FillRect() işlevi vardı ki onu kullanıyorum. Ama parametreleri çok olduğu için böyle bir üye dahil etmek cazip geldi.

Şimdi sırada yapmaya çalıştığım şu işlevler var: (ilki basit ve koymam gerekirdi!)
  • getPixel();
  • fillPolygon();
  • rotateSurface();
  • resizeSurface();

Sanırım ikinci söylediğim biraz zorlayacak bir algoritma...:)

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1908 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
Merhaba...:)

(6-1) + x insanoğlundan (bu başlığı en az 6 üye ziyaret etmiş!) hiç mi ses seda çıkmaz? Yani bu başlığa bakıp hmm deyip başka işlerinize geçtiyseniz ben, biz burada boşa yazıyoruz. Emeğe saygıyı da geçtim yani kimseden hiç bir iltifat beklemiyorum. Ama gel gör ki insanın geliştirme şevki kalmıyor...:(

Buna inat yeniden geliştirmeye başlayacağım ama bu başlıkta 1-2 kişinin yazışması olacaksa bunları hiç bir zaman paylaşmayacağım. GitHub'da da bulamayacaksınız, hiç sevmesem de kendime saklayacağım...:)

Şimdi bir dizi güncelleme yapmam gerekli ve bir gün Derelict'den daha iyi şeyler yapabileceğimi de düşünüyorum. Tabi Türk programcıları birbirlerine ilgileri bu düzeyde olursa sanırım hiç birimizden bir pok olmaz. Sözüm meclisten dışarı çünkü çevremizde kendini bir pok zannedenler var ve muhtemelen onlar zannetikleri veya zannedildikeri (pok) gibiler...:)

Forumlara bakıyorum da soru sorup kaybolan ve belki de çoğu öğrencilik evresinde olan insanlar var. İnsan hiç mi gerip dönüp teşekkür etmez veya aldığı notu yayınlayıp kodun işe yararlılığına değer biçmez. Sonuçta bu forumlarda yazılanlar site yayında kaldığı müddetçe bir çok kişi faydalanıyor; tarihin tozlu sahnelerinde kaybolmuyorsa...

Neyse, içimi dökeyim dedim! Amacım kimseyi kırmak değil ve kimseye de laf sokmak istemedim. Ama ciddi bir sorun var biz Türklerde, bunu aşmamız lazım! Hoş aşacak çok şeyimiz var...:(

Sevgiler, saygılar...

Dip Not: keyEvent() işlevi üzerine çok yük yüklemeye başladım. Bu durumda escEvent() ismine çevirmeyi düşünüyorum. Çünkü yukarıda verdiğim ilk kod çok çok basit ve basit uygulamalar yazarken çok kullanışlı görünüyor. İlerleyen günlerde karmaşık işlevler ile karışmaması için işlevin ilk kopyasını escEvent() yaptığımı bildiririm. Ne dersin Ali hocam? Sorum sana çünkü kimse bir şey demiyor...:(
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj Salih Dinçer tarafından değiştirildi; zaman: 2012-10-15, 22:05.
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4481 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bence büyük iş başarıyorsun. Ne kadar çok kod çıkartmışsın. :) Ama insanlar biraz kendi hallerine çekildiler herhalde. SDL ile zaten en çok Erdem ilgileniyor. Onun da kursa boğulmuş olduğunu biliyoruz.

Ben şimdilik biraz da bilinçli olarak SDL'le oynamak istemiyorum. :-/

keyEvent'e baktım. Belki henüz anlamadığım nedenleri vardır bana karmaşık göründü. Özellikle şunları farkettim:

  • keyEvent'in davranışının int türündeki bir parametreye bağlı olması kullanışlı olmayabilir. Kodda keyEvent(2) görüldüğünde ne olduğu kolay anlaşılmıyorum. Esc'e iki kere mi basılmalı? Yoksa basılıp sonra kaldırılmalı mı? Gibi sorular belirebilir... :)

  • Bu kodu goto kullanmadan yazmayı denedin mi? Bana daha temiz olacakmış gibi geliyor.

  • Birden fazla return satırı da karışıklık doğurabilir. Acaba işlev basitçe tek akış biçiminde kodlanabilir mi.

  • İkinci SDL_PollEvent'ten sonra yalnızca event.type'a bakıyorsun çünkü herhalde bir önceki event SDL_KEYDOWN olduğuna göre olsa olsa Esc tuşu kaldırılmıştır diye düşünüyorsun. Acaba SDL_PollEvent nasıl çalışıyor? Arada atladığı event'ler olabilir mi? Örneğin o ikinci SDL_PollEvent yapılmadan hemen önce Esc tuşu kalksa ve hemen başka bir tuşa basılsa. (?) Bu sefer onun kalkmasını mı yakalayacağız. Tabii bu soru yalnızca event.key.keysym.sym'e bakılmadığını farkettiğim için belirdi. Yoksa olayı anladığımdan değil. :)

Belki de işlevin belge açıklamaları olmadığı için bu kadar soru soruyorum. :)

Ali
erdem (Moderatör) #6
Üye Tem 2009 tarihinden beri · 939 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Evet ben CS 188 ile uğraşıyordum ama bıraktım. Zevkli ve zor olmasına rağmen grafik algoritmaları ve veri yapıları konularında eksikliklerim olduğu için kursu bıraktım. Daha sonra geniş bir zamanda hem de algoritma ve veri yapıları dersini aldıktan sonra bu konuları çalışmanın zevkli olacağını düşünüyorum.

Şimdilik tekrar elektroniğe geri dönüş yaptım.

Ben Türkiye şartlarında bir oyun yazıp ya da grafik programcısı olarak tanılan bilinen çok az kişi biliyorum. Mesela Tale Worlds'ü geliştirenler ve Pusu'nun yapımcıları zamanında oyunyapimi.org sitesinde takılıyorlardı.

Yani bir John Carmack amca olmak biraz zor  :-)

Babamın bir lafı var. 'Yaptığın işi ilkönce kendin beğeneceksin' der. O yüzden bir işi yaparken, yaptığım iş hoşuma gidiyorsa, o işi yapmaktan zevk alıyorsam gerisi çok da önemli değil.

Zaten bilgisayar mühendisliğinde, programcılık okuyan arkadaşlardan böyle bir konuda fikir danışmak, bir şey sormak için elektronik postalar alıyorum. O zaman diyorum ki demek ki insanların programlama öğrenmesinde ufak da olsa bir katkımız da olsa ne mutlu.

Ali beyi zaten hiç söylemiyorum. O zaten bildiklerini bizle paylaşıyor, biz de başkalarıyla paylaşıyoruz.
Avatar
mert #7
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #4
Buna inat yeniden geliştirmeye başlayacağım ama bu başlıkta 1-2 kişinin yazışması olacaksa bunları hiç bir zaman paylaşmayacağım. GitHub'da da bulamayacaksınız, hiç sevmesem de kendime saklayacağım...:)

Salih,
her bir çalışmanı dikkatle izliyoruz ve çoğundan da faydalanıyoruz, böyle düşünmemeni öneririm.
Foruma katılım biraz da o an ile içinde bulunduğumuz sürecin diyalektiği şeklinde gelişiyor. O nedenle bazı konularla izleyiciler/katılımcılar tahmin ettiğimizden daha uzun sürede  etkileşebiliyor.

Sdl ile ilgili çalışmalar şu an bazı katıulımcılarımızın ilgisini çekmiyor olabilir. Diğer bir çok konu da da bu durum böyle olabilir. Bunun nedenlerinden birisi de bir çoğumuzun henüz öğrenci olarak bu platformu takip ediyor olmamızla ilgilidir.

Bu  belki gtkD için de, ilerlemiş konuların örnekleri için de böyledir. Örneğin ben kaç yıldır buradayım ama henüz senin tartışmaya açtığın konuların çok çok gerisinden takip ediyorum dili. Muhtemelen bir çok üyemiz de böyle bir aralıkta konuları takip ediyordur.

Bu durum senin çalışmalarını ve çabalarını kösteklememeli aksine biz yetişip geliştikçe o çabalarından ziyadesiyle faydalanıyoruz, bunu da bilmelisin.

Daha geniş bir zaman dilimine ihtiyaç duyuyoruzdur belki, aksi değil.
mert
Avatar
mert #8
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: bu arada
Bu arada hazır sen de bu konuyu açmışken, cidden eksikliğini hissettiğim bir konu var. Geçenlerde ali hocam'a da konuyu açmıştım kod örnekleri sunalım diye. O da beni ilgili http://ddili.org/ornek_kod/ bölüme yönlendirmişti; Örnek Kodlar bölümüne.

O zamandan beri gerçekte neyimn eksikliğini hissettiğimin ayırdına varmaya çalışıyorum ve sanırım: Öncelikle o bölüm en basit haliyle olabildiğince yalın kod örnekleri ile geliştirilmeli ve bunun yanında ders arası bölümünde mümkün olduğunca aşamalı ilerleyen kod örnekleri sunabilmeliyiz. Bir başlık altında bir kişi bir örneği alır, onu adım adım geliştirerek hem öğrendiklerini uygular, hem ardından geleceklere referanslar bırakır. Çünkü şimdiki durumda ben bile aradığım sadeliğe sahip kod parçasını uzun forum taramaları yapmadan bulamıyorum. O arada da aklımdaki soruya olan ilgim kayboluveriyor.

Sanırım son bir ayda en azından elli kez class, bir o kadar da struct sorgusunu sisteme vermişimdir. Yanıt hep aynı 24 adet forum sayfası, ama çoğunda da aradığım örneklerden yok. Yanlış anlaşılmasın bu taramalar da öğretici. Ancak dediğim gibi sonuca giderken oldukça da yoruyor.

Ali hocam izin verirse ve sistemimiz de uygunsa ders arası bölümünde alt başlık olarak böyle bir alanı başlatarak ön ayak olmak istiyorum açıkçası. Ve lütfen örnek kodlar bölümümüzü de olabildiğince yalın kodlarla geliştirebildiğimiz kadar geliştirelim derim.
mert
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4481 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Güzel fikir. "Merhaba dünya"dan başlayan ve gittikçe daha zor olanaklar kullanmaya başlayan bir kod bankası.

Böyle kodları bana gönderirsen hemen siteye koyarım. Eğer istersen forumda konu olarak gösterirsen belki birlikte gözden geçirmiş de oluruz.

Ali
Avatar
mert #10
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Hoş olur. Az evvel Salih ile de konuştuk konuyu. Yararlı olacağını düşünüyoruz. Böyle farklı seviyelerden de başlayabilen kod örnekleri sunarsak örneğin: ileride arayüzleri de kullanacak basit bir tasarımı işlev halinden alıp aşama aşama belirli bir ivmeyle geliştirelim. Hatta Ali hocam siz hariç; Zafer, Salih, Kadir, Erdem artık kimler katılmak isterse her birimiz bir başlıkta örneklerimizi geliştire geliştire sunalım.
Hatırlarsınız bir kahraman örneği vermiştim bir aralar da onu birlikte güzelce geliştirmiştik: http://ddili.org/forum/thread/512
O örnek daha basitinden alınıp son haline getirilebilir gibi düşünüyorum. En basitinden giderek karmaşığa ve elbette dershanedeki konu sıralamasına da uyaraktan (Önemli!)
mert
Avatar
Salih Dinçer #11
Üye Ock 2012 tarihinden beri · 1908 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Vakit faktörü hepimizin baş belası. Bir de Mert ağabey olayı bir kademe öteye geçirmiş ve demiş ki; arama yapıyorum ve istediğim sadelikte örnek bulamayınca ilgim de tükeniyor. Düşünün vaktiniz tükenmiş, kalan vakti daha verimli kullanabilmek için de motivasyonda gitti mi geriye kalıyor kayıp zaman parçacıkları...

Sadelik konusunda haklısınız. Zaten bugüne kadar yapmaya çalıştığım her şeyin basitini sorguladığımı ve/veya aradığımı görmüş olmalısınız. Mert ağabey ile telefonda konuşurken bunu da dile getirdim. Keza bu başlığın konusu olan SDLmini ve ilk iletideki örneğin basitliği fark ediliyor değil mi? Normalde başka bir dildeki SDL örneklerine bakarsanız karşınıza iç içe girmiş döngüler, bir sürü şartlı ifadeler ve sayısız işlevler ile karşılaşıyorsunuz. Burada ise tek yapmanız gereken sahneyi kurmak ve istediğiniz şekli çizmek.

Hoş sadelik bir yere kadar ne yazık ki. Örneğin bu SDLmini kesinlikle bir oyun yapmak için değil. Yani bu yapıyı koruyup olabildiğince geliştirseniz bile dünya hayatının kuralları çerçevesinden çıkamıyor ve ister istemez karmaşıklığa doğru yöneliyorsunuz. En doğal örneği belki insan vücudundaki sistemlerdir. Basiti ise güneşten gelen en temel enerji/parçacık olan fotonların bitki yapraklarına çarpıp besin döngüsünü başlatması olarak düşünebilir. Oysa bir bitkide bile nice karmaşık kimyasal reaksiyonlar olmalı...:)

Mert ağabeyin fikrini ise her iki yandan da destekliyorum.
- İster bana karmaşık bir işlev/kod/uygulama verin ve bundan sade bir şey çıkarın deyin; ben de gerekeni yapayım...:)
- İsterseniz bir konu belirleyelim ve herkes olabildiğince bu konu hakkında en sade kodu çıkarmaya çalışsın?

Bakınız şimdi aklıma gedi. Bunu bir yarış havasına da sokabiliriz. Aslında Ali hocam bizi açık ara ile mağlup edeceğinden kuşkum yok ama hoşumuza gidebilir. Çünkü Ali hocamın, bir kodu D'nin olanakları sayesinde nasıl basit ve zarif bir şekilde ifade edebildiğine sıklıkla şahit olmuşumdur.

Peki merhaba dünyaya geri dönelim ve Mert ağabeyin de yorum yaptığı şu başlığa ne diyelim?

Gerçekten ürkütücü mü? Çünkü hedefim bir çok olanağı göstermekti ve elbette objektif bir bakış açısıyla bakamıyorum. Acaba yaklaşık 1 sene önce D'ye ilk başladığımda bu koda ne derdim. Hmmm, sanırım şöyle derdim:
Hello ile World 5 harften oluştuğu için bunu substring gibi bir şey yapıyor ve ikiye bölüyor. Sonra bir döngü içinde her ikisini de farklı iki teknik ile ekrana yazıyor.
Şimdi ise koda baktığımda Ali hocamın geçenlerde bahsettiği çift işaretli ( % %) writef() çıktısıyla parantezler çok daha kolay olabilir. Hatta yanılmıyorsam std.string sınıfında olan split() işlevi ile çok daha akıllı bir şey yapabilirdik. Yine de dilim olayın göstermeyi ve bu konularda olabildiğince örnek çözmeyi tercih ederim.

Sevgiler, saygılar...
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-10-16, 23:41.
Değişiklik nedeni: Önemsiz, anlamı bozmayan yazım hatalarını düzelttim...
Avatar
mert #12
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Peki merhaba dünyaya geri dönelim ve Mert ağabeyin de yorum yaptığı şu başlığa ne diyelim?

Merhaba dünya örneği bir tane olmak zorunda değildir diye düşünüyorum.
mert
acehreli (Moderatör) #13
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4481 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
O da güzel fikir. D'de "merhaba dünya" yazmanın biç çok çeşidi kolaydan zora doğru gösterilebilir.

Ali
Avatar
mert #14
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Örneğin;
Basitçe bir merhaba başlangıç kodu şöyle sunulabilir;
import std.stdio;
 
void main()
{
   char dizgi[] = ['M', 'e', 'r', 'h', 'a', 'b', 'a', 'D', 'ü', 'n', 'y', 'a'];
 
   foreach (sırala; dizgi) {
      write(sırala, "");
   }
}

Bu kodun çıktısında dizgimizi char[] olarak seçtiğimizden dolayı 'ü' harfinin nasıl bozulduğu da gösterilmiş olunur.
Ardından aynı kod bu defa dchar[] olarak sunularak arasındaki farkların da değerlendirilmesi sunulur veya sağlanır.

import std.stdio;
 
void main()
{
   dchar dizgi[] = ['M', 'e', 'r', 'h', 'a', 'b', 'a', 'D', 'ü', 'n', 'y', 'a'];
 
   foreach (sırala; dizgi) {
      write(sırala, "");
   }
}

Yalınlık derken öğretme ve algı yalınlığı işlevlerini sağlasın demek istiyorum.
Bunlar gibi yine salihin sunduğu merhaba dünya örneği de yan örnekler olarak bölüme eklenebilir. Burada dikkat etmemiz gereken şey, ortak bir dili konuşuyor olmamız ve kodlama standartlarına harfi harfine uymamız olmalıdır ki her birimizin yazdığı kodlar açık seçik anlaşılabilsin.
mert
Bu mesaj mert tarafından değiştirildi; zaman: 2012-10-17, 02:14.
Avatar
Salih Dinçer #15
Üye Ock 2012 tarihinden beri · 1908 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Anlıyorum...

Basitten zora doğru ve olası hataları/geliştirmeleri göstererek...:)

O halde müzikten başlayalım mı?
enum Notalar { Do = 1, Re, Mi, Fa, Sol, La, Si }
Ama isterseniz artık ayrı bir başlık açalım. Fikir Mert ağabeyin olduğuna göre bu yükü onun üzerine atıyorum. Atttım bile...:D
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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:  1  2  sonraki 
Forum: SDL 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-09-25, 15:20:34 (UTC -07:00)