-
Notifications
You must be signed in to change notification settings - Fork 12
CROBOTS-like, client/server robot programming game
License
bonzini/netrobots
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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. 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]>
About
CROBOTS-like, client/server robot programming game
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published