Skip to content

walther-javascript-study/tictactoe-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aqui está um exemplo de README para o seu projeto de jogo da velha em React:


Jogo da Velha em React

Este é um projeto de Jogo da Velha (Tic-Tac-Toe) implementado com React, projetado para reforçar conceitos de estado, componentes e lógica de jogo.

🚀 Funcionalidades

  • Dois jogadores: O jogo é jogado entre dois jogadores, com símbolos X e O.
  • Tabuleiro Dinâmico: O estado do tabuleiro é atualizado dinamicamente com base nos movimentos dos jogadores.
  • Histórico de Jogadas: Cada jogada é registrada e exibida em um log, possibilitando o acompanhamento do jogo.
  • Notificação de Vencedor ou Empate: O jogo detecta e notifica quando há um vencedor ou se o jogo terminou em empate.
  • Edição de Nome dos Jogadores: Os jogadores podem alterar seus nomes durante a partida.
  • Reiniciar Jogo: Função para reiniciar o jogo a qualquer momento.

🧩 Estrutura do Projeto

A estrutura principal dos arquivos do projeto está organizada da seguinte forma:

.
├── src
│   ├── components
│   │   ├── GameBoard.jsx        # Componente do tabuleiro
│   │   ├── GameOver.jsx         # Tela de fim de jogo
│   │   ├── Log.jsx              # Componente do log de jogadas
│   │   └── Player.jsx           # Componente para exibir e editar informações do jogador
│   ├── App.jsx                  # Componente principal do aplicativo
│   ├── index.jsx                # Arquivo de entrada do React
│   └── winning-combinations.js  # Definições de combinações vencedoras
├── public
│   └── index.html               # Template HTML
└── README.md                    # Este README

🛠️ Como funciona

Estado e Componentes

  • App.jsx: Componente principal que mantém o estado principal do jogo, incluindo os nomes dos jogadores, as jogadas realizadas e o jogador ativo.
  • Player.jsx: Componente que exibe as informações dos jogadores, com opção de editar os nomes.
  • GameBoard.jsx: Componente que renderiza o tabuleiro do jogo e captura as jogadas.
  • Log.jsx: Componente que exibe o histórico das jogadas.
  • GameOver.jsx: Tela de fim de jogo que exibe o vencedor ou empate e oferece a opção de reiniciar o jogo.

Funções Principais

  • deriveActivePlayer: Função que determina o jogador ativo com base no histórico de jogadas.
  • deriveWinner: Função que verifica o tabuleiro em busca de uma combinação vencedora.
  • deriveGameBoard: Função que monta o estado do tabuleiro com base nas jogadas realizadas.

⚙️ Pré-requisitos

📦 Instalação

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/nome-do-repositorio.git
  2. Instale as dependências:

    cd nome-do-repositorio
    npm install
  3. Inicie o projeto:

    npm start
  4. Abra o projeto no navegador em http://localhost:3000.

📝 Como Jogar

  1. Clique em um quadrado vazio do tabuleiro para marcar uma jogada.
  2. O jogador ativo será alternado automaticamente entre X e O.
  3. O jogo detecta automaticamente um vencedor ou empate e exibe a mensagem correspondente.
  4. Para reiniciar o jogo, clique no botão de reinício.

📚 Próximas Melhorias

  • Implementação de modo de jogo contra a IA.
  • Adicionar animações para melhorar a experiência do usuário.
  • Possibilitar "desfazer" uma jogada.

🖥️ Tecnologias Utilizadas

  • React
  • JavaScript (ES6+)
  • HTML e CSS

Sinta-se à vontade para contribuir, fazer fork e personalizar o projeto! 😄

📝 Licença

Este projeto está licenciado sob a MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published