WINNING STRATEGY IN PROGRAMMING GAME ROBOCODE CSC 303
WINNING STRATEGY IN PROGRAMMING GAME ROBOCODE CSC 303 Casmon Gordon Advisor- Dr Xiang Fu
Introduction Robode: Programming Game. * Robots Controls in Java. * Public API for Programmers (Players). Many robots included with game. Walls robot was the most successful.
Walls Robot • The Walls robot movement predictable.
The Problem The Walls robot moves very fast.
Objective Design Walls. Killer robot. Defeats Walls robot effectively. Goals? Win every battle! Hit ratio above 90%. Energy level above 80.
Targeting Strategy Where will Walls be? . Wallskiller needs smart shooting algorithm.
Bullet Avoidance • • The Walls. Killer robot : • Avoids getting hit by the Walls robot’s bullets. • Detects that Walls has opened fire. Moves away!
Robot Anotomy
Cosine Rule Cosine Rule: c = a 2 + b 2 – 2 ab*cos(A) 2
Quadratic Equations Quadratic formula:
Relationship Between Tanks Positions
Relationship Between Angles Alpha and Beta
Finding Beta Sum of angles equals 180 degrees. Solve for beta: Hence (180 -Angle 1)+(Angle 2 + Angle 3)+180 beta=180 beta = 180 -Angle 1+ Angle 2 + Angle 3 Therefore beta = 180 - Scanned. Robot. Event. get. Heading() + Advanced. Robot. get. Heading() + Scanned. Robot. Event. get. Bearing()
Finding the Time Substituting and solving we get: (v 1*t)2 = d 2 + (v 2*t)2 – 2(d*v 2*t)*cos(beta) d 2 + (v 2*t)2 – 2(d*v 2)*cos(beta) *t - (v 1*t)2 = 0 (v 22 - v 12)t 2 – 2*d*v 2*cos(beta) *t + d 2 = 0 This equation is quadratic form. Apply cosine rule!
Finding Alpha Determine the value for alpha. Use cosine rule. Substitute three edges of the triangle : (v 2*t)2 = d 2 + (v 1*t)2 – 2(d*v 1*t)cos(alpha)
Finding Alpha Simplifying and solving for alpha we get: Therefore:
Fire Angle Calculation Direct fire angle: fire. Angle = (Advanced. Robot. get. Heading() + Scanned. Robot. Event. get. Bearing()) - Advanced. Robot. get. Gun. Heading();
Fire Angle Calculation Direct fire will miss! Offset angle alpha added to fire angle: fire. Angle = (Advanced. Robot. get. Heading() + Scanned. Robot. Event. get. Bearing() + alpha) - Advanced. Robot. get. Gun. Heading();
Shooting Performace for Ranges
Machine Learning The Walls. Killer robot: Collects battle data. Perform runtime data analysis. Determines optimal range!
Machine Learning Details Manipulates Data via text file. File size limitations. Data analysis
Frequency of Data for Ranges
Check If Bullet Will Miss
Conclusion The Walls. Killer robot is very effective! Sometimes misses at longer ranges. Learns and adapts. Achieved its goals!
- Slides: 24