
Kullanılan Teknolojiler
Proje Açıklaması
so_long, Ecole 42 müfredatının bir parçası olan, MinilibX kütüphanesi kullanılarak C dilinde geliştirilmiş 2D basit bir oyun projesidir. Projenin amacı pencere yönetimi, olay (event) işleme ve temel oyun mekaniklerini öğrenmektir.
Projede, bir kedinin (Mya) haritadaki sushileri toplayıp engelleri aşarak en az hamleyle çıkışa ulaşması hedeflenir. Harita doğrulaması için Flood Fill algoritması kullanılmıştır.
- MinilibX grafik kütüphanesi (X11) ile pencere, görüntü ve klavye/fare olayı (event handling) yönetimi yapıldı.
- Flood Fill algoritması ile haritanın geçerli bir çıkış yoluna sahip olup olmadığı kontrol edildi.
- Hamle sayısı hesabı ve harita formatı (.ber) doğrulama sistemi geliştirildi.
README.md
So_long - 2D Küçük Oyun Projesi
Proje Hakkında
so_long, Ecole 42 müfredatının bir parçası olan, MinilibX kütüphanesi kullanılarak C dilinde geliştirilmiş 2D basit bir oyun projesidir. Projenin amacı, grafik programlamaya giriş yapmak, pencere yönetimi, olay (event) işleme ve temel oyun mantığını kavramaktır.
Bu sürümde, bir kedinin (Mya) haritadaki sushileri toplayarak çıkışa ulaşması hedeflenmektedir.
Özellikler
- Grafik Arayüzü: MinilibX (X11) kullanılarak pencereli grafik yapısı.
- Harita Doğrulama: Haritanın dikdörtgen olup olmadığı, duvarlarla çevrili olup olmadığı ve geçerli bir yol (Flood Fill algoritması) içerip içermediği kontrol edilir.
- Hamle Sayacı: Oyuncunun yaptığı her geçerli hamle terminal üzerinden takip edilebilir.
Gereksinimler
Projenin derlenmesi ve çalıştırılması için aşağıdaki kütüphanelerin sisteminizde yüklü olması gerekir:
Linux (Ubuntu/Debian)
MinilibX'in düzgün çalışması için X11 ve ilgili geliştirme paketleri gereklidir:
sudo apt-get update
sudo apt-get install cc make xorg libxext-dev libbsd-dev
Derleme ve Çalıştırma
Derleme
Proje kök dizininde Makefile dosyasını kullanarak projeyi derleyebilirsiniz:
make
Bu komut sonucunda so_long adında bir çalıştırılabilir dosya oluşacaktır.
Çalıştırma
Programı çalıştırmak için bir harita dosyası (.ber uzantılı) parametre olarak verilmelidir:
./so_long maps/map.ber
Makefile Komutları
make: Programı derler.make clean: Nesne (.o) dosyalarını siler.make fclean: Nesne dosyalarını ve çalıştırılabilir programı siler.make re: Her şeyi silip yeniden derler.
Kontroller
Oyunu aşağıdaki tuşlarla kontrol edebilirsiniz:
- W: Yukarı Hareket
- A: Sola Hareket
- S: Aşağı Hareket
- D: Sağa Hareket
- ESC: Oyundan Çıkış
Harita Kuralları
Harita dosyası .ber uzantılı olmalı ve aşağıdaki karakterlerden oluşmalıdır:
1: Duvar0: ZeminP: Oyuncunun Başlangıç KonumuC: Toplanabilir Nesne (Sushi)E: Çıkış Kapısı
Önemli Notlar:
- Harita duvarlarla tamamen çevrili olmalıdır.
- Harita dikdörtgen olmalıdır.
- Haritada en az 1 oyuncu (P), 1 çıkış (E) ve en az 1 toplanabilir nesne (C) bulunmalıdır.
- Oyuncunun tüm nesnelere ve çıkışa ulaşabileceği geçerli bir yol bulunmalıdır.
Örnek Harita
Aşağıda geçerli bir harita (map.ber) örneği verilmiştir:
1111111111111
1001000000001
10010111110P1
10000000C0001
1111111E11111
Klasör Yapısı
src/: Kaynak kod dosyaları.include/: Başlık (.h) dosyaları.maps/: Örnek harita dosyaları.images/: Oyun içi görseller (XPM formatında).libft/: Özel C kütüphanesi fonksiyonları.minilibx/: Grafik kütüphanesi.