SİBER MİMAR

GELECEĞİ İNŞA ET

35. HAFTA: KARMAŞIK PROBLEMLERE ÇÖZÜM ÜRETME

PROJE TASLAĞI (İÇERİK)

  • Karmaşık Problem Nedir? (Gökdelen Analojisi)
  • Alet Çantası: Değişken, Döngü, Karar
  • Strateji: Böl ve Yönet (Decomposition)
  • Senaryo 1: Akıllı Trafik Sistemi
  • Senaryo 2: Labirent Oyunu Tasarımı
  • Kodların Birleşimi (İç İçe Yapılar)
  • Optimizasyon (Sağlam Bina İnşa Etmek)
  • Geleceğin Mühendisleri Sizsiniz!
Architectural Blueprint

KARMAŞIK PROBLEM = GÖKDELEN

Tek bir satır kodla çözülemeyen, içinde birçok değişken ve karar barındıran büyük problemlerdir.


"Bir kulübe yapmak kolaydır, ama bir gökdelen yapmak için PLAN gerekir."

MİMARIN ALET ÇANTASI

Büyük bir projeyi yapmak için elimizde hangi malzemeler var?

DEĞİŞKENLER

Verileri sakladığımız tuğlalar. (Puan, Süre)

DÖNGÜLER

Tekrar eden katlar. (Sürekli Tekrarla)

KARARLAR

Elektrik tesisatı. (Eğer - Değilse)

BÖL VE YÖNET (DECOMPOSITION)

Planning

Büyük problemi küçük parçalara ayırırız.

Örnek: Oyun Yapmak.

  • 1. Parça: Karakterin Hareketi
  • 2. Parça: Puan Toplama
  • 3. Parça: Düşmanların Yapay Zekası
  • 4. Parça: Oyun Bitti Ekranı

YAPILARI BİRLEŞTİRMEK

Karmaşık problemlerde bloklar iç içe geçer.


Sürekli Tekrarla { // Döngü
  Eğer (Tuşa Basıldı mı?) { // Karar
    Hareket Et;
    Eğer (Duvara Değdi mi?) { // İç Karar
      Geri Sek;
    }
  }
}

Döngünün içinde karar, kararın içinde başka bir işlem!

SENARYO 1: AKILLI TRAFİK SİSTEMİ

GÖREV:

Bir kavşaktaki trafik ışıklarını kodla. Ancak sistem akıllı olmalı:

1. Normalde sırayla yanmalı.

2. Eğer ambulans gelirse (Sensör), tüm ışıklar kırmızı olup ambulansın yolunu açmalı.

ANALİZ: TRAFİK IŞIĞI

GİRİŞLER

Zamanlayıcı, Ambulans Sensörü.

İŞLEMLER

Işık değiştir, Hepsini kırmızı yap.

ÇIKTI

Yeşil, Sarı, Kırmızı Işıklar.

KOD MİMARİSİ

Sürekli Tekrarla {
  Eğer (Ambulans Var mı?) {
    Tüm Işıkları Kırmızı Yap;
    Ambulans Yolunu Yeşil Yap;
  } Değilse {
    Normal Sırayla Yak (Kırmızı -> Sarı -> Yeşil);
  }
}

SENARYO 2: LABİRENT OYUNU

Maze

GÖREV:

Karakter labirentte hareket edecek.

  • Duvara değerse başa dönecek.
  • Anahtarı alırsa puan artacak.
  • Çıkışa gelince oyun bitecek.

MALZEME LİSTESİ (DEĞİŞKENLER)

Oyunun çalışması için hangi verileri hafızada tutmalıyız?

PUAN

Başlangıç: 0

CAN

Başlangıç: 3

ANAHTAR

Başlangıç: 0 (Yok)

1 (Var)

OYUN DÖNGÜSÜ

Oyun bitene kadar sürekli çalışan ana motor.

