fix duplicated letters
This commit is contained in:
parent
7853b82a4e
commit
da17da906f
26
src/Game.vue
26
src/Game.vue
@ -67,28 +67,36 @@ function clearTile() {
|
|||||||
|
|
||||||
function completeRow() {
|
function completeRow() {
|
||||||
if (currentRow.every((tile) => tile.letter)) {
|
if (currentRow.every((tile) => tile.letter)) {
|
||||||
const word = currentRow.map((tile) => tile.letter).join('')
|
const guess = currentRow.map((tile) => tile.letter).join('')
|
||||||
if (!allWords.includes(word) && word !== answer) {
|
if (!allWords.includes(guess) && guess !== answer) {
|
||||||
shake()
|
shake()
|
||||||
showMessage(`Not in word list`)
|
showMessage(`Not in word list`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let correct = true
|
let correct = true
|
||||||
|
let answerLetters: (string | null)[] = answer.split('')
|
||||||
|
// first pass: mark correct ones
|
||||||
currentRow.forEach((tile, i) => {
|
currentRow.forEach((tile, i) => {
|
||||||
if (answer.includes(tile.letter)) {
|
if (answerLetters[i] === tile.letter) {
|
||||||
if (answer[i] === tile.letter) {
|
tile.state = letterStates[tile.letter] = LetterState.CORRECT
|
||||||
tile.state = letterStates[tile.letter] = LetterState.CORRECT
|
answerLetters[i] = null
|
||||||
} else {
|
}
|
||||||
|
})
|
||||||
|
// second pass: mark the rest
|
||||||
|
currentRow.forEach((tile, i) => {
|
||||||
|
if (answerLetters[i]) {
|
||||||
|
if (answerLetters.includes(tile.letter)) {
|
||||||
tile.state = LetterState.PRESENT
|
tile.state = LetterState.PRESENT
|
||||||
|
answerLetters[i] = null
|
||||||
if (!letterStates[tile.letter]) {
|
if (!letterStates[tile.letter]) {
|
||||||
letterStates[tile.letter] = LetterState.PRESENT
|
letterStates[tile.letter] = LetterState.PRESENT
|
||||||
}
|
}
|
||||||
correct = false
|
correct = false
|
||||||
|
} else {
|
||||||
|
tile.state = letterStates[tile.letter] = LetterState.ABSENT
|
||||||
|
correct = false
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
tile.state = letterStates[tile.letter] = LetterState.ABSENT
|
|
||||||
correct = false
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (correct) {
|
if (correct) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user