This is a REAL self - learning robot that learns how to play rock - paper - scissors! It will learn how to beat a person 100% of the time! A person is NOT needed to teach the robot how to play the game; it really does learn by itself!
This robot does not play rock-paper-scissors in the way people play. It first asks the user to input a move (either rock - paper - or scissors). The robot then calculates the best move to play, and then will extend a retractable arm that shows its next move (a Lego rock, paper, or a Lego scissors). The player must then tell the robot if the robot won, lost, or tied, against the player.
While you may think that this robot is cheating, since it waits for the player to make a move, I did not program the robot to know the rules of the game! The robot does not know that rock beats scissors, paper beats rock, or scissors beats paper! Instead, the robot relies on the player to tell whether it won/lost/tied to learn from past success/failures and to use this information in the future!
This robot was featured at Robogames 2011 for the Lego Open challenge (first place!). Moar pics and the source code will be attached!