Pmindread:
Filter:
MindReadingMachine/Classes (extension) | Pattern

Pmindread
ExtensionExtension

A SuperCollider Pattern implementation of Claude Shannon's "Mind-Reading (?) Machine from 1953"

A pattern that uses a dynamically growing set of MindReadingMachines to map an input stream of values (interpreted as the player's moves) to an output stream of machine guesses. This makes it easy to reinterpret a zero sum game musically as a non zero sum call and response pattern.

Class Methods

.new

Return a new instance.

Arguments:

pattern

Input pattern, representing the player's moves. In the default case this should be values of zero and non-zero, ususally one.

machineIndex

If the pattern should be sent to several mind reading (?) machines, a stream of integer indices can be passed in to redirect the inputs. The machiens are created onthe fly.

behaviorSize

The size of the behavioral pattern which the machine looks for. A typical pattern is "The player loses, plays differently, and loses", which is size 3: [\loses, \differently, \loses]. Sizes must be 2n + 3. The maximum table size is 2^size, so default is 8.

strategyClass

By default a ShannonMindReadingStrategy, which can be subclassed to support other games. It implements two messages: differentValue (which returns the "opposite" value), and the comparison sameOrDifferent (which takes two guesses).

Instance Methods

.behaviorSize

Return the behaviorSize (see under *new)

.machineIndex

Return the machineIndex (see under *new)

.strategyClass

Return the strategyClass (see under *new)

.pattern

Get or set the input pattern (see under *new)

.verbose

If set to true, the machines will post information.

Examples