1- import React , { Component } from " react" ;
2- import Row from " ./Row" ;
3- import { BoardContent , Scoreboard , Player } from " ../types/types" ;
1+ import React , { Component } from ' react' ;
2+ import Row from ' ./Row' ;
3+ import { BoardContent , Scoreboard , Player } from ' ../types/types' ;
44
55type BoardState = {
66 board : BoardContent ;
@@ -15,17 +15,17 @@ class Board extends Component<{}, BoardState> {
1515 super ( props ) ;
1616 this . state = {
1717 board : this . newBoard ( ) ,
18- currentPlayer : "X" ,
18+ currentPlayer : 'X' ,
1919 gameOver : false ,
20- message : "" ,
20+ message : '' ,
2121 scoreboard : { X : 0 , O : 0 } ,
2222 } ;
2323
2424 this . resetBoard = this . resetBoard . bind ( this ) ;
2525 this . handleBoxClick = this . handleBoxClick . bind ( this ) ;
2626 }
2727
28- componentDidUpdate ( ) :void {
28+ componentDidUpdate ( ) : void {
2929 this . checkForWinner ( ) ;
3030 }
3131
@@ -36,9 +36,9 @@ class Board extends Component<{}, BoardState> {
3636 */
3737 newBoard ( ) : BoardContent {
3838 return [
39- [ "-" , "-" , "-" ] ,
40- [ "-" , "-" , "-" ] ,
41- [ "-" , "-" , "-" ] ,
39+ [ '-' , '-' , '-' ] ,
40+ [ '-' , '-' , '-' ] ,
41+ [ '-' , '-' , '-' ] ,
4242 ] ;
4343 }
4444
@@ -51,7 +51,7 @@ class Board extends Component<{}, BoardState> {
5151 this . setState ( {
5252 gameOver : false ,
5353 board : this . newBoard ( ) ,
54- message : "" ,
54+ message : '' ,
5555 } ) ;
5656 }
5757
@@ -65,41 +65,25 @@ class Board extends Component<{}, BoardState> {
6565
6666 const spacesLeft = ( ) : boolean => {
6767 for ( let i of board ) {
68- if ( i . includes ( "-" ) ) return true ;
68+ if ( i . includes ( '-' ) ) return true ;
6969 }
7070 return false ;
7171 } ;
7272
7373 if ( ! gameOver ) {
7474 // win conditions: matching rows, columns, or diagonals, that are not empty('-')
7575 if (
76- ( board [ 0 ] [ 0 ] === board [ 0 ] [ 1 ] &&
77- board [ 0 ] [ 1 ] === board [ 0 ] [ 2 ] &&
78- board [ 0 ] [ 2 ] !== "-" ) ||
79- ( board [ 1 ] [ 0 ] === board [ 1 ] [ 1 ] &&
80- board [ 1 ] [ 1 ] === board [ 1 ] [ 2 ] &&
81- board [ 1 ] [ 2 ] !== "-" ) ||
82- ( board [ 2 ] [ 0 ] === board [ 2 ] [ 1 ] &&
83- board [ 2 ] [ 1 ] === board [ 2 ] [ 2 ] &&
84- board [ 2 ] [ 2 ] !== "-" ) ||
85- ( board [ 0 ] [ 0 ] === board [ 1 ] [ 0 ] &&
86- board [ 1 ] [ 0 ] === board [ 2 ] [ 0 ] &&
87- board [ 2 ] [ 0 ] !== "-" ) ||
88- ( board [ 0 ] [ 1 ] === board [ 1 ] [ 1 ] &&
89- board [ 1 ] [ 1 ] === board [ 2 ] [ 1 ] &&
90- board [ 2 ] [ 1 ] !== "-" ) ||
91- ( board [ 0 ] [ 2 ] === board [ 1 ] [ 2 ] &&
92- board [ 1 ] [ 2 ] === board [ 2 ] [ 2 ] &&
93- board [ 2 ] [ 2 ] !== "-" ) ||
94- ( board [ 0 ] [ 0 ] === board [ 1 ] [ 1 ] &&
95- board [ 1 ] [ 1 ] === board [ 2 ] [ 2 ] &&
96- board [ 2 ] [ 2 ] !== "-" ) ||
97- ( board [ 2 ] [ 0 ] === board [ 1 ] [ 1 ] &&
98- board [ 1 ] [ 1 ] === board [ 0 ] [ 2 ] &&
99- board [ 0 ] [ 2 ] !== "-" )
76+ ( board [ 0 ] [ 0 ] === board [ 0 ] [ 1 ] && board [ 0 ] [ 1 ] === board [ 0 ] [ 2 ] && board [ 0 ] [ 2 ] !== '-' ) ||
77+ ( board [ 1 ] [ 0 ] === board [ 1 ] [ 1 ] && board [ 1 ] [ 1 ] === board [ 1 ] [ 2 ] && board [ 1 ] [ 2 ] !== '-' ) ||
78+ ( board [ 2 ] [ 0 ] === board [ 2 ] [ 1 ] && board [ 2 ] [ 1 ] === board [ 2 ] [ 2 ] && board [ 2 ] [ 2 ] !== '-' ) ||
79+ ( board [ 0 ] [ 0 ] === board [ 1 ] [ 0 ] && board [ 1 ] [ 0 ] === board [ 2 ] [ 0 ] && board [ 2 ] [ 0 ] !== '-' ) ||
80+ ( board [ 0 ] [ 1 ] === board [ 1 ] [ 1 ] && board [ 1 ] [ 1 ] === board [ 2 ] [ 1 ] && board [ 2 ] [ 1 ] !== '-' ) ||
81+ ( board [ 0 ] [ 2 ] === board [ 1 ] [ 2 ] && board [ 1 ] [ 2 ] === board [ 2 ] [ 2 ] && board [ 2 ] [ 2 ] !== '-' ) ||
82+ ( board [ 0 ] [ 0 ] === board [ 1 ] [ 1 ] && board [ 1 ] [ 1 ] === board [ 2 ] [ 2 ] && board [ 2 ] [ 2 ] !== '-' ) ||
83+ ( board [ 2 ] [ 0 ] === board [ 1 ] [ 1 ] && board [ 1 ] [ 1 ] === board [ 0 ] [ 2 ] && board [ 0 ] [ 2 ] !== '-' )
10084 ) {
10185 // winner is the person who's turn was previous
102- const winner : Player = currentPlayer === "X" ? "O" : "X" ;
86+ const winner : Player = currentPlayer === 'X' ? 'O' : 'X' ;
10387
10488 this . setState ( {
10589 gameOver : true ,
@@ -110,7 +94,7 @@ class Board extends Component<{}, BoardState> {
11094 } else if ( ! spacesLeft ( ) ) {
11195 this . setState ( {
11296 gameOver : true ,
113- message : " Draw!" ,
97+ message : ' Draw!' ,
11498 } ) ;
11599 }
116100 }
@@ -123,30 +107,25 @@ class Board extends Component<{}, BoardState> {
123107 [ ...this . state . board [ 2 ] ] ,
124108 ] ;
125109 boardCopy [ row ] [ column ] = this . state . currentPlayer ;
126- const newPlayer : Player = this . state . currentPlayer === "X" ? "O" : "X" ;
110+ const newPlayer : Player = this . state . currentPlayer === 'X' ? 'O' : 'X' ;
127111 this . setState ( { board : boardCopy , currentPlayer : newPlayer } ) ;
128112 }
129113
130114 render ( ) : JSX . Element {
131115 const rows : Array < JSX . Element > = [ ] ;
132116 for ( let i = 0 ; i < 3 ; i ++ ) {
133117 rows . push (
134- < Row
135- key = { i }
136- row = { i }
137- handleBoxClick = { this . handleBoxClick }
138- values = { this . state . board [ i ] }
139- />
118+ < Row key = { i } row = { i } handleBoxClick = { this . handleBoxClick } values = { this . state . board [ i ] } /> ,
140119 ) ;
141120 }
142121 // const { X, O }: Scoreboard = this.state.scoreboard;
143122
144123 return (
145- < div className = " board" >
124+ < div className = ' board' >
146125 < h1 > Tic Tac Toe</ h1 >
147126 { this . state . gameOver && < h4 > { this . state . message } </ h4 > }
148127 { rows }
149- < button id = " reset" onClick = { this . resetBoard } >
128+ < button id = ' reset' onClick = { this . resetBoard } >
150129 Reset
151130 </ button >
152131 </ div >
0 commit comments