a. Kendi basit dxball oyunumuzu yapalım.
b. Öncelikle alandaki kedi kuklasına sağ tıklayarak sile basıp kaldıralım.
c. Öncelikle top kuklasını seçelim, topun değdiğinde sekeceği çubuğu ve yanacağı engelleri yeni kukladan; oyun bitince arka planda çıkmasını istediği görseli ise yeni dekordan oluşturalım.
Kodlar sırasıyla dekor, engel, top ve çubuk olmak üzere aşağıdaki gibidir;
a. Programı açtığınızda karşınıza çıkan kedinin yanına alanın sağ alt köşesinde bulunan yeni kukla sekmesinde bir köpek ve alanın sol alt köşesindeki dekor sekmesinden ise istediğiniz bir dekoru seçin.
b. Bu oyunda kedinin köpekten kaçmasını istiyoruz.
c. Önce kediyi hareket ettirebilmek için yön tuşlarını kodlayın.
d. Köpeğin devamlı kediyi takip edebilmesi için gereken kodları yazın ve bu kodları yazarken köpeğin hızının kedinin hızından az olmasına dikkat edin.
e. Aşağıdaki ilk kod köpek, ikinci kod kedi içindir
f. Daha sonra oyunu geliştirmek için süre ve puan verileri oluşturarak aşağıdaki gibi yapabilirsiniz.
g. Puan kazanmak için yeni kukla sekmesinden kedinin toplaması gereken nesneleri seçip hareketli veya sabit yapabilirsiniz.
c. mBlock programını açın ve aşağıdaki kodları yazın.
h. Aşağıda sırasıyla dekorun, kedinin, köpeğin, balonun ve oyun bitti yazısının kodlarını görebilirsiniz.
i. Eğer oyununuzu geliştirmek isterseniz seviye atlatma gibi özellikler de ekleyebilirsiniz.
j. Kedi, köpek, oyun bitti yazısı ve birinci balonun kodu aynıdır. Sırasıyla dekor, monash.pw ve ikinci balonun kodları ise aşağıdaki gibidir.
a. Öncelikle programı açtığınızda alandaki kedi kuklasına sağ tıklayarak kaldırın ve alanın sağ alt köşesinde bulunan yeni kukla sekmesinden balon kuklasını seçin.
b. Bu oyunda balonun ikizlerini yaratıp çoğaltıp ve isteği bağlı olarak balonların üzerine tıkladığımızda veya kenara değdiklerinde patlamalarını sağlayabiliriz.
c. Veri sekmesinden süre ve skor adında yeni veriler oluşturun.
d. Balon patladığında ses çıkmasını sağlayabilirsiniz. Bunu yapmak için diziler bölümündeki ses sekmesini kullanabilirsiniz.
e. Belli bir puandan sonra geçilmek üzere yeni seviyeler ekleyebilirsiniz.
a. İsteğe bağlı olarak Scratch programını açtığınızda alanda bulunan kedi kuklasına sağ tıklayarak kaldırıp alanın sağ alt köşesinde bulunan yeni kukla sekmesinden istediğiniz kuklayı seçebilirsiniz.
b. Kuklayı hareket ettirebilmeniz için gerekli olan kodlar aşağıdaki gibidir. Bunun dışında labirentin sonuna başka bir kukla ekleyerek kuklanızın ona değdiğinde ses çıkarmasını ve oyunun bittiğine dair bir yazı yazmasını da yine aşağıdaki kodlar ile sağlayabilirsiniz.
c. Labirenti oluşturmak için ise bilgisayarınızdan paint programını açarak orada bir labirent çizebilir ve sonra Scratch’e yükleyebilirsiniz ya da Scratch programının içerisinde bulunan yeni dekor kısmından bir labirent çizebilirsiniz.
d. Labirenti alana ekledikten sonra kuklanızı bir hedefe götürmek için alana yeni bir kukla daha eklemelisiniz.
e. Oyunu daha da geliştirmek için veri oluşturma kısmından oyuna süre ekleyebilirsiniz, yine aynı şekilde puan verisi oluşturarak ve başka hedefler koyarak puan kazanmalarını sağlayabilirsiniz.
f. Süre verisi için kediye eklenecek kod aşağıdaki gibidir;
Scratch eğitimi alarak sen de kodlamaya başlamak mı istiyorsun?
Eğer öyle ise, çok güzel bir içeriğe denk geldin 🙂
Bir şeyi öğrenmenin en iyi yolu, teorikle beraber pratik yapmaktır. Pratik yapmaya ne kadar erken başlarsan öğrenme sürecin de o kadar erken olur.
Scratch ile örnekler ve eğlenceli oyunlar yaparak öğrenmen için güzel projeler yaptık. Hem de videolu anlatımla!
Vakit kaybetmeden başlayalım mı? Haydi, hemen başlayalım.
Önce ne olduğunu öğrenmemiz lazım.
Bunun ile alakalı daha önceden yazmış olduğumuz yazıyı okumanı ve ilk videomuzu seyretmeni tavsiye ediyoruz. Yazı burada > Scratch nedir?
Yazıyı okuduysan, hemen ilk videomuzu dinlemeye hazırsın demektir.
İlk olarak hangi oyundan başlamak istersen aşağıdan seçebilirsin. Sıra ile gidersen daha kolay öğrenmene vesile olabilir.
Bu projemizde Scratch programında basit bir labirent ve labirentten çıkma oyununu yapacağız.
Bu projede kukla olarak bir top ve bir yeşil bayrak kullanacağız. Dekor olarak bir labirent resmi kullanacağız. Labirent resmini aşağıdan indirebilirsiniz. Labirent resmini dekor yapmak için bilgisayardan dekor yükle butonuna basabilirsiniz.
Aşağıdaki linke tıklayıp resim üzerine sağ tıklayarak indirebilirsiniz.
Dekoru indirmek için tıklayınız.
Tıkladığımızda labirentin başında olmasını istiyoruz. Bu nedenle belirlediğimiz koordinatları yazıyoruz. Daha sonra hareket etmesi için ok tuşlarının her birinin kodlarını yazıyoruz. Son olarak sürekli tekrarla kodunu yazarak topumuz labirent duvarlarına değdiğinde uzaklaşması için mavi renge değdi mi kodunu kullanarak kodlarımızı bitiriyoruz.
Sürekli tekrarla koduyla birlikte top bayrağa değdiğinde kazandın yazısının çıkmasını algılama koduyla sağlıyoruz.
Kısaca algoritma nedir? Scratch ile algoritma örnekleri yaparak ne kazanacağız bakalım. Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir. Algoritma, bilgisayarın adım adım ne yapması gerektiğini söyleyen bir taslaktır. Algoritma iki kelime ile aklımızda kalabilir: Programın tarifi!
Buradaki algoritma örneklerini yaparak; Scratch Programında arkaplan ekleme, kukla ekleme ve silme, sahne düzenleme gibi temel işlemlerin yerine basit algoritmik kodlarla tanışmış olacağız.
Scratch ile Kodlama Eğitimi için hazırladığım diğer Scratch Örnek Projelerine buraya tıklayarak ulaşabilirsiniz.
Bu makale içerisinde bulacağınız Scratch algoritma örneklerine aşağıdaki menüye tıklayarak direkt ulaşabilirsiniz.
Her bir yazılım oluşturulmadan önce algoritma hazırlanır. Daha sonra bu algoritmadaki adımlara göre kodlar yazılarak, program oluşturulur.
Bir Algoritmanın;
Programlamayı ilk öğrenmeye çeşitli temel konularla başlanır. Bunlar kısaca değişkenler, operatörler, şart blokları, döngüler, diziler, metotlar ya da fonksiyonlar gibi temel konulardır. Kullanıcıdan girdi almak, bu girdileri değişkenlere atayarak çeşitli işlemler gerçekleştirmek yine ilk programlamaya başladığımızda yaptığımız işlemlerdendir. Scratch ile algoritma örnekleri yaparak programlama becerilerimizi geliştirip, algoritmalar kurabilir ve bunu anlaşılır bir dille kodlayabiliriz. Böylece temel mantık kafamızda yer edinmiş olur.
Programlamanın temel yapı taşlarından biri yukarıda bahsettiğimiz gibi şart blokları diğer bir ifadeyle koşullu ifadelerdir. Mantığı kolay ve çoğu zaman kullandığımız bu yapılar programın akışını, şartların sağlanıp sağlanmamasına göre değiştirir. Programlamada koşul sağlanırsa bunu yap, yok hayır sağlanmazsa bunu yap diyebileceğimiz yapıdır ve bunun sayesinde programın akışını değiştirebiliyoruz. Programlama dillerinde if-else, if-else if-else, if- elif-else gibi karşılıkları olan bu yapının Scratch’te karşılığı “eğer ise değilse” blokları. Kontrol bloklarının altında görebilirsiniz. Altıgen olan boş bırakılan yer, koşul gireceğimiz alan olacak. Zaten İngilizce de, if kelime anlamı olarak eğer , else ise aksi halde, değilse anlamına geliyor. Örneğin 18 yaşından büyükse ehliyet alabilir, 18 yaşından küçükse ehliyete alamaz dediğimizde ehliyet alma yaş koşuluna bağlı olmaktadır. Ya da sınavda 50 ve üzeri alırsa geçer, 50den aşağı bir not alırsa kalır dediğimizde sınıfta kalma aldığı not koşuluna bağlıdır.
Operatörler tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına denir. Örneğin toplama işlemi yapmak için + operatörünü kullanırız. Ya da bir karşılaştırma yapacaksak ><= operatörlerini kullanırız. Bunun gibi bir çok operatör mevcut. Örnekleri yaptıkça öğreneceksiniz.
Değişkenlere gelelim. Çok sade ve basit bir tanımla şunu diyebiliriz: Bir değeri tutmak, saklamak istediğimizde kullanırız. Örneğin legolarınız var. Legoları daha sonra tekrar bulmak ve oynamak için bir kutuya koymanız gerekir. Yoksa aradığınızda bulamazsınız. Değişkenlerde buna benzer. Oyun içerisinde can, süre, puan gibi değerleri tutmak isteriz. Can değeri kullanıcı her yandığında bir azalsın ya da süre değeri her bir saniye de bir artsın gibi. Değişkenler bize bu anlamda çok kolaylık sağlamaktadır.
Gelgelelim döngüler.. Tam anlamıyla hayat kurtarır. Bir işi birden fazla kez yapmak istersek döngü yardımıyla bir kere yazarız ve istediğimiz kadar tekrarlatırız. Scratchte sürekli tekrarla ve belli bir sayı kadar tekrarla döngüleri mevcut. Alıştırmalarımızda ve oyunlarımızda sıklıkla kullanacağız.
Bizim metot ya da fonksiyon dediğimiz olaya Scratch Blok demiş arkadaşar. Bloklar kodlarımızı tekrar etmememiz, anlaşılır yazmamız ve istediğimizde çağırabilmemiz için bir yapıdır. Kullanımı da çok kolaydır.
Eveet! Azar azar bu başlıklara değindik. Uygulama içinde daha rahat anlayacağız o yüzden vakit kaybetmeden örneklere geçebiliriz.
Kullanıcının girdiği iki sayının toplamını yazdıralım.
Bir kenarı girilen karenin alanını ve çevresini hesaplayalım.
Kullanıcıdan ismini ya da başka bir cümle isteyebilirsiniz. Ben örnekte ismini yazmasını istedim. Kullanıcının girdiği kelimedeki harfleri tek tek ekrana yazdıralım.
Yeşil bayrağa tıklandığında Kaç yaşındasındiye soralım. Eğer cevap 18den büyükse 2 saniye boyunca Ehliyet alabilirsin, eğer cevap 18den küçükse 2 saniye boyunca Ehliyet alamazsın diyelim.
Sahnenize bir bilgisayar kuklası ekleyerek kodlayabilirsiniz. Bilgisayar bizden bir parola isteyecek. Biz parolayı doğru girersek Evet, doğru! Giriş Yapabilirsin., yanlış girersek Üzgünüm, yanlış şifre! Tekrar dene. yazacak. Buraya tıklayarak, Scratch proje sayfasına erişebilir ve kodları deneyebilirsiniz.
Bu örneğimizde kullanıcı iki sayı girecek. İki sayıdan hangisi büyükse kuklamız x değeri daha büyüktür. yazacak. Eğer iki sayı eşitse de Sayılar birbirine eşit! yazacak.
Algılama altındaki Adın ne? diye sor ve bekle kodunu kullanabilirsiniz. İki adet değişken oluşturarak bu cevap değerlerini eşitliyoruz.
Kullanıcıdan alınan sayının tek mi çift mi olduğunu yazdıralım. Bir sayı eğer 2ye bölündüğünde 0 kalanı veriyorsa yani bir sayı 2ye mod alındığında sonuç 0 ise sayı çifttir. Değilse de tektir.
Kullanıcının girdiği bir sayının pozitif mi, negatif mi, sıfıra mı eşit olduğunu yazdıralım. Algoritmasını düşünecek olursak bir sayı ya sıfırdan büyük olabilir ki bu pozitif demektir. Ya sıfırdan küçük olabilir bu negatif demektir. Ya da sıfıra eşittir. Buradan yola çıkarak kodlarımızı yazabiliriz.
1den kullanıcıdan girdiği sayıya kadar olan sayıların toplamını ekranda gösterelim.
Bir çok algoritma geliştirebiliriz. Mesela Gauss Yöntemi kullanarak yapabiliriz. Gauss Yöntemi , ardışık sayıların toplamının kısa yoldan bulunması için kullanılan yöntemdir. (n*n+1)/2 formülü bu sonucu verecektir. n kullanıcının girdiği değer olacaktır.
Diğer bir yol döngüdür. 1den başlayarak kullanıcının girdiği değere kadar 1 arttırıp toplam değişkenine ekleyerek gideriz.
Basit bir hesap işlemi yapalım. Kullanıcıya işlem menüsü sunalım eğer 1 girerse toplama, 2 girerse çıkarma, 3 girerse çarpma ve 4 girerse bölme işlemi yaptıralım.