Unfortuneately the source isn't avilable right now...because since its a Uni project I'm told that my uni owns to rights to the code until I graduate, but when that happens( about 4 months) I can release the code!
Honestly though its not majorly complicated once you see it, most of the work was non-programming related, things like lighting conditions/keeping the robot straight/a way of not hitting the wall etc.
As you can see a light sensor monitors the ground.
The idea is just based on 4 Behaviors, one for white paper, one for grey, one for black, and one to keep track of the game for when it plays against a human. The action of the Behaviors is just to keep the robot centred on the ball.( and slow down stop etc based on the coulour of the ground) Thats all there is too it really!
As a matter of interest did anyone have an issue trying to use more that 2 behaviors before? My robot shut down when a 3rd behavior was supposed to kick in and just ceased up! I fixed it by actually setting the suppress boolean manualy from within the takeControl() method, but I was tearing my hair out for a week wondering what was going on... perhaps a concurrency issue no? The suppress and action methods should of set the boolean themselves but it just didn't happen...
I'll try get a video of it playing aginst a human up soon, but it won't be for a few weeks, have to write up all my report for the final grading now...fun fun!