Sürekli Tekrarla {
  Tuşları Kontrol Et (Hareket);
  Eğer (Duvara Değdi mi?) -> Başa Dön;
  Eğer (Anahtara Değdi mi?) -> Puanı Artır, Anahtarı Gizle;
  Eğer (Çıkışa Değdi mi?) -> "Kazandın" de, Durdur;
}

MODÜLER YAPI (FONKSİYONLAR)

Kodları daha düzenli yapmak için parçaları isimlendiririz.

Her defasında "Puan artır, ses çal, efekt yap" yazmak yerine;


PuanAl() bloğu oluştururuz.

Böylece binanın her katını ayrı ayrı inşa etmiş oluruz.

YAPI DENETİM (DEBUGGING)

Karmaşık projelerde hata çıkma ihtimali yüksektir.

TEST ET

Her özelliği tek tek dene.

GÖZLEMLE

Değişkenlerin değerlerini ekranda izle.

DÜZELT

Hatalı bloğu değiştir.

SAĞLAM BİNA (OPTİMİZASYON)

Skyscraper

Kod çalışıyor ama yavaş mı? Veya çok mu uzun?


  • Gereksiz blokları sil.
  • Tekrar eden yerlerde döngü kullan.
  • Resim boyutlarını küçült (Oyun kasmasın).

MİMARLIK SINAVI 1

Bir labirent oyununda karakterin duvara çarpıp çarpmadığını SÜREKLİ kontrol etmek için hangi yapıları iç içe kullanmalıyız?

A) Sadece Eğer
B) Sürekli Tekrarla içinde Eğer
C) Eğer içinde Sürekli Tekrarla
D) Sadece Sürekli Tekrarla

MİMARLIK SINAVI 2

Oyunun puanını hafızada tutmak için neye ihtiyacımız var?

A) Döngü
B) Karar Yapısı
C) Değişken (Variable)
D) Fonksiyon

MİMARLIK SINAVI 3

Büyük bir problemi daha küçük parçalara ayırarak çözme yöntemine ne denir?

A) Birleştirme
B) Kodlama
C) Parçalara Bölme (Decomposition)
D) Hata Ayıklama

MİMARLIK SINAVI 4

Ambulans geldiğinde trafik ışıklarının normal çalışmayı bırakıp hepsinin kırmızı olması için hangi yapı kullanılır?

A) Değişken
B) Döngü
C) Eğer - Değilse (If-Else)
D) Operatör

SIRA SİZDE: KENDİ PROJEN

Kendi hayalindeki bir projenin (Oyun, Animasyon) planını yap.

  1. Amacı ne?
  2. Hangi kuklalar lazım?
  3. Hangi değişkenler olacak?
  4. Hangi blokları kullanacaksın?

BİLİMSEL YAKLAŞIM

Kodlama sadece oyun oynamak değil, bilimsel düşünmektir.

  • Hipotez Kur (Kod böyle çalışır mı?)
  • Deney Yap (Çalıştır)
  • Gözlemle (Hata var mı?)
  • Sonuç Çıkar (Düzelt ve Bitir)

GERÇEK HAYATTA KARMAŞIK KODLAR

OTOPİLOT

Binlerce "Eğer" ve sensör verisiyle uçağı uçurur.

ROBOT SÜPÜRGE

Döngüler ve sensörlerle evi haritalar.

VİDEO OYUNLARI

Milyonlarca satır kod ve mantık içerir.

PROJE TESLİMİ (ÖZET)

Karmaşık problemleri parçalara ayırdık.

Döngü ve Karar yapılarını iç içe kullandık.

Değişkenlerle verileri yönettik.

Hataları ayıklayıp projeyi sağlamlaştırdık.

GELECEK HAFTA

BÜYÜK FİNAL: PROJE GELİŞTİRME

Öğrendiğimiz her şeyi kullanarak kendi özgün projemizi yapacağız.

İNŞAAT TAMAMLANDI!

Geleceğin mimarı sensin.