Git Product home page Git Product logo

netrobots's Introduction

Netrobots
---------

This was started as a group project for a C programming course at
University of Lugano (http://www.inf.unisi.ch).  This code was written
by seven 3rd semester students (with aid from the TA) in a week, working
on average 2-3 hours every day.

The game is mostly based on CROBOTS (see
http://en.wikipedia.org/wiki/Crobots for more info), with the following
main differences: 1) the game logic was designed from scratch based on
the CROBOTS manual; bugs and exact timings of CROBOTS are not emulated.
2) the robots run concurrently rather than in time sharing; this means
that doing math is basically free in the robots.  3) the shooting and
scanning angles are measured clockwise to allow using the C library's
sin/cos/atan functions.  4) divisions by zero will *crash* the robot
(kill it) rather than restart it.

Here is the structure:

   fight    -  Driver to start a robot fight!

   Makefile -  Makefile to build the sample robots and the server

   doc/     -  LaTeX documentation, based on CROBOTS by Tom Poindexter.

   server/  -  Source code for the server, released under the GPL (should
               work on MacOS and Linux).

   clients/ -  Source code for five sample robots (four rewrites of the
               samples provided with CROBOTS, and a rewrite of ESPOTRUN.R)
               and for the client, in the public domain.


The code is released hoping that other people can help improving it.

Usage
=====

For how to program a robot, see doc/robots.tex.

To compile the program (right now it only works on MacOS X, see below!) do

   make

To start a fight, use the enclosed fight script as follows:

   ./fight ./counter ./rook ./sniper ./spot

This will start the four enclosed "fighter" robots (the fifth, "rabbit",
does not shoot at all and can be used to start training your own robots).

Tasks
=====

Possible tasks include:

- easy: document the client/server protocol

- easy: rewrite the client library in Java/Perl/Python/Ruby (includes additional
  portability benefits!)

- easy: Windows port of the server (SDL provides a replacement for setitimer)

- easy: modify clients/robots.h to provide a compatibility layer allowing to run
  old CROBOTS code.

- easy: write a non-graphic version of the server

- medium: Windows port of the C client library

- medium: integrate the "fight" script into the server.


Known bugs
==========

None. :-)


Credits
=======

The authors of the initial release are:

    game logic     Davide Arrigo
                   Masiar Babazadeh
                   Roberto Minelli

    graphics       Sascha Dominguez
                   Matthias Eberli

    networking     Remo Lemma
                   Patrick Zulian

    coordination   Paolo Bonzini <[email protected]>

netrobots's People

Contributors

bonzini avatar

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.