GithubHelp home page GithubHelp logo

sphynx / chapayev-js Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 1.0 335 KB

JavaScript implementation of a simple multiplayer billiards-like game

Home Page: http://iveselov.info/chapayev/

Ruby 0.12% JavaScript 99.88%
javascript game chapayev raphaeljs billiards knockout sylvester

chapayev-js's Introduction

"Chapayev game" (Russian: "игра в Чапаева") is a game played on a checkerboard, a hybrid of checkers and billiards.

Game rules and funny details are present on Wikipedia

The project has been started as a programming exercise while studying Javascript and various JS libraries. In the same time I just wanted to play Chapayev with friends, so I decided to implement multiplayer version as well.

JS libraries used so far:

  • Raphaёl -- for game graphics and animation
  • Socket.io -- for client/server interaction suitable for any browser
  • Node.js -- for server side
  • Knockout.js -- for structuring the code, introducing data model in UI using MVVM pattern
  • jQuery -- for querying the DOM, providing templates for Knockout.
  • Sylvester -- for vector/matrix operation needed for collision resolving.

chapayev-js's People

Contributors

illegal avatar sphynx avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

pomidorchi

chapayev-js's Issues

Create a bot to play with while there are no online players

The bot should play more or less randomly (+- 5/10 degrees from the optimal angle) to be interesting and non-invincible :)

There might be also different strategies for choosing target pieces.

The bot should be implemented on the client side to be able to play offline.

Pieces advance

Implement pieces advance, level by level (after each win) in correspondence with typical Chapayev rules (see on Wikipedia).

Make console commands history

It should be possible to recall last command with 'up' arrow.
'Up' and 'down' arrows should work as in shell command line.

The page stays in "Waiting for..." state

After connecting to the server, the status bar shows "Waiting for eth0.net.ua..." all the time and site's favicon is in "loading" state as well, despite the fact we have successfully connected.

Note: reproduces in Chrome only. Firefox works fine.

Add URLs to specific games

Make links with shebangs (smth. like iveselov.info/chapayev/#!23131123).

This will make it possible to send a link to the specific game.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.