File size: 2,622 Bytes
ea93452
7636a3b
ea93452
 
 
 
 
 
 
7636a3b
 
 
 
 
ea93452
7636a3b
ea93452
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7636a3b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
title: Street Fighter Move Recognizer
emoji: 🎮
colorFrom: red
colorTo: blue
sdk: streamlit
app_file: app.py
pinned: false
tags:
- deep-learning
- lstm
- game-ai
- sequence-classification
- streamlit-app
license: mit
sdk_version: 1.45.1
---



# 🎮 Street Fighter Move Recognizer

Bu proje, joystick kombinasyonlarını analiz ederek oyuncunun hangi **özel hareketi** yapmak istediğini tahmin eden bir makine öğrenimi modelini içermektedir. Veri simüle edilmiştir ve Street Fighter benzeri dövüş oyunlarından esinlenilmiştir.

## 🧠 Proje Hedefi

Joystick sekanslarından (`["DOWN", "RIGHT", "PUNCH"]` gibi) yola çıkarak hangi **move (hareket)** yapıldığını sınıflandıran bir sekans model geliştirmek. Bu, oyun AI sistemlerinin temel yapı taşlarından biridir.

---

## 📊 Kullanılan Veri

Veri seti manuel olarak oluşturulmuştur ve aşağıdaki gibi örnek joystick girişlerinden ve etiketli hareket isimlerinden oluşur:

| Joystick Sequence           | Move           |
|-----------------------------|----------------|
| DOWN,RIGHT,PUNCH            | Hadouken       |
| RIGHT,DOWN,RIGHT,KICK       | Shoryuken      |
| LEFT,LEFT,PUNCH             | Dash Punch     |
| DOWN,KICK                   | Low Kick       |
| LEFT,DOWN,RIGHT,PUNCH       | Combo Strike   |
| ...                         | ...            |

---

## 🔧 Kullanılan Teknolojiler

- **TensorFlow / Keras** – LSTM model ile sekans sınıflandırma
- **scikit-learn** – LabelEncoder
- **Streamlit** – Web arayüzü
- **Pickle** – Model nesnelerinin kaydedilmesi
- **Hugging Face Hub** – Model paylaşımı
- **GitHub** – Kod ve dokümantasyon paylaşımı

---

## 🏗️ Model Mimarisi

- `Tokenizer` ile joystick girişleri tokenize edildi
- `pad_sequences` ile sabit uzunlukta girişe dönüştürüldü
- `LSTM` tabanlı sekans modeli eğitildi
- `LabelEncoder` ile sınıf etiketleri dönüştürüldü
- Model `.keras`, `tokenizer.pkl`, `label_encoder.pkl` olarak kaydedildi

---

## 🚀 Streamlit Uygulaması

Kullanıcıdan joystick kombinasyonu alınır ve model ile eşleşen hareket tahmin edilir.

### Uygulamayı Başlatmak İçin:
```bash
streamlit run app.py


🔬 Örnek Tahmin
DOWN,RIGHT,PUNCH
Çıktı:
Tahmin Edilen Hareket: Hadouken



💡 Gelecekte Ne Yapılabilir?
Gerçek zamanlı joystick verisi entegrasyonu

Sesli komut tanıma ile komboları tetikleme

Mobil uyumlu arayüz

Daha fazla kombo ile veri setinin genişletilmesi


📚 Eğitim Amaçlıdır
Bu proje, oyun zekası ve sekans modellemeyi birleştiren bir örnek olarak eğitim amaçlı geliştirilmiştir.