CodeBlanks Logo Icon CodeBlanks

Random seed

Aynı seed ile tekrarlanabilir rasgelelik öğrenirsin.

Random Seed ve Determinizm

Bilgisayarlardaki rastgelelik aslında sözde-rastgeledir (pseudo-random). Rastgele sayı üreteçleri bir başlangıç değeri olan Seed (tohum) numarası alır.

// Ayni tohum her zaman ayni sayi dizisini uretir
Random.InitState(42);
int sayi1 = Random.Range(1, 100);

Aynı seed kullanıldığında üreteç her seferinde tam olarak aynı rastgele sayı dizisini üretir; bu duruma determinizm denir.

Seed Paylaşımı ile Dünya Senkronizasyonu

Çok oyunculu oyunlarda tüm harita verisini ağ üzerinden göndermek yerine sadece tohum numarasını (ör. 94821) paylaşmak yeterlidir.

public void SetWorldSeed(int seed) {
    Random.InitState(seed);
}

Her iki oyuncunun bilgisayarı da aynı seed ile algoritmayı çalıştırarak birbirinin tıpatıp aynısı olan haritalar oluşturur.

Uygulama Seed ile deterministik üretim

Bir Start metodu tanımla. İçinde int seed = 42; tanımla ve konsola "Kullanilan tohum: " + seed metnini Debug.Log ile yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class SeedTester : MonoBehaviour
{
    // Start icinde seed tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class SeedTester : MonoBehaviour
{
    void Start()
    {
        int seed = 42;
        Debug.Log("Kullanilan tohum: " + seed);
    }
}

Beklenen çıktı

Kullanilan tohum: 42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Unity'de Random.InitState(seed) fonksiyonu aynı tohum (seed) değeri ile çağrıldığında sonuç ne olur?

  • Oyun anında çöker ve kapatılır
  • Karakterin hızı her karede iki katına çıkar
  • Oyunun tüm kayıt dosyaları silinir
  • Rastgele sayı üreteci her seferinde birebir aynı sayı dizisini üretir Doğru cevap

Açıklama: Aynı seed değeri rastgele sayı üretecini aynı duruma sıfırlar ve ardından gelen sayılar birebir aynı sırada üretilir.

2 Rastgele tohumunu başlat

Soru
Random.____(seedValue);
Cevap
Random.InitState(seedValue);

Açıklama: Unity'de rastgele sayı üretecini belirli bir tohumla başlatmak için 'Random.InitState' metodu kullanılır.

3 Rastgelelik ve tohum kavramları

Kavram Anlamı
Seed Üreteci başlatan tohum değeri
Random.InitState Tohum değerini ayarlayan Unity metodu
Deterministik Aynı girdide aynı çıktıyı veren yapı
Pseudo-random Algoritmayla taklit rastgelelik

İleri seviye bölümündeki tüm dersler