Atölye › Wordle Tarzı Kelime Tahmini › 23/26. adım
Ekran klavyesi gerçek klavyenin yapamadığı bir şey yapabilir: her tuşu o harf hakkında bildiklerinle boyamak. Böylece hangi harflerin denenmediğini bir bakışta görürsün.
Bir harf bir tahminde sarı, sonra yeşil olabilir; tuş en iyi bilgiyi göstermeli. "En iyi"nin bir sırası var: yeşil > sarı > gri. Her işarete bir puan vereceğiz ve daha yüksek puanlı işaret eskisinin yerini alacak.
```js
// The best thing known about each letter so far: green beats yellow beats gray.
function letterColors() {
const rank = { gray: 1, yellow: 2, green: 3 }
const known = {}
for (const g of guesses) {
;[...g.word].forEach((letter, i) => {
const mark = g.marks[i]
if (!known[letter] || rank[mark] > rank[known[letter]]) known[letter] = mark
})
}
return known
}
const known = letterColors()
ctx.fillStyle = known[k.key] ? COLORS[known[k.key]] : '#71717a'
```const rank = { gray: 1, yellow: 2, green: 3 } → işaretlerin puanı.const known = {} → harften en iyi işarete bir tablo: { r: 'green', h: 'gray' } gibi.for (const g of guesses) → her tahmin; içteki forEach o tahminin her harfi (letter) ve sırası (i).!known[letter] || rank[mark] > rank[known[letter]] → bu harf hakkında hiçbir şey bilinmiyorsa ya da yeni
işaretin puanı eskisinden yüksekse: known[letter] = mark.return known → tabloyu ver.known[k.key] ? COLORS[known[k.key]] : '#71717a' → harf biliniyorsa işaretinin rengi, değilse gri. OK ve
DEL'in key'leri ('Enter', 'Backspace') tabloda hiç olmadığı için hep gri.function draw() { satırının üstüne yorum satırını ve letterColors fonksiyonunu yaz; arada bir boş satır
kalsın.draw içinde ctx.font = 'bold 14px sans-serif' satırının üstüne const known = letterColors() yaz.ctx.fillStyle = '#71717a' satırını kod bloğundaki satırla değiştir.Beceriler: Diziler ve nesneler, Oyun durumları
← Enter ve Sil tuşları İstatistik tut →