JavaScript Applications - "Team Necropolis"

Classic Tetris Game

##Game Description "Classic Tetris Game" is a standard tetris game, developed in Javascript. In order to start new game, you have to press "Start" button, and then play with "J, K, L, I" keys. Each completed row give points to the player. The speed is increased on certain amount of points, and the level increases as well. The more rows you complete, the more points you get. Good luck!

##Project Architecture

  • Developed in JavaScript
  • Completely OOP Model-View-Controller design
  • Game model is implemented in file gameModel.js
  • UI implementaion is in file view.js
  • Game control is implemented in file tetris.js
  • Entry point of the program is function Tetris.init()
  • All objects are loaded dinamically using System.js
  • All game configuration is implemented in file config.js

##Project Design

  • UI of the game is based on HTML tags and CSS styles
  • JQuery is used for DOM manipulation
  • Main game field is based on HTML table, and only CSS styles are changed dinamically
  • All control and statistic fields are separate divs
  • Game is scalable, used bootstrap

##Storage, game score and sharing results

  • All score and storage logic is implemented in score.js
  • When game is over, result is store as localStorage in the browser
  • Results can be shared using Google Plus, Facebook and Tweeter JS APIs

##Tests Tests are performed with Mocha Unit Testing Framework and Chai assertion framework. Unit tests run with Node.js " spec " reporter. To be run on your machine you need to have installed " iojs ". Just open console in folder tests and run command " npm test ".

  • gameModel-tests.js The first series of tests verify gameModel.js module contains all the functions you that he needed. The second series of tests verify function " newShape() " from same module does the function returns the correct data. Numbers beteween 1 and 7.
  • view-tests.js The first series of tests verify view.js module contains all the functions you that he needed. The second series of tests verify functions " reset(), draw(), reDraw(), clearLine() " from same module.

##Team members

  • ageorgiev - Atanas Georgiev - Base game + Use jQuery, Implement OOP design
  • TodorDimitrov - Todor Dimitrov - Unit Tests
  • Nayata - Niya Keranova - localStorage
  • vasilevhr - Hristo Vasilev - Third Party APIs
  • Alexio86 - Alexander Pavlov - Twitter Bootstrap

##Project Link: https://github.com/NayaIT/JavaScript-Applications-Team-Necropolis/tree/master/src