71 lines
2.5 KiB
HTML
71 lines
2.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Tictactics</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
</head>
|
|
<body>
|
|
<main class="app" aria-labelledby="game-title">
|
|
<section class="play-area">
|
|
<header class="topbar">
|
|
<div>
|
|
<p class="eyebrow">CAPTURE_TAC_TOE.EXE</p>
|
|
<h1 id="game-title">Tictactics</h1>
|
|
</div>
|
|
<button id="resetButton" class="icon-button" type="button" aria-label="Restart game" title="Restart">
|
|
<span aria-hidden="true">RST</span>
|
|
</button>
|
|
</header>
|
|
|
|
<div class="mode-row" aria-label="Game mode">
|
|
<button id="practiceButton" class="mode-button active" type="button">BOT</button>
|
|
<button id="onlineButton" class="mode-button" type="button">NET</button>
|
|
</div>
|
|
|
|
<div class="status-row" aria-live="polite">
|
|
<div id="turnBadge" class="turn-badge player-x">X to play</div>
|
|
<div id="message" class="message">Trap enemy marks between your marks. First to four wins.</div>
|
|
</div>
|
|
|
|
<div id="networkStatus" class="network-status connecting" role="status">Connecting to matchmaker...</div>
|
|
|
|
<div id="board" class="board" role="grid" aria-label="Tictactics board"></div>
|
|
</section>
|
|
|
|
<aside class="side-panel" aria-label="Game details">
|
|
<div class="score-row">
|
|
<div class="score-box">
|
|
<span class="score-label">X captures</span>
|
|
<strong id="xCaptures">0</strong>
|
|
</div>
|
|
<div class="score-box">
|
|
<span class="score-label">O captures</span>
|
|
<strong id="oCaptures">0</strong>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rule-card">
|
|
<h2>GOAL</h2>
|
|
<p>Place marks on the 5x5 grid. First player to make 4 in a row horizontally, vertically, or diagonally wins.</p>
|
|
</div>
|
|
|
|
<div class="rule-card">
|
|
<h2>CAPTURE</h2>
|
|
<p>When your new mark traps enemy marks in a straight line between two of your marks, those enemy marks are removed.</p>
|
|
</div>
|
|
|
|
<div class="rule-card">
|
|
<h2>MODES</h2>
|
|
<p>BOT is local practice against random moves. NET pairs the first two connected players automatically.</p>
|
|
</div>
|
|
|
|
<ol id="moveList" class="move-list" aria-label="Move history"></ol>
|
|
</aside>
|
|
</main>
|
|
|
|
<script src="game.js"></script>
|
|
</body>
|
|
</html>
|