Skip to content

protab/netrobots

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

It was further modified for Programmers Summer Camp 2013 held in Janske
Lazne, Czech Republic, by Jiri Benc.

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).

   lib/      -  Library for writing robots, released under the LGPL.

   examples/ -  Source code for five sample robots (four rewrites of the
                samples provided with CROBOTS, and a rewrite of ESPOTRUN.R),
                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 (outdated).

To compile the server, library and examples, do

   make all

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).
Press 's' inside the battle arena window to start the fight.

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


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

There are some.


Credits
=======

The authors of the initial release were:

    game logic     Davide Arrigo
                   Masiar Babazadeh
                   Roberto Minelli

    graphics       Sascha Dominguez
                   Matthias Eberli

    networking     Remo Lemma
                   Patrick Zulian

    coordination   Paolo Bonzini <bonzini@gnu.org>

Later modifications by:

    Jiri Benc <jbenc@upir.cz>

About

CROBOTS-like, client/server robot programming game - modifications for LTP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 87.1%
  • Python 7.6%
  • C++ 2.1%
  • PHP 1.2%
  • Perl 1.1%
  • Shell 0.5%
  • Objective-C 0.4%