I wanted to pass along two basic way to make a "learning" robot that can be used with kids and adults. There are two examples, the first use VBA and Excel in a checkers game and the second is basic robotics.
A example from checkers -
For illustration purposes I will use VBA and Excel in a game of checkers since it is very common and lots of people know about all three of them.
Set up a library. For our example it will be housed inside a Excel workbook. For each move have the computer log in different columns one part of the square location and make the next move the next row down.
For example column A will house 1 and Column B will house 1 to represent that the top left square of the checker board is populated. Column C gets the number in it increased by one because it retains the number of moves that square has been populated.
Make as many columns as are needed for each checker on the board with a few extra empty columns in between red and black checkers. For each move increase the number representing populated squares by one.
For an additional challenge add a second set of info towards the bottom of your workbook so that the computer can forecast which squares are most likely to be used in the upcoming turns.
Make two libraries to hold info, not just one. That way info gets updated to one library while the other is in use. Then after a game, or just a few moves, flip them out. In short you are building two libraries at the same time.
Yes its more memory, however not all computer languages allow for updating of a library when the library is being used, so you can copy the new info into the old library and keep going without losing relevant information.
Sort your Excel workbooks by the number of moves a square is populated and the workbooks become a statistical engine that "learns" based on what the person does against the computer.
The first few times you play it will be simple and easy to beat since only the basic rules will be programmed. But the more you play and the more the libraries are updated the harder it will be to beat the computer.
A example from robotics -
Lets say you have a sonar sensor on the front of a robot and you have programmed it to use an EEPROM to record information every half second from all its sensors and motor commands. Every preset interval of time flip your libraries so the most current info is being used.
Instead of getting into complicated code let the EEPROM work for you and record if something is from the left, right, top, bottom or getting bigger (closer) or smaller (farther away). Include relevant factors like speed of the robot and use the EEPROM data to let the robot determine what to do.
In other words, the robot reads the library data from the EEPROM and makes decisions on which direction to move, slow down its speed, stop or go backwards to avoid or maneuver around what it detects.
The more the robot roams the more accurate its decisions will become.