Catle
Hint
Archive
Congratulations!
Almost!
Next Catle in
Streak:
is located in
's adoption page
If the link is broken, that might mean
was adopted.
{ return guess.split('').map((letter, i) => { // First check if it's a correct match if (letter.toLowerCase() === $store.global.curGame.catName[i].toLowerCase()) return '🟩'; // Count occurrences in answer and guess const guessLetter = letter.toLowerCase(); const target = $store.global.curGame.catName.toLowerCase(); const answerCount = [...target].filter(c => c === guessLetter).length; // First count all correct positions in the entire guess const totalCorrectPositions = [...guess.toLowerCase()] .filter((c, idx) => c === guessLetter && target[idx] === guessLetter).length; // If we have remaining occurrences after correct positions const remainingOccurrences = answerCount - totalCorrectPositions; if (remainingOccurrences <= 0) return '⬛'; // Count yellow positions before this position const yellowPositionsBefore = [...guess.toLowerCase()].slice(0, i) .filter((c, idx) => c === guessLetter && target[idx] !== guessLetter).length; // If we haven't used up all remaining occurrences, mark as present if (yellowPositionsBefore < remainingOccurrences) return '🟨'; return '⬛'; }).join(''); }).join('\n'); const gameId = $store.global.curGameId const shareText = `Catle | ${decodeGameId(gameId)} | ${guesses.length}/6\n\n${guessGrid}\n\n${window.location.origin}/${gameId}`; navigator.clipboard.writeText(shareText); clicked = true; setTimeout(() => { clicked = false; }, 3000); " >
share
Play past games
ENTER
⌫