The game is meant to be educational and fun, and it is--but that doesn't mean things don't get more advanced. Those who participate in Robocode tournaments often use advanced algorithms and techniques such as tracking their opponents moves. Yet at the same time, a beginning programmer can create a simple robot in a few minutes.
To get our Software Engineering class started with Robocode, Professor Johnson had us create a few basic Robots as sort of training methods or "katas" that would allow us to become familiar with the basic movements or actions that a robot can do. While I got a late start and only finished 8 of the basic 13 robots, I still think I might be able to get it together in time for our class Robocode tournament next week.
The robots I did not implement are Position05, Position06, Boom03, Boom04 and Follow03. I found that they were a bit harder than the other robots and because I got a late start I just didn't finish them. I still think I learned something about the robot behaviors such as how to move, locate other robots, and follow or shoot at them. However, I also thought some things were a bit hard to understand. I was surprised at how the gun, radar, and tank interacted. Also, the concept of "turns" during a battle is still a little confusing to me.
I think in creating a competitive robot I will definitely have to first attempt the rest of the basic robots. I think they would be a good foundation upon which to build more advanced robots. This is the first time I've ever heard of the term "kata", however I definitely think they are useful in software engineering. The way they require you to perfect a basic technique as a means to apply it to more advanced techniques is really helpful and directly applies to programming in a lot of ways.
With that in mind, I think my competitive robot design will be based on constant movement and trying to shoot where I think the other robot will be. Whether or not I have the ability to implement those designs is another story...
No comments:
Post a Comment