The top level goal is to design the battleship game using Test Driven Development.
The main focus is to demonstrate developer's ability to
- Write
unit tests
in JavaScript - Use a test runner such as
jest
to achieve the above goal
Summary of concepts that the developer should be familiar with at this point in time
- Object Oriented Programming,
- Objects,
- Constructors,
- Factory Functions,
- The Module Pattern,
- ES6 Notation,
- Webpack and Testing with Jest.
For a live preview of the game please visit this link.
- In the game, a human player vs a computer player
- Each player sets up ships on their board. Upon finishing this the board is presented to the opponent
- During gameplay, the human player cannot see the ships on the board they are interacting with
- The first player to hit all ships on the opponent's board wins
- Allow 2 human players (remote/local) to play in the same game
- Maintain a scoreboard for different sessions
- Share scoreboards with friends on a social network
- Store scoreboard data in a remote database or local storage
- Clone this repository on your machine.
- run
npm i
in the root directory to install all dependencies - run
npm test
in order for jest to run all unit tests and show test results
The software does not have any prerequisites, but in case you need to modify it, then the following software should be present on you machine
- NPM node package manage
- Visual Studio Code or any other modern IDE of your choice as long as it supports editing
HTML/CSS/JS
files
For installation of the above listed software please visit their official websites for a quick start, since no custom settings are required.
For dependencies refer to the getting started section
To run the game
- Make sure you have installed all dependencies
- Run this command
npm run serve
to open the game in the browser and start playing it
- Email: [email protected]
- LinkedIn: https://www.linkedin.com/in/igakigongo/
- PluralSight: https://app.pluralsight.com/profile/edward-iga
The project and all associated source code are free for redistribution and modification.