fixed "first letter" clue edge cases

This commit is contained in:
George Powell
2026-02-02 01:27:12 -05:00
parent d797b980ea
commit f7ec0742e1
3 changed files with 56 additions and 14 deletions

View File

@@ -28,6 +28,11 @@
return "bg-red-500 border-red-600";
}
function getFirstLetter(bookName: string): string {
const match = bookName.match(/[a-zA-Z]/);
return match ? match[0] : bookName[0];
}
function getBoxContent(
guess: Guess,
column: "book" | "firstLetter" | "testament" | "section",
@@ -44,16 +49,20 @@
(correctBook?.section === "Pauline Epistles" ||
correctBook?.section === "General Epistles") &&
correctBook.name[0] === "1";
const guessStartsWithNumber = guess.book.name[0] === "1";
const guessIsEpistlesWithNumber =
(guess.book.section === "Pauline Epistles" ||
guess.book.section === "General Epistles") &&
guess.book.name[0] === "1";
if (
correctIsEpistlesWithNumber &&
guessStartsWithNumber &&
guessIsEpistlesWithNumber &&
guess.firstLetterMatch
) {
return "Yes"; // Special wordplay case
const words = ["Exactly", "Right", "Yes", "Naturally"];
return words[Math.floor(Math.random() * words.length)]; // Special wordplay case
}
return guess.book.name[0]; // Normal case: just show the first letter
return getFirstLetter(guess.book.name); // Normal case: show first letter, ignoring numbers
case "testament":
return (
guess.book.testament.charAt(0).toUpperCase() +