ICPC World Finals: Day 3

Modulo 3. Damn.

Today was our first of two competitions. We competed in the IBM Java Challenge, which is, on one level, a PR stunt for IBM to promote their open source development platform, Eclipse. On another level though, it was a really fun competition where we essentially had to design an AI player for a game. The game was called “Code Invaders” though it bore no resemblance to Space Invaders. The basic premise is that 6 teams are put in a 1000×1000 unit piece of 2D space. You have a homeworld, a “SpaceShip” and 3 “drones.” The world contains Energy (in radioactive-iconed cans). Your ships have two weapons: bullets & “pulse” (a radially-expanding impulse that takes out 25% of an affected target’s energy). Your computer player has to use the drones & spaceship to score points, by either damaging enemies or collecting energy which you then beam to your homeworld. The competition was a lot of fun to work on, and was pretty cool because once you create your AI player in code, it is animated in realtime in a simulator, where you can visually see what your and your opponents’ ships are doing.

After we submitted all of our AI players before lunch, the judges checked to be sure they were within the rules, and then at supper, we had a live tournament to determine the champion. Regrettably, our player did not do very well. The reason? We were only allowing it to beam energy back to the home world once per every three turns. i.e.,
if (World.getCurrentTurn() % 3 == 0) { SpaceShip.beamEnergy(); }
We realized our error literally seconds after they announced the end of the competition. That was a bit disappointing, especially because we then tested the code again in the simulator, and found that it scored about twice as many points. Bummer. But it was a lot of fun anyway, and we are thinking about doing something similar at Madison next year, just because it was so cool. (The game wasn’t over-the-top exciting in and of itself, but competing in it was.)

The rest of the day was pretty tame. We got the problem for the Java Challenge at breakfast, and got an hour and a half to think about it before coding began. After the Challenge, we went to the IMAX theater and saw a short movie from 1987 about the Alamo. Somewhat interesting, but rather old… I had no idea they even had IMAX back then. For supper, as I mentioned earlier, they ran the Java Challenge contest live, and projected it on huge screens in this heritage museum nearby. It was pretty cool to watch, even though we did poorly.

After supper it was back to the CyberCafe for some more chess & wifi. I believe I forgot to mention that I lost last night to Ray, who plays amazingly, especially considering he just learned what pieces move what ways like two days ago. Tonight, Matt and I played on the big board, and despite me embarassing myself in front of the crowd watching by giving away my queen after no more than a dozen moves, I managed to checkmate him with a pair of rooks. I guess being in Bergman’s chess club freshman and part of sophomore year of high school did pay off. I even got to use the practice we once did on how to checkmate with only a rook and a king versus an opponent who has only his king, when Ray & Brian’s game came down to that.

I think that’s all the excitement we had today, other than playing games with the human sign posts. On the way back from the heritage museum, we decided to take a wrong turn in front of them to see if they would notice. They did, in fact, though they took it in good fun that we knew we were going the wrong way. Very good times.

Well, that’s it for tonight, as tomorrow is the big day. The competition begins bright and early at 8am, so I have to get up at 6:15. Boo. Wish us luck, and watch for live contest rankings at http://icpc.baylor.edu somewhere (they said there would be a link, but I don’t see it up as of yet… you might need to go to the World Finals page first, I’m not sure.) Look for Team UW-Madison Amphisbaena, and cheer us on!

G’night y’all.

p.s. We’ve gotten lots of IBM swag, including a mini retractable USB B -> USB A cord that fits my camera, but unfortunately it doesn’t seem to work between my camera and my mac, so you’ll have to wait on pictures until I get home. I forgot the cable. Sorry; I know you wanted to see geeks in sombreros.