scrimba
Tic Tac Toe
BONUS: Implement Time Travel
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

AboutCommentsNotes
BONUS: Implement Time Travel
Expand for more info
components
Game.js
run
preview
console
import React, { useState } from 'react';
import { calculateWinner } from '../helpers';
import Board from './Board';

const styles = {
width: '200px',
margin: '20px auto',
};

const Game = () => {
const [board, setBoard] = useState(Array(9).fill(null));
const [xIsNext, setXisNext] = useState(true);
const winner = calculateWinner(board);

const handleClick = i => {
const boardCopy = [...board];
// If user click an occupied square or if game is won, return
if (winner || boardCopy[i]) return;
// Put an X or an O in the clicked square
boardCopy[i] = xIsNext ? 'X' : 'O';
setBoard(boardCopy);
setXisNext(!xIsNext);
}

const jumpTo = () => {

}

const renderMoves = () => (
<button onClick={() => setBoard(Array(9).fill(null))}>
Start Game
</button>
)

return (
<>
<Board squares={board} onClick={handleClick} />
<div style={styles}>
<p>{winner ? 'Winner: ' + winner : 'Next Player: ' + (xIsNext ? 'X' : 'O')}</p>
{renderMoves()}
</div>
</>
)
}

export default Game;
Console
/index.html
-8:45