// Bop It - Practice - by Hari Wiguna - March 2000
// Load this as program 1
// Use this program to learn the sounds associated with each button.
#define BOP_IT    SENSOR_1
#define PULL_IT   SENSOR_2
#define TWIST_IT  SENSOR_3

#define BOPPED   1
#define PULLED   0
#define TWISTED  49


#define __NOTETIME   5
#define __WAITTIME   3

void PlayBop()
{
  PlayTone(392,1*__NOTETIME); Wait(3*__WAITTIME);
  PlayTone(392,1*__NOTETIME); Wait(3*__WAITTIME);
  PlayTone(392,1*__NOTETIME); Wait(3*__WAITTIME);
}


sub PlayPull()
{
  PlayTone(622,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(587,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(554,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(523,1*__NOTETIME); Wait(1*__WAITTIME);
}


void PlayTwist()
{
  PlayTone(2*523,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(2*554,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(2*587,1*__NOTETIME); Wait(1*__WAITTIME);
  PlayTone(2*622,1*__NOTETIME); Wait(1*__WAITTIME);
}


task main()
{
  SetSensor(BOP_IT,SENSOR_TOUCH);
  SetSensor(TWIST_IT,SENSOR_LIGHT);
  SetSensor(PULL_IT,SENSOR_TOUCH);

  while (true)
  {
    if (BOP_IT == BOPPED)
    {
      PlayBop();
      until (BOP_IT != BOPPED);
    }
    
    if (TWIST_IT > TWISTED)
    {
      PlayTwist();
      until (TWIST_IT < TWISTED);
    }
    
    if (PULL_IT == PULLED)
    {
      PlayPull();
      until (PULL_IT != PULLED);
    }
    
  }
}