Tüm Rehberler

Kelime Tahmin Oyunu — Wordle Klonu

Orta ⏱ 100 dk
BÖLÜM 5 / 8

Renk Değerlendirme Algoritması

Wordle'ın temel algoritması: hangi harfin doğru yerde (yeşil), yanlış yerde (sarı) ya da olmadığı (gri) renklendirmesini yapıyoruz.

Unity Editör Adımları

GameController'a EvaluateGuess() metodu ekle
Çift geçişli algoritma: önce doğru pozisyonları bul, sonra yanlış pozisyonları
TileState enum ile LetterCell'leri güncelle
Klavye harf renklerini de güncelle
csharp
void EvaluateGuess(string guess)
{
    string target = WordManager.Instance.TargetWord;
    TileState[] states = new TileState[5];
    bool[] targetUsed = new bool[5];
    bool[] guessUsed  = new bool[5];

    // 1. Geçiş: Doğru pozisyonlar (Yeşil)
    for (int i = 0; i < 5; i++)
    {
        if (guess[i] == target[i])
        {
            states[i] = TileState.Correct;
            targetUsed[i] = true;
            guessUsed[i]  = true;
        }
    }

    // 2. Geçiş: Yanlış pozisyondaki harfler (Sarı)
    for (int i = 0; i < 5; i++)
    {
        if (guessUsed[i]) continue;
        for (int j = 0; j < 5; j++)
        {
            if (!targetUsed[j] && guess[i] == target[j])
            {
                states[i] = TileState.Present;
                targetUsed[j] = true;
                break;
            }
        }
        if (states[i] == TileState.Empty)
            states[i] = TileState.Absent;
    }

    // Hücrelere uygula
    for (int i = 0; i < 5; i++)
        grid[currentRow, i].SetState(states[i]);

    // Kazandı mı?
    if (guess == target)
    { WinGame(); return; }

    currentRow++;
    currentGuess.Clear();

    if (currentRow >= 6) LoseGame();
}

İki geçişli algoritma çift harfli kelimeleri (KANAL gibi) doğru renklendirir. Tek geçiş hata yapar!

Önceki Bölüm Sonraki Bölüm