- Clone this repo to your machine.
- Install Node and npm.
- Run
npm install
in your cloned folder. - Run
npm start
in your cloned folder. localhost:3000
should load in your default browser automatically after a minute. Otherwise, do that manually.
- Just a random board game built to practice React and game design in general.
- Created with the MVC framework in mind:
- Model resides as state in App component.
- Controller resides in App component (indicated by "handleXYZ" nomenclature).
- View branches from Board component.
- Subject to change.
-
Basic idea of the game:
-
2 players:
- Royal player
- x01 King
- x02 Knights
- Court player
- x02 Assassins (positions always unknown to Court player, looks like a Pop to them)
- x0N Pops, depending on size of the board.
- x0N Merchants, depending on size of the board.
- Royal player
-
Players take alternate turns:
- Royal player moves 2 different pieces during their turn.
- Court player moves 1 piece and converts a Pop into a Mechant (Revealing that it isn't an Assassin).
-
Royal player win conditions:
- Move the King piece onto E1.
- Capture any Assassin piece.
-
Court player win conditions:
- Capture the King piece.
- Trick the Royal player into capturing a non-Assassin piece.
-
-
Piece rules:
Each tile can only hold one piece. Pieces either move into an empty tile or capture the occupant piece if permitted.
-
King:
- Move one tile vertically.
- Leap over one Knight onto an empty tile.
- Can capture any Court piece.
-
Knight:
- Move any number of tiles laterally or diagonally. Cannot leap over other pieces this way.
- Can capture any Court piece.
-
Pop / Merchant:
- Move one tile laterally or diagonally. Can leap over one other Court piece this way.
-
Assassin:
- Move one tile laterally or diagonally. Can leap over one other Court piece this way. Can capture the King this way.
- Can swap positions with another Court piece directly laterally or diagonally opposite itself. No range limit to this swap.
- If a King is positioned laterally or diagonally in between two Assassins, the King is captured.
-
- Knowledge is valuable to the Royal player. Balance gameplay on this principle.
- P2P networking to be added in later. WebRTC probably.
- Set a few test scenarios.
This project was bootstrapped with Create React App.