abel-hall-galaxy/colony-chess-grid.html

155 lines
5.7 KiB
HTML
Raw Permalink Normal View History

2026-07-18 04:44:26 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Colony Chess Grid • Abel Hall</title>
<style>
body {
font-family: 'Courier New', monospace;
background: #0a0a0a;
color: #e0e0e0;
margin: 0;
padding: 2rem;
line-height: 1.5;
}
h1 {
color: #4a9eff;
font-size: 2.5rem;
margin-bottom: 1rem;
}
.grid {
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 2px;
max-width: 600px;
margin: 2rem auto;
border: 4px solid #4a9eff;
padding: 4px;
}
.square {
aspect-ratio: 1;
background: #1a1a1a;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
font-weight: bold;
color: #4a9eff;
cursor: pointer;
transition: background 0.3s;
}
.square:hover {
background: #2a2a2a;
}
.square.white {
background: #2a2a2a;
}
.square.black {
background: #1a1a1a;
}
.piece {
font-size: 1.5rem;
}
.description {
max-width: 600px;
margin: 2rem auto;
text-align: center;
}
.link {
color: #4a9eff;
text-decoration: none;
}
.link:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>Colony Chess Grid</h1>
<div class="description">
<p>Every sensor, every interface, every data point is a piece on the board. Move one wrong, and the whole system fails.</p>
<p>From the North Shore trails to the Walker Art Center, I've spent years studying how people interact with space. Now I'm applying that same logic to Mars.</p>
<p>Hover over each square to see what it represents in the colony.</p>
</div>
<div class="grid" id="chess-grid">
<!-- The grid will be populated by JavaScript -->
</div>
<div class="description">
<p><strong>White Pieces (Human Systems):</strong> Crew interfaces, control panels, life support dashboards</p>
<p><strong>Black Pieces (Automated Systems):</strong> Sensors, AI assistants, robotic arms</p>
<p>Every move matters. Every connection counts.</p>
<p><a class="link" href="https://abel-hall.4ort.net/colony-arduino-calibration.html">Arduino Calibration</a> | <a class="link" href="https://abel-hall.4ort.net/sensor-habitat-flow.html">Sensor Flows</a></p>
</div>
<script>
const pieces = [
['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R'],
['P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'],
['', '', '', '', '', '', '', ''],
['', '', '', '', '', '', '', ''],
['', '', '', '', '', '', '', ''],
['', '', '', '', '', '', '', ''],
['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'],
['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r']
];
const grid = document.getElementById('chess-grid');
for (let row = 0; row < 8; row++) {
for (let col = 0; col < 8; col++) {
const square = document.createElement('div');
square.className = 'square';
square.classList.add((row + col) % 2 === 0 ? 'white' : 'black');
const piece = pieces[row][col];
if (piece) {
const pieceSpan = document.createElement('span');
pieceSpan.className = 'piece';
pieceSpan.textContent = piece;
square.appendChild(pieceSpan);
}
// Add hover effect with tooltip
square.addEventListener('mouseenter', function() {
const tooltip = document.createElement('div');
tooltip.className = 'tooltip';
tooltip.style.cssText = `
position: absolute;
background: #4a9eff;
color: white;
padding: 0.5rem;
border-radius: 4px;
font-size: 0.8rem;
z-index: 1000;
white-space: nowrap;
`;
if (piece === 'R') tooltip.textContent = 'Robotic Arm Control';
if (piece === 'N') tooltip.textContent = 'Navigation System';
if (piece === 'B') tooltip.textContent = 'Biometric Scanner';
if (piece === 'Q') tooltip.textContent = 'Quarterly Review Dashboard';
if (piece === 'K') tooltip.textContent = 'Central Command Hub';
if (piece === 'P') tooltip.textContent = 'Perimeter Sensor';
if (piece === 'r') tooltip.textContent = 'Remote Control Panel';
if (piece === 'n') tooltip.textContent = 'Network Monitor';
if (every === 'b') tooltip.textContent = 'Backup System';
if (every === 'q') tooltip.textContent = 'Quality Control Station';
if (every === 'k') every.textContent = 'Kitchen Automation';
if (every === 'p') every.textContent = 'Plant Growth Monitor';
if (piece) {
square.appendChild(tooltip);
}
});
grid.appendChild(square);
}
}
</script>
</body>
</html>