《赛道大师》土耳其语逻辑指南

0 点赞
机械制造者 Trailmakers
转载

Beyler bayanlar, biraz uzun ve korkutucu gelebilir. Ama tane tane okursanız, hepsinin işlevini çok rahat anlayacaksınız. Bu rehberi yabancı dil anlamakta sıkıntı çeken, ve logiclerden gözü korkan kişiler için yazıyorum. Tamamen Türkçedir. Ayrıca ilk rehberim olduğu için lütfen hatalarımı görmezden gelin ♥️(This logic guide has been prepared in Turkish and is intended to assist players in Türkiye. Those who are curious about the content can translate it from TURKISH to their own language using translator or artificial intelligence. Thank you for your understanding.) 0. TEMEL 4 LOGİC XOR,OR,NOR,AND Öncelikle şunu belirtmeliyim. Bilgisayardan tutun, aklınıza gelen her türlü elektronik şey, temelinde logic gatelere dayanır. Oyunda bulunan bu logicler , aslında temel olarak giren ve çıkan değerleri sınırlamaya yarar. Bir anahtar gibi düşünebilirsiniz. Sadece her anahtarın işlevleri birbirinden birazcık farklı. Ayrıca bilmeniz gereken şunlarda var İNPUT= GİRİŞ OUTPUT= ÇIKIŞ İNPUT (-1) = negatif sinyal. İNPUT (+1) = pozitif sinyal. Rehberin başında yazdığım logiclerde bir sınırlama yokken, bu logicler sadece -1 ve +1 değerleri arasında sonuç verir. Ayrıca 0.30 gibi ara sayıları de seçebilirsiniz. Output ayarını yaptıpınızda, gönderdiğiniz sinyale göre mekanik bloklar değişik tepkiler verebilir. Mesela 90 derece dönebilen bir hinge(menteşe) 1.00 OUTPUT ile 90 derece döner. Ama 0.50 yaparsanız 30 derece civarında döner. Bunları angle sensör ile ölçebilirsiniz. ⭐ Özel ipucu: motorlara sinyal gönderirken mesela NOR LOGİC GATE ile 0.04 sinyali verirseniz, Motor fiziksel olarak çalışıyor gibi gözükür. Ama herhangi bir işlev yapamayacak kadar az güç üretir. Böylece sistemlerde seslerin sürekli gidip gelmesi önlenir. Ayrıca görsel olarakta sürekli çalışır. AND Logic Gate (Ve Kapısı) Ne yapar? “Tüm girişler doğruysa çıkış da doğru olur.” Basit örnek: Evdeki ışık sadece hem anahtar hem de priz açık olursa yanıyor. Anahtar = 1, Priz = 1 → Işık = 1 Anahtar = 0, Priz = 1 → Işık = 0 Özet cümle: “Herkes elini kaldırırsa, çalan zil gibi.” --- OR Logic Gate (Veya Kapısı) Ne yapar? “Girişlerden biri doğruysa çıkış doğru olur.” Basit örnek: Eve gelirken ya kapı açık olsun ya da pencere açık olsun → hava girsin. Kapı = 0, Pencere = 1 → Hava girer = 1 Kapı = 0, Pencere = 0 → Hava girmez = 0 Özet cümle: “En az bir kişi gelirse parti başlar.” --- XOR Logic Gate (Özel Veya / Farklıysa Kapısı) Ne yapar? “Girişler farklıysa çıkış doğru olur, aynıysa yanlış olur.” Basit örnek: Evde ışık ya anahtar A ya da B ile açılır, ikisi aynı anda basılıysa ışık yanmaz. A = 1, B = 0 → Işık = 1 A = 1, B = 1 → Işık = 0 Özet cümle: “Farklılar kazanır, aynı olan kaybeder.” --- NOR Logic Gate (Veya Değil Kapısı) Ne yapar? “Girişlerden hiçbiri doğru değilse çıkış doğru olur, biri doğruysa çıkış yanlış olur.” Basit örnek: Evde kimse yoksa alarm çalsın. Kapı = 0, Pencere = 0 → Alarm = 1 Kapı = 1, Pencere = 0 → Alarm = 0 Özet cümle: “Kimse gelmediyse, işaret ver.” 💡 Küçük ipucu: AND = Herkes evet demeli → ✅ OR = En az biri evet demeli → ✅ XOR = Farklı mı, evet mi → ✅ NOR = Hiçbiri evet değil → ✅ 1. Aggregate Logic Block (Toplama Mantık Bloğu) 📌 Tanım: Bu blok, birden fazla giriş sinyalini tek bir çıkışa dönüştürür. Bunu yaparken seçtiğin matematiksel fonksiyonu uygular. Formül: Output = aggregateFunc(inputs) ⚙️ Kullanılabilen Fonksiyonlar: Sum (Toplama): Tüm girişleri toplar. Örn: Girişler = [2, 3, 5] → Çıkış = 10 Product (Çarpma): Tüm girişleri çarpar. Örn: Girişler = [2, 3, 5] → Çıkış = 30 Minimum: Girişler arasındaki en küçük değeri verir. Örn: Girişler = [2, 3, 5] → Çıkış = 2 Maximum: Girişler arasındaki en büyük değeri verir. Örn: Girişler = [2, 3, 5] → Çıkış = 5 🔌 Giriş / Çıkış: Giriş (Input): Birden fazla sayı veya sinyal bağlayabilirsin. Çıkış (Output): Tek bir değer üretir. Bu değer, seçilen fonksiyona göre hesaplanır. 🎮 Kullanım Örnekleri: Sum: Birden fazla tuş girişini toplayarak motor gücünü arttırmak. Product: İki farklı sensör aktif olduğunda çıkış vermek (çünkü biri sıfırsa sonuç da sıfır olur). Minimum: Farklı hız sınırlarından en düşük olanı seçmek. Maximum: Birden fazla kontrol girişinden en kuvvetli olanı seçmek (mesela joystick + otomatik kontrol). 💡 İpuçları: Sum, basit toplama için idealdir ama çok fazla giriş eklersen değer kontrolsüz büyüyebilir. Product, AND kapısı gibi çalışabilir (çünkü girişlerden biri sıfırsa çıkış da sıfır olur). Minimum/Maximum, limit koymak veya sınır değer seçmek için çok kullanışlıdır. 2. Function Logic Block (Fonksiyon Mantık Bloğu) 📌 Tanım: Bu blok, önce tüm girişleri toplar, ardından bu toplamı seçilen matematiksel fonksiyona uygular. Yani adım adım çalışma şekli şöyle: 1. Girişleri toplar S = Sum(inputs) Örn: Girişler [2, 3, -1] → S = 4 2. Seçilen fonksiyonu uygular Output = Func(S) Örn: Eğer fonksiyon = Cos → Çıkış = Cos(4) Bu yüzden aslında "toplama + fonksiyon" birleşimi gibi düşünebilirsin. 🔌 Giriş / Çıkış: Giriş: Birden fazla sayı veya sinyal bağlanabilir. Çıkış: Tek bir değer döndürür (fonksiyonun sonucu).

