Bu proje, klasik yılan oyununun Python ile gerçekleştirilmiş ve yapay zeka ile geliştirilmiş bir versiyonudur. Proje iki ana bileşenden oluşur:
-
Klasik Yılan Oyunu
- 32x32 oyun alanı
- Izgara görünümlü arka plan
- Yeşil yılan ve kırmızı elma
- Her 5 elmada bir artan hız
- Çarpışma kontrolü (duvarlar ve yılanın kendisi)
-
Yapay Zeka Kontrolü
- Deep Q-Learning algoritması
- Deneyim tekrarı (Experience Replay)
- Epsilon-greedy keşif stratejisi
- Eğitim istatistikleri görüntüleme
- Ayarlanabilir eğitim hızı (1x - 512x)
-
Python 3.8 veya daha yüksek bir sürümün yüklü olduğundan emin olun
-
Proje dizininde bir virtual environment oluşturun:
# macOS/Linux
python3 -m venv venv
# Windows
python -m venv venv
- Virtual environment'ı aktif edin:
# macOS/Linux
source venv/bin/activate
# Windows
.\venv\Scripts\activate
- Gerekli bağımlılıkları yükleyin:
pip install -r requirements.txt
Klasik yılan oyununu oynamak için:
python game.py
Kontroller:
- Yön tuşları: Yılanı kontrol etme
- ESC: Oyundan çıkış
Yapay zekayı eğitmek için:
python train.py
Eğitim Parametreleri:
n_games
: Eğitilecek oyun sayısı (varsayılan: 1000)batch_size
: Her adımda eğitilecek örnek sayısı (varsayılan: 32)
Eğitim Ekranı:
- Sol tarafta oyun alanı
- Sağ tarafta eğitim istatistikleri:
- Mevcut skor
- Rekor skor
- Ortalama skor
- Epsilon değeri
- Adım sayısı
- FPS
Hız Kontrolü:
- Eğitim hızını ayarlamak için sağ alt köşedeki butonları kullanın:
- 1x: Normal hız
- 8x: 8 kat hızlı
- 16x: 16 kat hızlı
- 128x: 128 kat hızlı
- 512x: 512 kat hızlı
.
├── game.py # Oyun motoru ve arayüzü
├── ai_model.py # Yapay zeka modeli (DQN)
├── train.py # Eğitim döngüsü
├── direction.py # Yön enumları
├── constants.py # Sabitler
├── requirements.txt # Bağımlılıklar
└── README.md # Dokümantasyon
Yeni paketler eklemek için:
pip install paket_adi
pip freeze > requirements.txt
.gitignore
dosyası sayesindevenv
klasörü ve__pycache__
git'e dahil edilmez- Her yeni geliştirme ortamında kurulum adımlarını tekrarlayın
- Eğitim sırasında model ağırlıkları otomatik olarak kaydedilir
- Daha iyi sonuçlar için eğitimi daha uzun süre çalıştırın (n_games > 1000)