Atölye › Wordle Tarzı Kelime Tahmini › 14/26. adım
Sarı: harf kelimede var ama başka yerde. Kolay gibi, ama tekrarlanan harflere dikkat! Cevap crane, tahmin
eerie olsun. Sadece sondaki e doğru; diğer iki e gri olmalı, çünkü kelimede tek bir e var ve o zaten
kullanıldı.
Kural: kelimenin her harfi bir kez kullanılabilir. İki turda doğru yaparız:
{ r: 1, a: 1, n: 1 } gibi.Yeşiller önce gelmeli; yoksa öndeki bir sarı, arkadaki bir yeşilin ihtiyaç duyduğu harfi kullanıp bitirebilirdi.
```js
// Mark each letter: green in the right place, yellow somewhere else in the word, gray not (or not that many times).
function score(guess, word) {
const marks = Array(5).fill('gray')
const left = {} // letters of the word not matched by a green
for (let i = 0; i < 5; i++) {
if (guess[i] === word[i]) marks[i] = 'green'
else left[word[i]] = (left[word[i]] || 0) + 1
}
for (let i = 0; i < 5; i++) {
if (marks[i] !== 'green' && left[guess[i]] > 0) {
marks[i] = 'yellow'
left[guess[i]] -= 1
}
}
return marks
}
```const left = {} → boş bir nesne; burada bir sayma tablosu gibi kullanılıyor: left['r'] → kelimede yeşille
eşleşmemiş kaç r kaldı.else → harf yeşil değilse, kelimedeki harfi (word[i]) tabloya say:left[word[i]] || 0 → o harf daha önce sayılmadıysa undefined gelir; || 0 onu 0 yapar.+ 1 → bir ekle. Böylece { r: 1, a: 1, n: 1 } gibi bir tablo oluşur.marks[i] !== 'green' && left[guess[i]] > 0 → bu harf yeşil değilse ve kelimede hâlâ boşta
varsa: marks[i] = 'yellow' ve left[guess[i]] -= 1 (bir eksilt).function score satırının üstüne yorum satırını yaz.const marks = ... satırının altına const left = {} ... satırını yaz.if (guess[i] === word[i]) ... satırının altına else satırını yaz.return marks satırının üstüne ikinci döngüyü yaz.Beceriler: Diziler ve nesneler, Döngüler
← Doğru harf, doğru yer Enter tahmini gönderir →