🎮 Kullanım Örnekleri: Absolute: Motor kuvveti her zaman pozitif kalsın diye (ters yönde olsa bile). Sign: Yalnızca yön bilgisini almak (ileriye = 1, geriye = -1). Cos/Sin/Tan: Dairesel hareket veya dalga efektleri yapmak için. Square Root: Fiziksel hesaplamalarda hız → enerji dönüşümü gibi senaryolarda. Arccos/Arcsin/Arctan: Sensörlerden açı hesaplamak. Ceil/Floor/Round: Kesirli değerleri kontrol etmek (örneğin hız göstergesini tam sayıya çevirmek). --- 💡 İpuçları: Trigonometrik fonksiyonlar (Sin, Cos, Tan) radyan cinsinden çalışır. (π ≈ 3.14, π/2 ≈ 1.57 gibi düşün). Eğer girişler çok büyürse, Cos/Sin/Tan sürekli dalgalanır (çünkü periyodik fonksiyonlardır). Square Root kullanırken negatif girişlerden kaçın. Arccos/Arcsin yalnızca -1 ile 1 arası değerlerde çalışır. 3. Arithmetic Logic Gate (Aritmetik Mantık Kapısı) 📌 Tanım: Bu blok, girişleri önce toplar, ardından seçtiğin bir işlem ile constant (sabit sayı) ile birlikte kullanır. Formül: Output = <constant> <operation> <sum(inputs)> Burada: <constant>: Senin blok içindeki çubuktan seçtiğin sabit değer. (-1000 ile +1000 arası ayarlanabilir). <sum(inputs)>: Girişlerin toplamı. Yani tüm giriş değerlerini topluyor. Örn: Constant = 10, Operation = Subtract (-), Inputs = [1, 1, 0, -1] Sum(inputs) = 1+1+0+(-1) = 1 Output = 10 - 1 = 9 --- ⚙️ İç Yapı: Constant Bar: Blok içinde bulunan kaydırma çubuğu. -1000 ile +1000 arasında bir sabit sayı seçebilirsin. Operations Bölmesi: Hangi matematiksel işlemin uygulanacağını buradan seçiyorsun. --- 🔧 İşlemler (Operations) ve Açıklamaları: 1. Add ( + ) Formül: Output = Constant + Sum(inputs) Örn: Constant = 5, Inputs = [2, 3] → Sum = 5 → Output = 10 --- 2. Subtract ( - ) Formül: Output = Constant - Sum(inputs) Örn: Constant = 10, Inputs = [4, 2] → Sum = 6 → Output = 4 --- 3. Multiply ( × ) Formül: Output = Constant × Sum(inputs) Örn: Constant = 3, Inputs = [2, 1] → Sum = 3 → Output = 9 --- 4. Divide ( ÷ ) Formül: Output = Constant ÷ Sum(inputs) Örn: Constant = 12, Inputs = [2, 2] → Sum = 4 → Output = 3 ⚠️ Eğer Sum(inputs) = 0 ise → sonuç tanımsız olur (hata). --- 5. Modulo ( % ) Formül: Output = Sum(inputs) % Constant Yani giriş toplamını constant’a böler ve kalanını alır. Örn: Constant = 4, Inputs = [7] → Sum = 7 → 7 % 4 = 3 --- 6. Power ( x^constant ) Formül: Output = (Sum(inputs)) ^ Constant Örn: Constant = 2, Inputs = [3] → Sum = 3 → 3^2 = 9 --- 7. Power ( constant^x ) Formül: Output = Constant ^ (Sum(inputs)) Örn: Constant = 2, Inputs = [3] → Sum = 3 → 2^3 = 8 --- 🎮 Kullanım Senaryoları: Add/Subtract: Girişlere sabit bir değer eklemek veya çıkarmak (ör. motor gücüne +10 boost eklemek). Multiply: Bir değeri sabitle çarparak ölçeklendirmek (ör. joystick hassasiyetini 0.5 ile azaltmak). Divide: Değerleri küçültmek için (ör. sensör verisini 10’a bölmek). Modulo: Tekrar eden sayılar (ör. bir sayaç yaptığında 0-9 arasında dönmesini sağlamak). Power (x^constant): Girişleri kuvvetlendirmek (ör. joystick değerini kareye almak). Power (constant^x): Exponential (üstel) davranışlar oluşturmak. 💡 İpucu: Modulo özellikle döngüsel mantıklar için çok işe yarar. Mesela 360° üzerine çıkan açıyı 0–359° aralığında tutmak. Power işlemleri kontrolü çok hassaslaştırabilir veya çok agresif yapabilir, dikkatli kullan. 4. Randomizer Logic Block (Rastgele Üreteç Mantık Bloğu) 📌 Tanım: Bu blok, belirlediğin Minimum ve Maksimum değerleri arasında rastgele sayılar üretir. Her yeni tetiklemede blok, bu aralıktan rastgele bir sayı seçip Output (çıkış) olarak gönderir. --- ⚙️ İç Ayarları: Minimum Bar: Rastgele üretilecek sayının en düşük sınırı. (-100 ile +100 arasında ayarlanır). Maximum Bar: Rastgele üretilecek sayının en yüksek sınırı. (-100 ile +100 arasında ayarlanır). 👉 Örn: Min = -10, Max = 10 → Çıkış her tetiklemede -10 ile +10 arasında rastgele bir sayı olur. --- 🔄 Random Modları ve Açıklamaları: 1. Output on Input Blok, giriş sinyali geldiğinde rastgele sayı üretip çıkışa verir. Eğer giriş yoksa yeni sayı üretmez. Örn: Tuşa bastığında 1 ile 6 arasında bir sayı → zar efekti. --- 2. Change on Input Blok her giriş sinyalinde yeni bir sayı üretir ve çıkışı değiştirir. Önceki sayı çıkıştan silinir, yerine yeni sayı gelir. Örn: Her tetiklemede farklı hız ayarı seçmek. --- 3. Input Defines Range Burada blok içindeki Min–Max ayarı değil, giriş değerleri rastgele aralığı belirler. Örn: Girişe 5 verirsen → aralık 0–5 arası olur. Çıkış bu aralıktan rastgele seçilir. Girişe 20 verirsen → 0–20 arası sayı üretir. --- 4. -Change, +Output Bu özel modda, girişin pozitif olması yeni bir rastgele sayı üretir (output değişir). Girişin negatif olması ise mevcut çıktıyı korur, ama çıkışı tekrar gönderir. Örn: Input = +1 → yeni sayı üretildi. Input = -1 → aynı sayı tekrar çıktı olarak verildi. Bu, kontrol sistemlerinde “rastgele sayı sabit kalsın ama tekrar kullanılabilsin” senaryosu için işe yarar. --- 🎮 Kullanım Örnekleri: Yukarıda yazdığım örnekleri kullanarak , rastgele eylemler seçebilirsiniz. Mesela kaeşılaştırıcı logic gate bloğu ile, gelen rastgele değerleri seçip, her rastgele değer için bir eylem atayabilirsiniz. ( Sağa dön, hinge çalışssın vs.) --- 💡 İpuçları: Eğer Min değeri Max değerinden büyük seçersen blok yine çalışır, ama aralık ters çevrilmiş gibi olur (ör. Min=10, Max=0 → 0–10 arası üretir). Bu bloğu sensörlerle birleştirerek tamamen rastgele davranışlar (örneğin otonom robot hareketleri) tasarlayabilirsin. 5. Accumulator Logic Block (Toplayıcı / Biriktirici Mantık Bloğu 📌 Tanım: Accumulator, gelen tüm girişleri toplar (accumulate), bu toplamı seçtiğin bir scale (ölçek) değeri ile çarpar ve üzerine ekler. Sonuç, blokta saklanan stored value (depolanan değer) olur. Çıkış da bu depolanan değerdir. Formül: StoredValue = StoredValue + (Sum(inputs) × Scale) Output = StoredValue Yani: 1. Girişler toplanır. 2. Bu toplam scale değeri ile çarpılır. 3. Sonuç mevcut depolanmış değerin üzerine eklenir. 4. Çıkış (Output) = yeni depolanmış değer. --- ⚙️ İç Ayarları: 1. Minimum / Maximum Barları: Çıkış değerini alt ve üst sınırlar arasında tutar. Aralık: -100 ile +100 Örn: Eğer Min = 0 ve Max = 50 seçilirse → değer 0’ın altına inemez, 50’nin üstüne çıkamaz. 2. Scale (Ölçek): Girişlerin toplamı, önce scale ile çarpılır. Aralık: -100 ile +100 (küsuratlı değerler de mümkün, örn: 25.34). Örn: Input = 2, Scale = 0.5 → eklenen değer 1 olur. 3. Use Steps (Adım Kullan): Açık olduğunda → her değişim tam sayı adımlarıyla ilerler (yuvarlanmış adımlar). Kapalı olduğunda → değerler küsuratlı olarak işlenir (daha hassas). Örn: Use Steps açık → 0 → 1 → 2 → 3 Use Steps kapalı → 0 → 0.1 → 0.2 → 0.3 --- 🛠️ Örnek Çalışmalar: 1. Basit sayaç: Input = 1, Scale = 1 Her tetikleme → stored value +1 olur. Yani her girişte sayacı bir arttırır. 2. Kademeli artış: Input = 1, Scale = 0.5 İlk tetikleme → stored value +0.5 Yavaş yavaş artan bir sayı elde edersin. 3. Limitli sayaç: Min = 0, Max = 10 Input = 1, Scale = 1 Sayaç sadece 0 ile 10 arasında kalır. 4. Geri sayım: Input = -1, Scale = 1 Her tetikleme sayacı bir azaltır. 5. Küsuratlı enerji barı: Input = 1, Scale = 0.25 Her giriş → enerji barını 0.25 arttırır. --- 🎮 Kullanım Senaryoları: Yakıt sistemi, batarya, sayı ve mesafe depolama gibi işlemleri yapabilirsiniz. Mesela bir speedSensor den measurament seçip, accumulatore bağlarsanız, saniye başına hızınızı kaydeder, ve gittiğiniz mesafeyi ölçebilir. Unutmayın bu logic bir çok logicle kullanılarak, harika şeyler yapmanıza olanak sağlar. Sayaç yapmak: Kaç kere tuşa basıldığını veya sinyal geldiğini saymak. Enerji/puan sistemi: Oyuncunun topladığı puanı veya enerjiyi biriktirmek. Motor gücü artışı: Giriş sinyalleri geldikçe motor gücünü kademeli olarak arttırmak. Sınırlı hareket: Belirli bir min–max arasında kalan slider, piston ya da servo hareketi yapmak. Zamanla birikme: Sensör verilerini biriktirerek uzun vadeli ölçüm yapmak (mesela gidilen mesafe). --- 💡 İpuçları: Scale değerini 0.1 gibi küçük yaparsan çok hassas sayaç elde edersin. Eğer scale negatif seçilirse → girişler pozitif olsa bile değer azalır. Min/Max barları, çıkışın kontrolden çıkıp çok büyümesini engellemek için idealdir. Use Steps açık olduğunda daha basit sayaç davranışı elde edersin 6. Comparison Logic Gate (Karşılaştırma Mantık Kapısı) 📌 Tanım: Bu blok, giriş değerini senin belirlediğin threshold (eşik değeri) ile karşılaştırır. Seçtiğin karşılaştırma moduna göre, çıkış -1 veya +1 olur. Formül: If (Input ∘ Threshold) → Output = +1 Else → Output = -1 (∘ = seçtiğin karşılaştırma işlemi) --- ⚙️ İç Ayarları: 1. Threshold (Eşik): Karşılaştırmanın yapılacağı referans değerdir. Aralık: -100 ile +100 Örn: Threshold = 10, Input = 12, Mode = “Greater than” → Output = +1 2. Output Bars (-1 ve +1): Çıkışın alabileceği değerleri belirler. İstersen -1 yerine 0 koyabilir, +1 yerine 5 koyabilirsin. Örn: Output(-1) = 0, Output(+1) = 10 → Input 5 < Threshold 10 → Çıkış = 0 3. Comparison Mode (Karşılaştırma Modları): Less than (<): Input < Threshold → +1, aksi halde -1 Greater than (>): Input > Threshold → +1, aksi halde -1 Equals (==): Input tam eşitse → +1, aksi halde -1 Not equals (!=): Input eşit değilse → +1, aksi halde -1 Less equals (≤): Input ≤ Threshold → +1, aksi halde -1 Greater equals (≥): Input ≥ Threshold → +1, aksi halde -1 4. Clamps Input (Girişi Sınırla): Açık olduğunda, giriş değerini -100 ile +100 aralığında tutar. Böylece threshold ile karşılaştırma daha güvenli yapılır. Kapalıysa, giriş değeri bu aralığın dışına taşabilir. --- 🛠️ Örnekler: Örn 1: Threshold = 50, Mode = Greater than Input = 60 → Çıkış = +1 Input = 40 → Çıkış = -1 Örn 2: Threshold = 0, Mode = Less than Input = -5 → Çıkış = +1 Input = +3 → Çıkış = -1 Örn 3: Threshold = 10, Mode = Equals Input = 10 → Çıkış = +1 Input = 11 → Çıkış = -1 Örn 4 (Output bar değişimi): Output(-1) = 0, Output(+1) = 5 Threshold = 20, Mode = Greater than Input = 25 → Çıkış = 5 Input = 15 → Çıkış = 0 --- 🎮 Kullanım Senaryoları: Motor kontrolü: Hız belirli bir değeri aşarsa motoru kapat. Sensör mantığı: Mesafe sensörü ≤ 5 olursa fren uygula. Buton sistemi: Input tam 1 olunca (Equals) → mekanizmayı çalıştır. İki farklı mod: Input değeri threshold’u geçince yeni bir moda geçiş yap. Yön belirleme: Input > 0 ise ileri, ≤ 0 ise geri. --- 💡 İpuçları: Equals modu yalnızca değerler tam olarak eşit olduğunda çalışır, küsuratlı sayılarda bu çok nadir olur. Eğer ihtiyacın “yaklaşık eşit” ise → Less equals ve Greater equals kombinasyonu ile tolerans tanıyabilirsin. Clamps input açık olmazsa, çok büyük girişler threshold’u kolayca aşar ve mantıksal hatalara yol açabilir. Genellikle açık tutmak güvenlidir. Output barlarını değiştirerek bu bloğu bir çeşit binary switch gibi kullanabilirsin (örneğin 0/1 yerine 0/100).