biz bunu fb'da millete selam verirken yazıyorduk adamlar oynaya oynaya anlatıma kaçmış :D

x-files bunu yazdı: hacı derlediğin bir progamı paylaşabiirmisin? müdür orda detaylı biçimde açıklamıştım zaten devc++ da veya vc++ da veya eclipse de falan kopyala derle çalıştır :) havalı bir şeyler yazdığımı hayal edin

hacı derlediğin bir progamı paylaşabiirmisin? //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şofrsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay

Müridler nceden yazdığım bir ders vardı, bir forum için yazıyordum şyle 40-45 ders düşünüyordum ancak forumdan ümidi kesince bir ders yazdıktan sonra devamını getirmemiştim işte o başlangıç dersim..: Merhaba arkadaşlar ben BerkaySizlere c++ konusunda birlikte programlar yazıp c++ ı ğreneceğiz. Ama ncelikle oyun programlamanın biraz mantığından bahsetmek istiyorum. Eğer biz iyi bir bilgisayar yazılımcısı olmak istiyorsak yaptırım gücümüzü arttırmalı, problemlere karşı hızlıca çzüm bulmayı ve bunları programlamayla birleştirme gücümüzün arttırılması istenir bizden. Aslında programlamadaki mantıkla günlük hayatımızdaki mantık aynı sayılır. rneğin Berkay sınıfta kalırsan oyun konsolunu unut veya Berkay eğer bana para verirsen sana bu parçayı veririm gibi programlamadada işleyiş byledir :)C++ dünya üzerindeki en popüler dillerden biridir. zellikle oyun yazılımcıları için dahada popülerdir ve genel olarak gerek hızından gerek esnekliğinden, gerek desteklenmesinden oyun programcıları c++ ı tercih eder. Burada desteklenmesinden dediğimiz şey rneğin c++ ile birlikte bir çok kütüphanenin kullanılabilinecek olmasıdır. Bunlardan en popüleri Direx'tir. Ancak Direx'in başka platformlarda çalışmaması . DireX in bir başka ktü ynü ise başlangıç için çok zor olmasıdır. Bunun dışında kullanabileceğimiz OpenGL, Glut, SDL, Allegro, win32 ve daha gerçekten bir çok kütüphane vardır. Bunların hepsi oyun kütüphanesi olmamasına rağmen bu kütüphanlerle gerçekten çok iyi çıkartılmış oyunlarda bulunmaktadır. Bu arada Direx den bahsedmişken OpenGl nin bir eksi ynü ise Microsoft OpenGl yi desteklememektedir . Genel olarak birazda olsa C++ ile Oyun programlama hakkında biraz bilgi edinmiş olduk. Biz ders serimiz boyunca c++ da dos ekranını kullanarak çalışacağız. Bu ders serimiz sonunda bir kütüphaneye geçiş yapabiliriz. Ancak şunuda bilmenizi isterimki bu ders serimizi ğrenmeden kesinlikle diğer alternatif kütüphanelere geçemeyiz. Yani dos ekranında çalışmamız kesinlikle sizi sıkmamalı. Şimdi ders serimiz boyunca çalışacağımız programımız DevC++ ı indirmenizi istiyorum. DevC++ ın son sürümüne şuradan ulaşabilirsiniz:http://www.bloodshed.net/dev/devcpp.html Kurulumunu anlatmıyorum. Eğer kurulumunda veya kurulumdan sonra sıkıntı çekerseniz bana . m atabilirsiniz. Evet artık bu kadar teori yeter somut birşeyler ortaya çıkartalım. Şimdi sizden DevC++ da file menüsünden new e gelip ordan bir source file yani kaynak kodu açmanızı istiyorum. Bu derste sizinle bir oyun sonu kodu yazacağız yani şyle düşünün herşey bitti adamın 5 canı vardı ve hepsi tükendi ekrana oyun bitti yazdırmasını istiyoruz. Oyun Bitti yi ekrana nasıl yazdıracağız ona bakalım. //ilk programımız #includeint a;int main Daha nceden byle bir kodla karşılaşmadıysanız korkmanıza gerek yok hepsini zaten açıklayacağız :)İlk satırımızda şu iki tane slash işareti koyarak ilk programımız dediğimiz şey ne oluyor demiş olabilirsiniz. Bizim o iki tane slash koyarak yazdığımız şey yorumumuz oluyor yani derleyicimiz bu satırı atlıyor yani algılamıyor. Bu satırı yanlızca biz algılıyoruz. Bu şimdi size manasız gelebilir yorum satırı benim ne işime yarıyacak demiş olabilirsiniz ancak uzun projeler yazdığınız zaman inanın çok işinize yarıyor daha sonra o satıra gelip ben bunu neden yazdım acaba demiyorsunuz. Yanlız tabi bu çift slash işaretimiz yanlızca bir satırımız için geçerli oluyor. Yani biz çift slash koyup alttaki satırada yorum yapamıyoruz rneğin //ilk programımızekrana oyun bitti yazdırıyor#includeint a;int main İşte yukarıdaki gibi birşey sz konusu olamıyor derleyici 2. satırda hata veriyor. Peki ben uzunca birşey yazıcam ve satırlara teker teker "//" koymak istemiyorum diyebilirsiniz bunun için şyle bir şey yapıyoruz. Hemen bir rnekle gstereyim: / ilk programımızekrana oyun bitti yazdırıyor /#includeint a;int main İşte bylelikle dilediğimiz kadar yorum yazabiliyoruz bu iki işaret arasına. Peki yorum satırını anladık şimdi diğerlerine gelelim.#include dediğimiz zaman # işareti derleyiciye nişlemci dediğimiz program çalışıyor. Sonrasında yazdığımız "include" içerir manasına geliyor yani #include dediğimiz zaman iostream kütüphanesini programımıza ekliyor.iostream kütüphanemiz bizim ana kütüphanemizdir eğer olmazsa biz programda yazamayız. Dersin başındada belirtiyordum c++ alternatif kütüphanelerle destekleniyor diye rneğin biz SDL kütüphanesi ile oyun yapacağız o zaman bizim farklı bir program indirmemize gerek yok SDL kütüphanesini kullanmamız için. Sadece kütüphane dosylarımızı indiriyoruz, en basit haliyle sylüyorum devc++ a SDL kütüphanesini tanıtıyoruz sonra #include yazıp SDL kütüphanesi ne ise onu "<" ">" işaretlerimiz arasına yazıyoruz. İlerleyen derslerde dahada iyi anlayacaksınız. Sonraki satırımızda main fonksiyonumuzu çağırıyoruz . Fonksiyonu çağırdıktan sonra küme parantezlerimizi açıyoruz " ". rnek verecek olursak: #includemain Bu arada yeri gelmişken şunuda hatırlatmak istiyorum. rneğin bir satırda kodumuzu yazdık ve bir aşağıki satıra indik satırımızda diğeriyle grünümü uysun diye "space tuşuna üstteki kodun karşısına gelene kadar basmamız gerekmiyor zaten byle birşey olsaydı programcılar hiç boşuk bırakmazdı :)Bunu yapmak için Tab tuşunu kullanıyoruz. rneğin şimdi sizde derleyicinizi açın ve tab tuşuna basın imlecin ileri gittiğini greceksiniz. Bunu yapmamızdaki amaç kodların karışmaması daha düzenli durması içindir. Peki bir alt satırımıza geçiyoruz altta std::cout<yazıyor. Peki cout komutumuz iostream kütüphanesinde tanımlanıyor yani iostream kütüphanesini derleyicimize tanıtmazsak bize hata verecektir. Bylelikle belki kütüphaneyi neden tanımladığımızı dahada iyi anlamış olabilirsiniz. Peki daha iyi anlamanız için cout u şylede bir rnek verebiliriz //bu kod daha iyi anlamanız içindir normalde çalışmaz#includeint a;int main yani cout dediğimiz şey yazdırma komutumuzdur. Bu arada "int a ve cin>> a" dediğimiz şeyi biraz sonra anlatacağım. Peki anladık ama std ne alaka demiş olabilirsiniz. Eğer ben std yi kullanmamış olsaydım çıkış operatrlerimi "<Biz bir yazı yazdırıyoruz ve bu yazının ekranda grünebilmesi için bir çıkış operatrüne ihtiyacımız var eğer çıkış operatrü olmazsa ekrana yazımızı yazmaz. Peki anladık diye umuyorum şimdi en başta int a yazmıştık bu ne alaka neden yazdık diyebilirsiniz. Şyle anlatayım int, integer dan gelme yani bir tam sayı tanımlıyoruz bizim bir çok değişken tanımlamalarımız olacak int bunlardan sadece biri ileriki derslerimizde greceğiz. Yani biz burda a sayısının bir tam sayı olduğunu syledik. Mesela matematik problemlerinde hocanız bunun sonucu tam sayı çıkacak demesi gibi birşey. Pekala burayıda anladık peki cin nedir diyor olabilirsiniz. Bu cin sizin evrendeki cinlerden değil :Drneğin cin>>a dediğimiz zaman bizden a sayısına bir değer girmemizi bekler çünkü ben int a dediğim zaman karşısına bir değer vermedim rneğin int a = 10;demedim. Neden bunu yaptım çünki programın beklemesi için isterseniz cin>>a; kodunu derleyiciden kaldırın ve bakın ne oluyor. Program saniyesinde açıldı saniyesinde kapandı değil mi? Çünki program grevini yaptı ve kapandı neden beklesin ki. Farklı yntemlerinide greceğiz beklemesi için şimdi devam edelim. Şimdi programımızın 2. versiyonunu yapalım. Yani teker teker std ile yok cout muş yok cin miş tanımlamayalım bunun için ne yapacağız. Şyle bir rnek vereyim. #includeusing namespace std;int x;int main İşte burada using namespace std; diyerek teker teker std::cout; , std::cin; olarak belirtmek zorunda kalmayacağız. Bylelikle std yi bir kütüphane olarak algılarsak kütüphanelerin grevlerini daha iyi algılamış olabiliriz. Bu arada kodu mutlaka kendiniz yazmaya çalışın ben anladım deyip 2. ders, 3. ders okuymayın mutlaka kodları kendinz yazın ve burda kodu yazarken karşınıza gelebilecek zorluklat-kodun sonuna zel yerler hariç size derslerde sylemeye çalışacağım rneğin burda main'in yanına ve kütüphane tanımladığımız zaman kodun sonuna ";" koymamamız gerekiyor.-ekrana bir yazı yazdırırken yazıyı " " içine almamız gerekiyor.-çıkış operatrleri farklı. Ve son olarakKodlarımızın sonuna cin. get ; korsak cin ile yok x yok a ile uğraşmak zorunda kalmayız aslında ilk yaptığımız yntem yanlıştı çünki orda program bizden bir sayı girmemizi bekliyor ileriki derslerimizde greceğiz sonra o sayıyı aldıktan sonra o sayıyla başka işlerde yapacağız yok o girdiğin sayı şundan küçük olursa şunu yap bunu yap gibi. Normal Şekliyle: #includeusing namespace std;int main Bir sonraki derste grüşmek üzere hoşcakalın... :) havalı bir şeyler yazdığımı hayal edin