Aprenent HTML, CSS i Javascript creant el joc Go

Els objectius d'aquest document són proporcionar una comprensió clara del codi HTML i JavaScript utilitzat per crear un joc bàsic de Go. Aprendràs com inicialitzar i configurar un document HTML, aplicar estils CSS per millorar l'aparença, i implementar la lògica de joc amb JavaScript. Els conceptes clau inclouen la creació i manipulació del DOM, gestió d'esdeveniments, i actualització dinàmica del contingut de la pàgina, tots essencials per desenvolupar aplicacions web interactives.

  1. Inicialització del Document HTML

    <!DOCTYPE html>
    <html lang="en">

    Aquesta part inicialitza el document com un document HTML5 i estableix l'idioma a anglès.

  2. Secció de Capçalera

    <head>

    La secció de capçalera inclou metadades sobre el document HTML.

  3. Metadades del Document

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Go Game</title>

    Aquests elements estableixen la codificació de caràcters, la configuració de la finestra gràfica per al disseny responsiu, i el títol del document com "Go Game".

  4. Estils CSS

    <style>
    #go-board {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    grid-gap: 1px;
    background-color: #000;
    }
    .stone {
    background-color: #f0f0f0;
    border: 1px solid #ccc;
    padding: 0;
    margin: 0;
    text-align: center;
    font-size: 24px;
    cursor: pointer;
    box-sizing: border-box;
    }
    .black {
    background-color: #000;
    color: #fff;
    }
    .white {
    background-color: #fff;
    color: #000;
    }
    .captured {
    background-color: #d3d3d3;
    color: #000;
    }
    #captured-counts {
    margin-top: 20px;
    }
    #captured-counts span {
    display: inline-block;
    margin-right: 20px;
    font-size: 18px;
    }
    </style>

    Aquesta secció inclou estils CSS per al tauler del joc de Go, les pedres, i el recompte de pedres capturades, definint el seu aspecte i disposició.

  5. Fi de la Secció de Capçalera i Inici del Cos del Document

    </head>
    <body>

    La secció de cos conté el contingut visible del document HTML.

  6. Contenidor del Tauler del Joc

    <div id="go-board"></div>

    Aquest element div és el contenidor per al tauler del joc de Go.

  7. Recompte de Pedres Capturades

    <div id="captured-counts">
    <span id="black-captured">Pedres negres capturades: 0</span>
    <span id="white-captured">Pedres blanques capturades: 0</span>
    </div>

    Aquest element div i els seus elements fill span mostren el recompte de pedres negres i blanques capturades.

  8. Inicialització de Variables

    <script>
    const boardContainer = document.getElementById('go-board');
    const boardSize = 9;
    const stoneSize = 50;
    let currentPlayer = 'black';
    let gameBoard = [];
    let capturedStones = { black: 0, white: 0 };
    </script>

    Aquest script inicialitza variables per al joc de Go, incloent el contenidor del tauler, la mida, la mida de les pedres, el jugador actual, la matriu del tauler de joc i el recompte de pedres capturades.

  9. Creació del Tauler i Gestor d'Esdeveniments

    <script>
    for (let i = 0; i < boardSize; i++) {
    gameBoard.push([]);
    for (let j = 0; j < boardSize; j++) {
    const stone = document.createElement('div');
    stone.className = 'stone';
    stone.style.width = `${stoneSize}px`;
    stone.style.height = `${stoneSize}px`;
    stone.dataset.row = i;
    stone.dataset.col = j;
    boardContainer.appendChild(stone);
    gameBoard[i].push(stone);
    }
    }
    boardContainer.addEventListener('click', handleStoneClick);
    </script>

    Aquest script crea les pedres (elements div) per al tauler de joc i afegeix un gestor d'esdeveniments de clic per gestionar la col·locació de les pedres.

  10. Funcions de Gestió de Pedres