Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcvax!inria!crcge1!geocub!anthes From: anthes@geocub.UUCP (Franklin Anthes) Newsgroups: comp.sys.apple Subject: Robot war tournament Message-ID: <156@geocub.UUCP> Date: Sun, 21-Jun-87 19:53:06 EDT Article-I.D.: geocub.156 Posted: Sun Jun 21 19:53:06 1987 Date-Received: Fri, 26-Jun-87 03:52:05 EDT Organization: Greco-Programmation, Bordeaux. France Lines: 197 Robot war Tournament There were about 10 people interested in holding a robot war tournament, so the "great event" will take place. I'm posting the rules, in case anybody missed this the first time around. ------------------------------------------------------------------------------- ROBOT WAR TOURNAMENT RULES -------------------------- All robots must be sent by the 10th of July in source code format. On the 15th of July, I will down load ( with KERMIT ) the robots who have arrived. All participants must be willing to allow the distribution of the source code to the other participants in the tournament. If there are any errors in the robots I receive, I can't guarantee that they will be corrected, so please be very careful if you are typing the source code in manually ( more on this later ). All robots I receive will automatically be considered as participants in the duel and melee categories unless they are explicitly signed up for the doubles tournament. The composition of the teams who are to participate in the doubles tournament should be explicitly stated. If you want your doubles robots to enter the duel and melee categories please say so. After each round of the tournament I'll send out the results to all the participants. At the end of the tournament I'll send out the final results and the source code for the robots to the participants. ------------------------------------------------------------------------------- The duel tournament ------------------- The idea is to have a round robin tournament between a group of robots. In each group there will be 6 robots, of which 3 will be qualified for the next round of the tournament. The number of robots in the tournament will be a multiple of 6, I will add robots I have in reserve to ensure this. The first round groups will be made up by distributing the robots from each participant randomly into a group where there isn't already a robot from the same participant (as long as possible). The groups for the second round on will be made up of two first-place finishers, two second place finishers, and two third place finishers (from different groups as far as possible). Within a group each robot will play a match against the 5 other robots in the group. A match will consist of 5 battles (10 from the semi-finals on). The winner of a battle is awarded 2 points, the loser 0 points. If there is a tie both robots are awarded 1 point. Among the 6 robots in the group the 3 who have the most points will be qualified for the next round. If there is a tie, between 2 or more robots, for 3rd place then a round robin will take place among the tied robots to determine which robots qualify for the next round. (I don't think this will happen, but one never knows...). The robots who are in the final group will be ranked according to their score in the final. The others will be ranked by how far they get in the tournament ( first round, second round, quarter-finals, etc. ) ------------------------------------------------------------------------------- The melee tournament -------------------- The number of robots in the melee tournament will be a multiple of five. As before I will add reserve robots to ensure this condition. The initial groups will be made up in the same manner as for the duel tournament. From the second round on the same 'seeding' principle will be used as in the duel tournament. Among the five robots in a group, the top 3 are sure to be qualified for the next round of the tournament. Wild-cards will be given to the robots who finished fourth with the best score, so that the number of robots qualified for the next round will be a multiple of five. For example if 55 robots participate (11 groups of five) then 33 will be automatically qualified for the second round and 2 wild-cards will be given to the robots who finished fourth with the best scores. So in the second round there would be 7 groups left. Up until the semi-finals 10 battles will take place in each group. In the semi-finals only the top 2 robots in each semi-final are qualified for the final. The robots with the 5th through 9th scores form a group which will battle it out for the last place left in the finals. The robot with the worst score of the semi-finals is eliminated. From the semi-finals on 20 battles will take place in each group. ( maybe more if I have the time ) The ranking will be done in the same manner as the duel tournament. ------------------------------------------------------------------------------- The doubles tournament ---------------------- Doubles consists of 2 teams of 2 robots, the team which has the last surviving robot wins the battle. In other respects the doubles tournament will be identical to the duel tournament. The only exception being the length of each match, which will be 3 battles. ------------------------------------------------------------------------------- The 'all-around' ranking ------------------------ This ranking will take into account the results of the duel and melee tournaments. The robots will be ranked by the sum of their rankings in the duel and melee tournaments. For example the robot who finished 3rd in duel and 8th in melee (3+8) would be ranked before the robot who finished 2nd in duel and 10th in melee (2+10). Robots having lost in the semi-finals in the duel tournament, will be considered as having finished 7th in that tournament. Robots having lost in the quarter-finals will be considered as having finished 8th etc. The same principle goes for the melee except that semi-finalists will be considered as having finished 6th, quarter-finalists 7th etc. ------------------------------------------------------------------------------- Recommendation: For those of you who are going to type in the robots by hand, I _strongly_ recommend that you type in this simple basic program, which will give you a checksum for each line of your program. Once you've typed in the program on your host run the C (or other equivalent) program and compare the checksums. If the checksums agree on all of the lines then you can be pretty sure that no typos. slipped in. 10 INPUT "ROBOTWAR FILENAME?";A$ 20 F$ = "S:" + A$ 30 FOR I = 768 TO 768 + 24 40 READ A 50 POKE I,A 60 NEXT 70 DATA 169,16,133,61,169,0,168,133,60,169,0,145,60,200,208,251,230,61 ,169,48,197,61,208,241,96 80 CALL 768: REM ROUTINE TO CLEAR MEMORY 90 PRINT CHR$ (4)"BLOAD ";F$;",A$1000" 100 I = 4096:CS = 0:NL = 0:A = PEEK (I):NC = 1 105 PRINT "LINE CHECKSUM" 107 REM CALCULATE SIMPLE CHECKSUM, IGNORING SPACES AND END OF LINE 108 REM CHARACTERS 110 IF A = 0 THEN GOTO 170 120 IF A = 221 THEN PRINT NL,CS:NL = NL + 1:CS = 0:NC = 1: GOTO 140 130 IF A < > 160 THEN CS = CS + (A - 128) * NC:NC = NC + 1 140 I = I + 1 150 A = PEEK (I) 160 GOTO 110 170 PRINT NL,CS ------------------------------------------------------------------------------- #include main() { unsigned long cs,nl,nc; int c; cs=nl=0; nc=1; printf("line checksum\n"); while( (c=getchar()) != EOF ) { switch(c) { case '\n': printf("%d %d\n",nl,cs); nl++; cs=0; nc=1; break; case ' ': case '\t': break; default: cs+=(c&0x7f)*nc++; break; } } printf("%d %d\n",nl,cs); } Newsgroups: comp.sys.apple -- Frank Anthes-Harper ( alias the Robotwar Phreak ) Usenet: ....!ucbvax!decvax!seismo!mcvax!inria!geocub!anthes Mail : Res.Formanoir T.9 Apt.1017 33600 Pessac France