GitXplorerGitXplorer
A

RobotWars

public
0 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
7e61c4af58b66c12c9e1b5960046a87b9d005462

Update README.md

AAlexHayton committed 10 years ago
Unverified
78d9426e9774bea2882c4cf17ffb999bb4743092

Update README.md

AAlexHayton committed 10 years ago
Unverified
bf48d62fa43d1a656df2463c25b54067d018611f

Update README.md

AAlexHayton committed 10 years ago
Unverified
26305d1ef219b92a84859ef7576283da56cbd388

Update README.md

AAlexHayton committed 10 years ago
Unverified
859832b81b184b4da146770a9fa978f9dcd7a370

Documentation

AAlexHayton committed 10 years ago
Unverified
e94a02e820bc49e53017733c719dfd34dd562bc6

Documentation

AAlexHayton committed 10 years ago

README

The README file for this repository.
	 ___       ___
	 [___] /~\ [___]
	 |ooo|.\_/.|ooo|
	 |888||   ||888|
	 |888||   ||888| 
  {--|###||___||###|--}
 {-}  ### /[_]\ ###  {-}
(O_O) /--[_____]--\ (O_O)
	 (  |       |  )
	[-` ]       [ '-]
	|--|         |--|
	|  |         |  |
    /  \         /  \
  /_====_\     /_====_\

Welcome to Robot Wars!

To run the project type node main in the console. You may need to type npm install first to download all the dependencies.

I have demonstrated the following features in my code:

  • Dependency injection and mocking via the 'rewire' plugin for Node.
  • A full suite of BDD unit tests implemented via 'jasmine-node'. To execute these type jasmine-node spec in a terminal.
  • Separation of concerns, keeping the controllers apart from the model and user interface layers. Stubs and Mocking have allowed testing of each layer independently and straight-through tests confirm that the test cases provided are working.
  • Additional input safety via the use of a specialised enum library and validations at the model level. Further work could be done here to enforce type safety if I had used TypeScript.
  • Detailed code documentation via docco.

If I had more time to spare, it would have been a fun project to write an AngularJS-driven console and visualisation layer served up using the same controller/model via the web browser. I would have liked to have implemented:

  • A shared console accessed using a web page and web sockets.
  • Further work on user input validation and sanity checking.
  • A visualisation of the arena and the robots using HTML5 canvas.