/
DiLorD
/
React2024dev
Обзор
Документация
Войти
/
DiLorD
/
React2024dev
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/App.js
40 строк
1 KB
Khudyakov Dmitriy
Init
04 янв 2025, 17:29
04 янв 2025, 17:29
d789e92
Код
Авторство
О чём код?
import Board from "./Board"; import { useState } from "react"; export default function Game() { const [isXNext, setIsXNext] = useState(true); const [history, setHistory] = useState([Array(9).fill(null)]); const [currentMove, setCurrentMove] = useState(0); const currentSquares = history[currentMove]; function jumpTo(nextMove) { setCurrentMove(nextMove); setIsXNext(nextMove % 2 === 0); } function handlePlay(nextSquare) { const nextHistory = [...history.slice(0, currentMove + 1), nextSquare]; setHistory(nextHistory); setCurrentMove(nextHistory.length - 1); setIsXNext(!isXNext); } const moves = history.map((squares, move) => { return ( <li key={move}> <button onClick={() => jumpTo(move)}>{move > 0 ? `Перейти на ход #${move}` : 'Начать сначала'}</button> </li> ); }); return ( <div className="game"> <div className="game-board"> <Board isXNext={isXNext} squares={currentSquares} onPlay={handlePlay} /> </div> <div className="game-info"> <ol>{moves}</ol> </div> </div> ); }