The project was created as part of a Technical Challenge from NGX Interactive
Progress
- 4 “free cell” positions at top.
- 4 “foundation” position to move cards to complete the game
- 8 cascade columns
- Welcome Screen
- Play screen
- End screen
- I have yet to win a game ha but when I do I will build this out
- Follow logic/rules of the classic game
- Random deal to lay out cards in starting cascade columns
- Clicking on “open” card in a column, will move to open ‘freecell’ if one is available
- Currently clicking selects a card and then clicking again places the card
- Ability to drag a single card to new legal position
- Currently you move cards into legal positions via clicking to select then clicking to place
- Dragging is a v2 feature
- Cannot move card to illegal position
- It must include some kind of JSON I/O. Show us how you would use JSON for external data.
- FreeCell class includes a stateToJson method, state is console logged on scoring a card
- All the source code and assets must be uploaded to public GitHub/Bitbucket account
Issues
Tech highlights
- js object destructuring. Example in App.js
- business logic separate from the view. FreeCell.js
- held off bringing in state management library. No redux or mobx just react.
Possible Imporvments
- unit tests for FreeCell.js
- good opportunity for generative testing Ex. try moving every card to every possible location
- adding prop-types would improve stability
- add react dnd for dragging interaction