Race dates
12/03 Australian GP (Melbourne)
albrtprk.trk alternate
26/03 Brazilian GP (Sao Paulo)
brazil.trk
random
09/04 San Marino GP (Imola)
imola.trk
alternate
23/04 Great Britain GP (Silverstone)
silver97.trk random
07/05 Spanish GP (Barcelona)
barcelon.trk alternate
21/05 European GP (Nurburgring)
nurnburg.trk random
04/06 Monaco GP (Monaco)
moncao.trk
alternate
18/06 Canadian GP (Montreal)
montreal.trk random
02/07 French GP (Magny-Cours)
magnycrs.trk alternate
16/07 Austrian GP (Spielberg)
austria.trk (*) random
30/07 German GP (Hockenheim)
hock.trk
alternate
13/08 Hungarian GP (Budapest)
hungary.trk (*) random
27/08 Belgium GP (Spa Francorchamps)
spa.trk
alternate
10/09 Italian GP (Monza)
monza-76.trk random
24/09 United States GP (Indianapolis)
(**)
alternate
08/10 Japanese GP (Suzuka)
suzuka.trk
random
22/10 Malaysian GP (Sepang)
sepang.trk
alternate
(*) Real track layout is probably different from the RARS track.
(**) Track layout unknown.
F1 tracks:
At least 300 miles, no practise, 2 qualification laps.
Random and alternate tracks:
At least 150 miles, no practise, no qualification.
Random tracks
-------------
They will be generated by a modified version of Jorge Cervantes'
random
track generator. I have made it a bit more ANSI C compatible and
reduced
the allowed overlap. I will put up a copy if requested.
Extra track
------------
They will be chosen randomly at the day of the race from the following
tracks:
adelaide.trk, brands.trk, buenos.trk, cstlcomb.trk, doningtn.trk,
estoril.trk, indy500.trk, jerez.trk, loudon.trk, michigan.trk,
mlwaukee.trk, mosport.trk, nazareth.trk, oval2.trk, phoenix.trk,
pocono.trk, ra.trk, speed2.trk, tremblnt.trk, watglen.trk, zandvort.trk,
dreiw.trk, wierd.trk, elev2.trk, fourmile.trk, trouble.trk, midohio.trk,
s1.trk, s2.trk, kevin.trk
Regulations
-----------
Entries will be received by e-mail, directed to
GianCarlo.Pascutto@advalvas.be
The entries are of course, robot driver functions. They must be
source
code, either ANSI C or C++ to be compiled with GNU C/C++ for Linux.
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).
Also watch out for any platform dependent assumption. Your robots
should run with version 0.74 of the RARS software available at
ftp.ijs.com or Maido Remm's homepage. Maximum TWO drivers
per person
are allowed.
Entries must be received by 8:00 GMT, the day of the race.
If the
net is slow, too bad, so send them as early as possible.
It is better if I receive them a week early, in case there are
any
problems with compilation, linking, or execution.
(I will inform you A.S.A.P.)
Any robots that cause run-time problems with any part of the software,
including the other robots, will be disqualified. Gian-Carlo's
judgement
will be final here. I may take a quick try to fix things or disable
the
offending code, but you're obviously better off making sure everything
works. 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 OS 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.
Your robot should be less than 200 000 bytes in size, and be reasonable
about its memory and cpu usage.
Your robot may not crash into or hit other drivers on purpose. If
you
submit 2 robots, team tactics are allowed.
To be able to check whether your submission meets these rules, it
should be human-readable (i.e. not obfuscated).
How/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.)
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.
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.
Points
------
Race points will be awarded as follows for each race:
1st - 10 2nd - 6 3rd - 4 4th - 3 5th - 2 6th - 1
This is used for both the F1 races and the extra tracks, so they
are
equally important now.
They will be accumulated after each race. (No decaying or so, just
simple addition) When a competitor submits multiple drivers, only
the best result for each race counts for the constructors' standings.
Additional comments
-------------------
All seasoned participants who wish to participate in the new season,
I recommend you resubmit your robot so I am sure I have the right
version.
With the addition of random tracks, more extra tracks, the removal
of
qualifications and making all races equally important I'm hoping
to
stress test the passing and path calculation a bit more than last
year.
The rules are still open for change, so contact me or the list if
you
think something should be changed, or if you want to make a comment.
Gian-Carlo Pascutto c/o GianCarlo.Pascutto@advalvas.be