RARS Race Meet Rules
as run by Ralph Scott
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
These are the rules and procedures for the races that are hosted by
Ralph Scott. These rules are subject to change at any time, but
any such changes will be announced to the mailing list a reasonable
time before they go into effect. Anyone else can also host races,
and they are free to design their own set of rules if they wish.
The following are general rules that apply to all the races. For
each race there will be an announcement that will detail any special
requirements for that race. The term car, robot, driver are often used
as synonyms for each other.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HOW TO SUBMIT YOUR CONTESTANT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Entries will be received by e-mail, directed to rsc...@alpha.netusa.net.
The entries are of course, robot driver functions. They must be in
source code, either ANSI C or C++, to be linked with Borland C/C++ for
OS/2. Source files will be compiled with that compiler. Please keep
in mind that pointers and ints may not be the same size and an int
is most definetely NOT 2 bytes (as it might be in DOS).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WHAT TO SUBMIT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Submissions should consist of a source code file with an optional data
file. The source code file should contain the driver function
to be entered into the contest.
There are some information requirements for the first few lines of
the program file. The first few lines of every robot driver must have
the following:
1. the filename, your full name, your e-mail address, and your robot's name.
2. What race you want to enter. You can say the track name or just the
date, for example. (Just be clear.) And which division the car is
entered for (expert or stocker or both).
3. Whether or not you want me to keep the source confidential.
4. Tell me if your program needs to read a data file.
The robot driver function name should be identical or a reasonably close
match to the name string contained in the program. Therefore, if we have a robot driver named
"Charlie" the name of its function would be Charlie(), and it would be
in a file named CHARLIE.CPP and if it reads a data file the file would
be named CHARLIE.DAT. The filename(s) should not differ from the robot
name by anything more than a sequence number at the end, and the lack of
case distinctions. While the name need not be less than eight
characters (it should be less than 254 however), in the interests of
future compatibility, please show some restraint.
In the interest of bookkeeping, the filename must change for each new
version of your software. The easiest way is just to append a sequence
number, so when BURNS.CPP is changed it becomes BURNS1.CPP, and then
BURNS2.CPP, etc. The robot name and the function name should not
change. For example, they could remain "Burns" and Burns(). Of course
you may rename all three if you want to, and then the filename should be
the same as the robot name and function name.
Robots may read a data file. Hence, the entry may consist of two files,
the program file and the data file. The filename for these two files
must be the same, except for .dat extension on the data file. The robot
file will have the extension .cpp or .c or .obj.
If your robot reads a data file it must be sent at the same time as the
robot file. You must send a new data file when you send a new robot.
They should always be sent in pairs to help keep me from using the wrong
data file. It would be best if your data file began with its own name,
and the robot checks it when it reads it, but I won't require that. You
may send a new data file to go with an old robot, but also send a text
file giving its file name, so that I know for certain which robot it
goes with.
The software version to be used for each race meet will be announced in
advance. It will generally be the lastest version (modified for OS/2),
or the one just before that one. Needless to say, the programs must
compile and link with that version.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RESTRICTIONS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Any robots that cause run-time problems with any part of the software,
including the other robots, will be disqualified. Ralph's judgement
will be final here. In particular, check every division to ensure that
the denominator will never be zero. The same applies to certain
mathematical functions that can have illegal arguments, such as sqrt().
If you allocate RAM, with "new" or malloc(), be sure to do it only once,
even if there are multiple races. (We can't have you accumulating more
RAM with each race!) Also check for un-initialized variables that can
cause seemingly random behaviour.
Robot code should not make any direct DOS or BIOS calls, nor access
memory in any strange ways. No peripheral hardware may be accessed,
with the possible exception of disk reading during initialization (but
see next paragraph). Robots may use the "extern" keyword to access any
data that they can find, but may not alter such data. Any robot driver
function that causes any problems with any other part of the software
will simply not be used. Ralph Scott's judgement will be final in this
matter.
When no prizes are involved, then Ralph Scott or his close associates
and family members may compete in a non-competitive mode (will not get
points nor position).
All robot drivers that I receive will be held in confidence until after
the races are completed. If requested, I will put the public
drivers on the ftp site. Also, I will not announce performance figures
for the early entries prior to race day.
Don't expect me to do any kind of tuning or adjusting or debugging to
any robot. Every entry must be ready to race, or it won't. I will
notify the author A.S.A.P if there are problems, but that might take a
day or two, or even three. (Although usually it will be a matter of a
few hours.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WHEN TO SUBMIT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Entries must be received by 1:00 PM, U.S East Coast time, on the day of
the competition. If the net is slow, too bad, so send them as early as
possible. It is better if I receive them several days early, in case
there are any problems with compilation, linking, or execution. (I
will inform you A.S.A.P.) All problems must be corrected before the
1:00 PM deadline. Only one robot per author will be allowed to compete,
so if you have sent me more than one make it clear which one is the
entry.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RACE FORMAT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The races shall be run on a predetermined track which will be announced
at least two weeks ahead of time. The robots are expected to be able to
traverse this track. Robots may be disqualified if they cannot complete
7 laps on the tracks. Sometimes the track will not be announced before
the race date. The robots will then be expected to traverse any track.
On 'surprise' tracks, there may be a 100 lap practice period for those
who request it. The surface of the track will be announced along with
the track itself.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DIVISIONS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
There will be two divisions of robots that contestants may compete
in. A contestant may compete in one division or both. But only
one entry may be made per division.
The "Unlimited" division will consists of any driver code subject to
the limitations above.
The "Stocker" division will consists of driver code that has been modified
from the base "stocker.cpp" function.
Each division will have two classes of author. The classes are expert
and novice. All contestants will start off in the novice class. and
will progress towards the expert class. Novices may move into the
expert class by winning two races in the novice class. This
automatically moves them up to the expert class.
Being an expert in one division does not make you an expert in the
other division.
The novice races will always be run first. Those that advance to
expert class will also be qualified for the expert races. (They will
be treated the same as any other expert entry.)
I will try to keep the expert race crowded. I will try to put eight or
more cars in the expert race. Whenever there are less than eight expert
competitors then the winning novice robots may be raced along
with the experts. They will not lose their novice status unless they
place among the leaders according to the above table.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STANDINGS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Points will be awarded as follows for each race:
1st - 10 2nd - 6 3rd - 4 4th - 3 5th - 2 6th - 1
This point system will be used both for deciding the winners of one
race meet with multiple races, and also for accumulating over a
period of many months. When there are multiple races the winning places
will be based on the point total for all races. When the race meet
consists of only one race the points will be added to the robot
author's accumulating score. For multiple races, another set of
points will be awarded to the best six robots of the day, and these
will be accumulated for the longer term. Hence, for each race meet,
someone will add 10 points to his long term total, someone will add 6
points, and so on.
If there are sixteen or less entries, then all will compete in all
races. If there are more than sixteen, then each robot will be run
by itself for seven laps to establish its average speed. The sixteen
robots with the highest average speed will compete. If the race meet
is to use more than one track, then each track will have its own set of
timings.
If there are any questions, suggestions or comments, please contact
Ralph Scott c/o rsc...@alpha.netusa.net