Recent Changes - Search:

Home

Is the Laser up?

People

Publications

Calendar

Projects

Spring 2012

Older Courses

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007

HOWTOs

edit SideBar

Mind-ReadingMachine

Matt Fielding
December 10, 2009

Overview

Mind-Reading Machine is a game similar to the classic game of odds and evens. The computer makes a prediction, based on previous inputs, as to what your next choice will be out of two possible choices of 0 or 1. If the computer is correct it advances toward the goal, otherwise you stumped the computer and you advance.

Screenshot

Concepts Demonstrated

  • Recursion is used to access input pattern information.
  • In order to have variables and "arrays" of data that update with the game, I used mutability.
  • In order to make the code segments more manageable I used data abstraction mostly in the form of code modules.
  • To simulate a 3 dimensional array I used a list structure.

External Technology

In order to represent the data to the player in a pleasing way, I used the sgl library which opens up Scheme to the power of OpenGL rendering. I also used Jay McCarthy's gl2d library for some useful wrappers for 2 dimensional graphics. Due to the nature of the sgl library, it also required that I used PLT-Scheme's scheme/gui windowing library to create a window with an OpenGL enabled canvas.

Innovation

My project takes what is a simple algorithm to reproduce in a procedural language like C or an object-oriented language like C++ and envisions it under a new lens using Scheme's functional paradigms. Such things such as 3 dimensional arrays, state, and simply running through a program in the correct order to achieve the desired output are realized in vastly different ways than they would be in a language of a different kind.

Technology Used Block Diagram

Additional Remarks

This particular manifestation of this algorithm was originally developed by Claude E. Shannon. He verbally describes how one would go about creating a "mind-reading machine", and includes circuit wirings for a much more developed physical version of the game. I had to take those written down notes and transcribe them into Scheme code, and it was quite fun. His original write up can be found on page 688 of Bell Laboratories Memorandum from March 18, 1953. A copy can be provided via e-mail if you wish. I can be contacted at mfieldin |-at-| cs.uml.edu.

Edit - History - Print - Recent Changes - Search
Page last modified on December 10, 2009, at 07:45 AM