‫Merhaba ve bu konferansa hoş geldiniz.
‫Bir kod parçasını değişken sayılarda nasıl çalıştırabileceğimizi öğreneceğiz, böylece
‫bu alanın, bu tetikleyici bileşenin içinde üst üste gelen her nesneyi yazdırabileceğiz.
‫Gördüğünüz gibi ikimiz de içeride duruyoruz ve bir de gargoyle var.
‫Hem gargoyles adını hem de oyuncu plan adını yazdırıyor.
‫Şimdi bunun nasıl yapıldığını görelim.
‫Şimdi, buradaki kodumuzla ilgili sorun, aktör dizimizin içinde birden fazla aktör olabileceğidir.
‫Tüm aktörleri üst üste bindirerek görüntülemek ya da tüm bu aktörlerle bir şeyler yapmak
‫istiyorsak, kodun içinden geçebilmemiz gerekir.
‫İki ya da üç ya da dört ya da beş vb. olduğu durumlar için bir if deyimi yazmak son
‫derece verimsiz olacaktır. Ve kesinlikle her vakayı yakalayamaz çünkü dosyamızda
‫sınırlı sayıda satır var.
‫Bu nedenle, bir kod parçasını birden çok kez tekrarlamak istediğimizde, ancak kodu derlerken aslında bilmediğimiz
‫sayıda tekrarlamak istediğimizde, if deyimimizi değiştirmemiz gerekir.
‫If deyimi esasen, bu kodu çalıştırmalı mıyım yoksa çalıştırmamalı mıyım diyen bir şeyle, bu kodu
‫çalıştırmalı mıyım yoksa birçok kez, iki kez, üç kez, dört kez vb. çalıştırmalı mıyım?
‫Bunu yapmanın yolu vahşi ifade denilen bir şeydir.
‫Artık bir if deyimine çok benzer şekilde oluşturulmuştur.
‫Böylece while parantezlerinin içine bir tür boolean değeri koyarsınız ve ardından küme parantezlerimiz
‫olur.
‫Ve küme parantezlerinin içinde, while deyimimizdeki koşul yanlış olana
‫kadar tekrar tekrar çalıştırılmaya devam edecek olan kod bloğu.
‫Bu yüzden buna while deniyor.
‫Yani bu şey doğruyken, bu kodu çalıştırır.
‫Bu nedenle, bazen kodu hiç çalıştırmayabileceği için if deyimine benzer, ancak bir kod parçasını
‫yalnızca bir kez çalıştırabilen if deyiminin aksine, while deyimi, bu boole hiçbir zaman
‫yanlış olmazsa temelde sonsuza kadar çalıştırmaya devam edebilir.
‫Peki bir int 32 oluşturup buna index adını vermek ve sıfırdan başlatmak varken bu neden kullanışlıdır?
‫Ve sonra bu vahşi döngünün gövdesinden her geçişimizde, bu indekste depolanan değeri artırırız.
‫Yani indeks eşittir indeks artı bir diyebiliriz.
‫Şimdi C++'da bunu yapmak için bir steno vardır, bunun gibi index artı bir yapmak
‫yerine, plus plus index yaparsınız ve bu sadece index değişkeninde depolanan şeye bir ekler.
‫Tamam.
‫Yani sıfırdan başlıyoruz.
‫Her dolaştığımızda endeksi artırıyoruz.
‫Ve yapabileceğimiz şey, bu while döngüsünün etrafında sadece indeksimiz dizimizin sınırları içindeyken
‫dolaşmasını sağlamaktır.
‫Dolayısıyla, indeksin aktör nokta sayısından küçük olması gerektiğini söyleyebiliriz.
‫Yani dizinin boyutu budur.
‫Dizide beş öğe olduğunda, dizideki son öğenin dördüncü dizin olduğunu unutmayın.
‫Ve böylece endeks geçerli olduğunda, endeks dört beşten küçük olduğunda bunun doğru olacağını görebiliriz.
‫Ancak indeksimiz dizinin sonunu geçer geçmez, indeks beşe ulaştığında, aktör
‫numarası artık olmayacaktır.
‫Beş artık beşten az değil.
‫Böylece while döngüsü çalışmayı durduracak ve işlevin geri kalanıyla devam edecektir.
‫Bunun anlamı, şimdi yukarıda sahip olduğumuz kodu alıp yeniden yazabileceğimizdir.
‫Bunu alalım, kopyalayalım, keselim ve buraya, vahşi döngümüze yapıştıralım.
‫Ancak endeksi artırmadan önce, en önemlisi, yapacağımız şey aktör sıfırını
‫aldığımız bu sıfırı aktör endeksi ile değiştirmek olacaktır.
‫O zaman bunu takip edelim.
‫Bu nasıl olacak?
‫If deyimimizi kaldıralım çünkü bu biraz kafa karıştırıcı.
‫Böylece değişken indeksindeki değer sıfır olacak şekilde başlarız.
‫Şimdi işleri basit tutmak için iki aktörümüz olduğunu düşünün.
‫Sıfır ikiden küçük mü?
‫Evet.
‫Evet, öyle.
‫Böylece içeri giriyoruz ve sıfır numaralı aktörü alıyoruz, adını alıyoruz ve çıkışını yapıyoruz ve sonra indeksteki değeri bir
‫artırıyoruz.
‫Yani sıfırdan bire çıkıyor.
‫Şimdi while döngüsü koşulunu değerlendirmek için geri dönüyoruz ve diyoruz ki bir ikiden küçük mü?
‫Evet, öyle.
‫Daha sonra içeri girip birinci aktörü alabiliriz ve ardından adını alıp yazdıracağız.
‫Daha sonra indeksi tekrar ikiye çıkarıyoruz ve soruyu vahşi döngüde tekrar soruyoruz, iki daha
‫az mı diyoruz.
‫Bu sorunun cevabı hayır.
‫Böylece while döngüsünün gövdesini atlarız ve kodun geri kalanını yürütmeye devam ederiz.
‫Yani temelde ulaşmak istediğimiz şey bu.
‫Dizideki her bir aktörün adını yazdırmak istiyoruz ve bu kod parçası da bunu yapacak.
‫Devam edip derleyelim ve haklı olup olmadığımı kontrol edelim.
‫Devam edip oyuna basarsak ve ceza sahasına girersek, sadece BP oyuncusuyla örtüştüğümüzü görebilirsiniz.
‫Ya gidip gargoyle'umuzu alırsak?
‫Yalnızca sıçramaya yapıştırırsak, çirkin surun üst üste bindiğini görebilirsiniz.
‫Peki ya ben de devreye girersem?
‫Şimdi hem oyuncuyu hem de gargoyle'u aynı karede üst üste bindirdiğimizi görebilirsiniz.
‫Yani while döngümüz çalışıyor, dizide birden fazla aktör olduğunda bir kod parçasını birden
‫çok kez çalıştırıyor.
‫Şimdi, bu model çok yaygın olduğu için bir çeşit indeksimiz var ve döngüden her geçtiğimizde
‫bunu artırıyoruz, aslında C++'da bunun için bazı kısaltmalar var.
‫Visual Studio kodunuza dört yazarsanız, burada genişletebileceğiniz ve bunun genel bir yapı olduğunu
‫görebileceğiniz dört döngü için bir kod parçacığı vardır.
‫Burada T beden diye bir şey var.
‫Amaçlarımız doğrultusunda bunu INT 32 ile değiştirebiliriz.
‫Ve esasen bunun söylediği şey, for döngüsünün parantezleri içinde üç ifade olduğudur.
‫İlki, while döngümüzden önce indeks değişkenimizi ayarladığımız yere eşdeğerdir.
‫İkincisi, vahşi döngümüzün içine koyduğumuz şeye eşdeğer olan koşuldur.
‫Ve sayıyı aktör nokta sayısı ile değiştirebileceğimizi görebilirsiniz.
‫Son kısım ise temel olarak artı artıdır, ister önce ister sonra koyun, indeks çok önemli
‫değildir, ancak bunun indeksteki değeri artırdığını görebilirsiniz.
‫Yani vahşi döngümüzün sonuna koyduğumuz satıra eşdeğerdir.
‫Yani bu, vahşi döngümüzü kullanarak birden çok satıra yaymak zorunda kaldığımız şeyleri tek bir satırda bir araya
‫getiriyor.
‫İşte size basit bir meydan okuma.
‫Vahşi döngünüzü bir for döngüsüne dönüştürün.
‫Kodun gövdesini kopyalayacaksınız, indeksi bu isim indeksinden I olarak değiştireceksiniz.
‫Genellikle for döngülerinde kısaltmayı kullanırız, sadece dizin için bir kısaltmadır ve videoyu duraklatıp
‫derler ve test ederiz.
‫Şimdi bir dene.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Yani bu oldukça basit olmalı.
‫Burada indeks artı artı istemiyoruz.
‫Bu yüzden geri kalanı kesip atacağız ve aktörler dizisini index değişkeniyle indekslediğimiz yerde kanal değişikliği
‫yapacağız.
‫Bunu, yalnızca bu for döngüsü içinde kullanılabilen değişken IE olarak değiştireceğiz.
‫Tam döngü sözdiziminin bir başka avantajı da IE değişkeninin yalnızca for döngüsü içinde kullanılabilir
‫olmasıdır, oysa bunu burada Y döngüsünde bildirdiğimizde dışarıda kullanılabilir,
‫bu da daha sonra kullanabileceğimiz indeksleri kirletir, böylece bu vahşi döngüyü silebiliriz.
‫Ve for döngüsünün çok daha yoğun olduğunu görebilirsiniz ve sahip olduğu biraz garip sözdizimine
‫alışacaksınız.
‫Devam edip derleyelim ve gerçekten aynı işi yapıp yapmadığını kontrol edelim.
‫Gargoyle'ımı alıp üst üste binen aktörlerin yanına gelirsem, ikimiz de oyukta üst üste bindiğimizde gerçekten
‫de her iki aktörümüze de baskı yaptığını görebilirsiniz.
‫Harika bir şey.
‫Bu derste yeni bir programlama fikrini, döngüler fikrini gördük ve özellikle while
‫döngüsü ve for döngüsü ile karşılaştık.
‫Bir sonraki derste görüşürüz.