Polly Learns the Basics of Human Interaction

I started out thinking about how Pollys could interact with sound. The idea of using a 'Charlie Brown adult voice' came to mind, in particular, using sounds that mimic the tone and emotion of speech without any actual content. So lead me to a basic system of giving Pollys basic moods and related actions.

Moods

  • happy
  • sad
  • angry
  • playful
  • serious
  • mean
  • shy

Actions

  • smiles
  • cries
  • yells
  • jokes
  • scold
  • teases
  • avoids

The different moods affect how a Polly is likely to start an interaction, for example, a Polly in a playful mood would be more likely to joke than cry. The mood also affects how a Polly reponds to an interaction. An angry Polly would likely yell in response to being teased, while a shy Polly would avoid the teasing Polly.

Also, the interaction affects the mood of the Pollys involved in the interaction. If a Polly is teased, then that Polly becomes more shy or perhaps more angry, depending on which is at a higher level at the time. If a Polly is playful, and another Polly jokes with it, then they both become more playful.

Basic Rules

Actions Affecting Moods

How a mood affects a Polly's action:

happy
  • causes smiles
sad
  • causes cries
angry
  • causes yells
playful
  • causes jokes
serious
  • causes scolds
mean
  • causes teases
shy
  • causes avoids

How an action affects the moods of other Pollys:

smiles
  • increases happy
  • decreases shy
cries
  • increases serious
  • decreases mean
yells
  • increases angry
  • decreases happy
jokes
  • increases playful, happy
  • decreases angry, sad
scolds
  • increases serious, angry
  • decreases playful,mean
teases
  • increases mean, sad
  • decreases happy
avoids
  • increases shy
  • decreases playful

Learning

This system would probably be too difficult for the youngest children since they wouldn't really understand the more complex cause and effect relationships represented here. But I think it could serve well as an intermediate level on the path to learning Java, especially if it coincided with the child learning about these relationships in the real world.

Example Stories

Holly is feeling playful and happy. Sally is feeling mean and sad. Holly's happy and playful responses raise Sally's happy-ness so she stops teasing and starts joking with Holly.
      // holly init 
      holly.isfeeling("playful");
      holly.isfeeling("happy");
      
      // sally init
      sally.isfeeling("mean");
      sally.isfeeling("sad");
      
      // interaction
      holly.smiles("sally");  // increases sally's happy; decreases sally's shy
      sally.teases("holly");  // increases holly's mean,sad; decreases holly's happy
      holly.jokes("sally");   // increases sally's playful,happy; decreases sally's angry,sad
      sally.smiles("holly");  // increases holly's happy; decreases holly's shy
      holly.jokes("sally");   // increases sally's playful,happy; decreases sally's angry,sad
      sally.jokes("holly");   // increases holly's playful,happy; decreases holly's angry,sad
      holly.smiles("sally");  // increases sally's happy; decreases sally's shy      
    

Holly and Sally are both feeling mean. Molly is feeling serious. Holly and Sally tease each other until Sally cries to Holly and Molly. Molly scolds both of them for teasing each other. Holly smiles at Sally.

      // holly init 
      holly.isfeeling("mean");
      holly.isfeeling("happy");
      
      // sally init
      sally.isfeeling("mean");
      sally.isfeeling("angry");
      
      // molly init
      molly.isfeeling("serious");
      
      // interaction
      holly.teases("sally");  // increases sally's mean,sad; decreases sally's happy
      sally.teases("holly");  // increases holly's mean,sad; decreases holly's happy
      holly.teases("sally");  // increases sally's mean,sad; decreases sally's happy
      sally.cries("holly","molly");   // increases serious; decreases mean
      molly.scolds("holly","molly");  // increases serious,angry; decreases playful,mean
      holly.smiles("sally");