Python import numpy as np import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # --- ADIM 1: Minecraft Verisi Oluşturma (Simülasyon) --- # Gerçek senaryoda bu verileri Mineflayer veya Raspberry Juice API ile oyundan çekersiniz. np.random.seed(42) n_samples = 1000 # Öznitelikler (Features): # 1. Oyuncu Yüksekliği (Y koordinati: 0-64 arası maden, 64+ yüzey) # 2. Envanterdeki Meşale Sayısı (0 - 64) # 3. Can Değeri (1 - 20) # 4. Yakındaki Düşür (Mob) Sayısı (0 - 10) y_coords = np.random.randint(5, 120, size=n_samples) torches = np.random.randint(0, 65, size=n_samples) health = np.random.randint(1, 21, size=n_samples) nearby_mobs = np.random.randint(0, 11, size=n_samples) # Etiketler (Labels / Yapay Zeka Kararı): # 0: Maden Kaz (Mine), 1: Ev İnşa Et (Build), 2: Savaş/Kaç (Fight/Run) actions = [] for i in range(n_samples): if nearby_mobs[i] > 3 or health[i] < 6: actions.append(2) # Savaş veya Kaç elif y_coords[i] < 50 and torches[i] > 5: actions.append(0) # Maden Kaz else: actions.append(1) # Ev İnşa Et # Veri Çerçevesi (DataFrame) Oluşturma df = pd.DataFrame({ 'y_coord': y_coords, 'torches': torches, 'health': health, 'nearby_mobs': nearby_mobs, 'action': actions }) print("--- Minecraft Veri Setinden İlk 5 Satır ---") print(df.head()) print("-" * 40) # --- ADIM 2: Modeli Eğitme --- X = df[['y_coord', 'torches', 'health', 'nearby_mobs']] y = df['action'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Random Forest Sınıflandırıcı Modelini Seçiyoruz model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) # --- ADIM 3: Model Başarısını Test Etme --- y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Model Doğruluk Oranı (Accuracy): %{accuracy * 100:.2f}") # --- ADIM 4: Minecraft'tan Gelen Anlık Veriyle Tahmin Yapma --- # Senaryo: Oyuncu yerin altında (Y=20), envanterinde 12 meşale var, canı tam (20) ve etrafta düşman yok (0). yeni_oyuncu_verisi = [[20, 12, 20, 0]] tahmin = model.predict(yeni_oyuncu_verisi) action_map = {0: "Maden Kaz (Mine)", 1: "Ev İnşa Et (Build)", 2: "Savaş / Kaç (Fight/Run)"} print("-" * 40) print(f"Anlık Minecraft Durumu: Y=20, Meşale=12, Can=20, Mob=0") print(f"Yapay Zekanın Önerdiği Hamle: **{action_map[tahmin[0]]}**"