react-tic-tac-toe's People
react-tic-tac-toe's Issues
Square should not understand what "winning" is
Currently the logic in Square
is coupled with the idea of "winning". This is not very reusable. Instead, we could let Square
take in class modifications from its parent components. The function header might look like:
function Square({ value, onSquareClick, squareClass })
Then we let Board
handle what the Square
should look like by passing in squareClass
.
Data structures should be well documented
There are some unintuitive data structures lying around in App.js, particularly history
and calculateWinner
. These data structures should be documented to not confused readers.
calculateWinner should return an object, not an array
Returning an object would better communicate how calculateWinner
is trying to return two things: who the winner is, and what squares the winning line consists of.
return {winner: squares[a], line: lines[i]}
Should not assume that tic-tac-toe is 3x3
Right now the game is hardcoded to handle a 3x3 game state. The code should be refactored to handle any NxN game state.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.