recherche

Maison  >  Questions et réponses  >  le corps du texte

Une tentative d'écrire un jeu de tic-tac-toe en utilisant JavaScript

<p>J'essaie d'implémenter les X et les O dans Tic Tac Toe via JavaScript en cliquant sur un carré de mon tableau. Je dois créer X ou O pour le jeu Tic Tac Toe. Mais je ne sais pas comment faire un X ou un O. Et j'ai besoin qu'il soit fonctionnel comme un véritable jeu de tic-tac-toe. </p>
P粉733166744P粉733166744495 Il y a quelques jours563

répondre à tous(1)je répondrai

  • P粉021708275

    P粉0217082752023-09-04 12:01:27

    Vous devez parcourir chaque carré car querySelectorAll renvoie plusieurs nœuds et vous ne pouvez pas y ajouter directement d'écouteurs d'événements car addEventListener ne peut fonctionner que sur un nœud à la fois.

    J'ai également ajouté du CSS à l'extrait de code ci-dessous afin que vous puissiez le voir fonctionner lorsque vous l'exécutez. Ignorez cela dans le projet final.

    window.onload = () => {
        
        const squares = document.querySelectorAll(".square")
    
        let currentPlayer = "X";
    
        squares.forEach(square => {
    
            square.addEventListener("click", () => {
                    
                    if (square.innerHTML === "") {
                        square.innerHTML = currentPlayer;
                        currentPlayer = currentPlayer === "X" ? "O" : "X";
                    }
        
                });
        });
    };
    
    document.querySelector('#reset-btn').addEventListener('click', () => {
        document.querySelectorAll('.square').forEach(square => {
            square.innerHTML = "";
        });
    });
    #board {
      margin: 0 auto;
      width: 50%;
    }
    
    .row {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
    }
    
    .square {
      border: 1px solid black;
      padding: 1rem;
      cursor: pointer;
      text-align: center;
      aspect-ratio: 1/1;
      
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .square:hover {
      background-color: #CCCCCC;
    }
    <body>
      <div id="board">
        <div class="row">
          <div class="square"></div>
          <div class="square"></div>
          <div class="square"></div>
        </div>
        <div class="row">
          <div class="square"></div>
          <div class="square"></div>
          <div class="square"></div>
        </div>
        <div class="row">
          <div class="square"></div>
          <div class="square"></div>
          <div class="square"></div>
        </div>
        <button id="reset-btn">RESET</button>
      </div>
    </body>

    Edit : j'ai modifié l'extrait de code ci-dessus en Alternate on click, qui peut être utilisé en initialisant une variable avec le joueur actuel (X ou O) et en l'échangeant au clic à l'aide d'une simple instruction ternaire. J'ai également ajouté une fonctionnalité à votre bouton de réinitialisation !

    répondre
    0
  • Annulerrépondre