Game Status
Time
{formatTime(timeElapsed)}
{player === "model" && (
{model} {isModelThinking ? "is playing..." : "is playing"}
)}
{/* Left pane - Current page and available links */}
Available Links
{gameStatus !== "playing" && (
)}
{/* Wikipedia iframe (mocked) */}
{/*
{currentPage}
https://en.wikipedia.org/wiki/{currentPage.replace(/\s+/g, "_")}
This is a mock Wikipedia page for {currentPage}. In the actual
implementation, this would be an iframe showing the real Wikipedia
page.
*/}
{/* Available links */}
{gameStatus === "playing" && (
<>
{currentPageLinks
.sort((a, b) => a.localeCompare(b))
.map((link) => (
))}
{player === "model" && (
)}
>
)}
{player === "model" && isModelThinking && gameStatus === "playing" && (
{model} is thinking...
)}
{gameStatus === "playing" && player === "me" && (
)}
{gameStatus === "won" && (
{player === "model" ? `${model} won!` : "You won!"}
{player === "model" ? "It" : "You"} reached {targetPage} in {hops}{" "}
hops.
)}
{gameStatus === "lost" && (
Game Over
{player === "model" ? `${model} didn't` : "You didn't"} reach{" "}
{targetPage} within {maxHops} hops.
)}
{/* Right pane - Game stats and graph */}
);
}