FETİH KODLARI
STRATEJİ VE ALGORİTMA SEÇİMİ
34. HAFTA: EN UYGUN KARAR YAPISINI SEÇMEK
DİVAN-I HÜMAYUN (İÇERİK)
- Karar Yapılarını Hatırlayalım
- Hangi Durumda Hangisi? (Seçim)
- Basit Eğer vs Çoklu Eğer
- İstanbul'un Fethi (29 Mayıs)
- Fatih'in Stratejik Algoritması
- Gemileri Karadan Yürütmek (Çözüm)
- Senaryo: Fetih Oyunu Kodlama
ELİMİZDEKİ SİLAHLAR (YAPILAR)
Bir problemi çözerken elimizde 3 farklı karar "silahı" vardır.
1. TEK YÖN
EĞER (IF)
Sadece şart doğruysa çalışır.
2. ÇİFT YÖN
EĞER - DEĞİLSE
Doğruysa bunu, yanlışsa şunu yap.
3. ÇOK YÖN
İÇ İÇE EĞER
Birçok seçenek varsa kullanılır.
STRATEJİ: HANGİSİNİ SEÇMELİ?
Bir komutan savaş alanına bakıp strateji belirler. Biz de probleme bakıp karar yapısını seçmeliyiz.
- Tek bir tehlike var mı? -> EĞER
- Ya kazanacağız ya kaybedeceğiz? -> EĞER-DEĞİLSE
- Önümüzde 3 farklı yol mu var? -> İÇ İÇE EĞER
SENARYO 1: KALE KAPISI
Durum: Nöbetçisin. Sadece "Parola" doğruysa kapıyı açacaksın. Yanlışsa hiçbir şey yapmayacaksın (sessiz kalacaksın).
SEÇİM: BASİT EĞER
KODLAMA: NÖBETÇİ
EĞER (Parola == "Fetih1453") İSE:
Kapıyı_Aç()
(Değilse kısmı yok, çünkü başka bir işlem gerekmiyor)
SENARYO 2: DENİZ SAVAŞI
Durum: Gemimiz düşman gemisiyle karşılaştı. İki ihtimal var:
- Top güllesi isabet ederse -> "Vuruldu" de.
- İsabet etmezse -> "Iskaladın" de.
SEÇİM: EĞER - DEĞİLSE
KODLAMA: TOP ATIŞI
EĞER (Gülle_Değdi_Mi?) İSE:
Ses_Çal("Patlama")
Puan_Ver(10)
DEĞİLSE:
Ses_Çal("Su_Sesi")
Yaz("Iskaladın!")
SENARYO 3: OKÇU BİRLİĞİ
Durum: Okçular mesafeye göre atış yapacak.
ÇOK YAKIN
Mesafe < 10m -> Kılıç Çek
ORTA
Mesafe < 50m -> Normal Ok At
UZAK
Mesafe > 50m -> Alevli Ok At
SEÇİM: İÇ İÇE EĞER (ÇOKLU KARAR)
KODLAMA: MENZİL HESABI
EĞER (Mesafe < 10) İSE:
Kılıç_Kullan()
DEĞİLSE:
EĞER (Mesafe < 50) İSE:
Normal_Ok_At()
DEĞİLSE:
Alevli_Ok_At()
29 MAYIS 1453
İSTANBUL'UN FETHİ
Bir çağın kapanıp yeni bir çağın açıldığı büyük olay.
FATİH: BÜYÜK STRATEJİST
Fatih Sultan Mehmet (II. Mehmet), sadece bir padişah değil, aynı zamanda büyük bir mühendis ve strateji uzmanıydı.
Fetih için planladığı her şey, mükemmel bir Algoritma örneğidir.
- Şahi Topları (Teknoloji)
- Rumeli Hisarı (Hazırlık)
- Gemilerin Yürütülmesi (Yaratıcı Çözüm)
BÜYÜK PROBLEM VE ÇÖZÜM
PROBLEM: Haliç'in girişinde devasa bir zincir var. Gemiler geçemiyor.
GELENEKSEL ÇÖZÜM: Zinciri kırmaya çalış (Başarısız).
FATİH'İN ALGORİTMASI (Yaratıcı Düşünme):
EĞER denizden geçiş yoksa -> DEĞİLSE karadan yürüt!
FETİH STRATEJİSİ (AKIŞ)
BAŞLA
Rumeli Hisarı'nı Yap
Şahi Toplarını Dök
KARAR: Haliç Zinciri Kapalı mı?
-> EVET: Gemileri Karadan Yürüt (Galata'dan)
-> HAYIR: Denizden Saldır
Surlarda Gedik Aç
Şehre Gir
BİTİR (FETİH MÜBİN)
TARİHİ OYUNLAŞTIRMA
Scratch ile kendi "Fetih 1453" oyunumuzu yapabiliriz.
GEMİ KUKLASI
Yön tuşlarıyla hareket eder.
ZİNCİR ENGELİ
Eğer zincire değerse geri seker.
KARA YOLU
Eğer "Yağlı Kızaklar"a değerse karadan ilerler.
STRATEJİ TESTİ 1
Bir durumda yapılması gereken sadece TEK BİR işlem varsa hangi yapıyı seçersin?
A) Eğer - Değilse
B) Basit Eğer (If)
C) İç İçe Eğer
D) Döngü
STRATEJİ TESTİ 2
Bir durumda "Ya o, Ya bu" şeklinde iki seçenek varsa hangisi seçilir?
A) Basit Eğer
B) Sonsuz Döngü
C) Eğer - Değilse (If-Else)
D) Değişken
STRATEJİ TESTİ 3
Fatih Sultan Mehmet, Haliç'teki zincir engelini nasıl aşmıştır?
A) Zinciri keserek
B) Pes ederek
C) Denizaltı kullanarak
D) Gemileri karadan yürüterek
STRATEJİ TESTİ 4
İstanbul'un Fethi hangi tarihte gerçekleşmiştir?
A) 19 Mayıs 1919
B) 29 Mayıs 1453
C) 23 Nisan 1920
D) 30 Ağustos 1922
SIRA SİZDE: OYUN TASARIMI
Senaryo: Bir labirent oyunu yapıyorsun.
- Duvara çarparsa -> Başa dön.
- Anahtarı alırsa -> Kapı açılsın.
- Kapıya değerse -> Sonraki seviyeye geç.
Hangi karar yapılarını kullanırsın?
ZAFER RAPORU (ÖZET)
İKİLİ
Eğer-Değilse (İki yol).
ÇOKLU
İç İçe Eğer (Çok yol).
GELECEK SEFER
KARMAŞIK PROBLEMLER
Farklı programlama yapılarını birleştirerek büyük projeler yapacağız.
OTURUM SONLANDI
Stratejik düşünme becerilerin gelişti.