int flipperLpin = 2;
int flipperRpin = 3;
int feesLpin = 4;
int feesBpin = 5;
int workPin = 6;
int startPin = 7;
int returnPin = 8;
int redlightPin = 9;
int greenlightPin = 10;
int mealPin = 11;
int mealTop = 12;
int mealMid = 13;
int mealBot = 14;
int left = LOW;
int right = LOW;
int little = LOW;
int big = LOW;
int work = LOW;
int start = LOW;
int returns = LOW;
int red = LOW;
int green = LOW;
int meal = LOW;
int mealCount = 3;
void setup() {
Â
 Serial.begin(9600);
Â
 pinMode (flipperLpin, INPUT);
 pinMode (flipperRpin, INPUT);
 pinMode (feesLpin, INPUT);
 pinMode (feesBpin, INPUT);
 pinMode (workPin, INPUT);
 pinMode (startPin, INPUT);
 pinMode (returnPin, INPUT);
 pinMode (redlightPin, OUTPUT);
 pinMode (greenlightPin, OUTPUT);
 pinMode (mealPin, INPUT);
 pinMode (mealTop, OUTPUT);
 pinMode (mealMid, OUTPUT);
 pinMode (mealBot, OUTPUT);
}
void loop() {
Â
 //start=digitalRead(startPin);
 //Serial.println(start);
Â
 left = digitalRead(flipperLpin);
 if(left == HIGH) {
  Serial.println("a");
  digitalWrite(redlightPin, HIGH);
  delay (10);
  digitalWrite(redlightPin, LOW);
 }
Â
 right = digitalRead(flipperRpin);
 if(right==1){
  Serial.println("b");
  digitalWrite(redlightPin, HIGH);
  delay (10);
  digitalWrite(redlightPin, LOW);
 }
Â
 little = digitalRead(feesLpin);
 if (little==1){
  Serial.println("c");
 Â
  digitalWrite(redlightPin,HIGH);
  delay(50);
  digitalWrite(redlightPin,LOW);
  delay(20);
  digitalWrite(redlightPin,HIGH);
  delay(40);
  digitalWrite(redlightPin,LOW);
 Â
 }
Â
 big = digitalRead(feesBpin);
 if (big==1){
  Serial.println("d");
  digitalWrite(redlightPin,HIGH);
  delay(50);
  digitalWrite(redlightPin,LOW);
  delay(40);
  digitalWrite(redlightPin,HIGH);
  delay(20);
  digitalWrite(redlightPin,LOW);
  delay(10);
  digitalWrite(redlightPin,HIGH);
  delay(20);
  digitalWrite(redlightPin,LOW);
 }
Â
 work = digitalRead(workPin);
 if (work==1){
  Serial.println("e");
  digitalWrite(greenlightPin, HIGH); //maybe make more elaborate, or Bw/oD...
  delay(70);
  digitalWrite(greenlightPin, LOW);
  delay (35);
  digitalWrite(greenlightPin, HIGH);
  delay(40);
  digitalWrite(greenlightPin, LOW);
  delay(25);
  digitalWrite(greenlightPin, HIGH);
  delay(20);
  digitalWrite(greenlightPin, LOW);
 }
Â
 start = digitalRead(startPin);
 if(start==1){
  Serial.println("f");
  mealCount = 3;
  digitalWrite(9, HIGH);
  delay(500);
  digitalWrite(10, HIGH);
  delay (200);
  digitalWrite(10,LOW);
  delay(150);
  digitalWrite(10,HIGH);
  delay(200);
  digitalWrite (10,LOW);
  delay(200);
  digitalWrite(9,LOW);
 }
Â
 returns = digitalRead(returnPin);
 if (returns==1){
   Serial.println("g");
   digitalWrite(redlightPin, HIGH);
   delay(100);
   digitalWrite(redlightPin, LOW);
   delay(30);
   digitalWrite(greenlightPin, HIGH);
   delay(10);
   digitalWrite(redlightPin, HIGH);
   delay(20);
   digitalWrite(redlightPin, LOW);
   delay(10);
   digitalWrite(greenlightPin, LOW);
 }
Â
Â
Â
 meal = digitalRead(mealPin);
 if(meal == 1){
   digitalWrite(mealTop, HIGH);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
   delay(200);
   digitalWrite(mealTop, LOW);
   delay (200);
   digitalWrite(mealMid, LOW);
   delay (200);
   digitalWrite (mealBot, LOW);
   delay (150);
   digitalWrite(mealTop, HIGH);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
   delay(150);
   digitalWrite(mealTop, LOW);
   delay (150);
   digitalWrite(mealMid, LOW);
   delay (150);
   digitalWrite (mealBot, LOW);
   mealCount = mealCount - 1;
 }
 //Serial.println(meal);
 // Serial.println(mealCount);
Â
 if (mealCount == 3){
   digitalWrite(mealTop, HIGH);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
 }
Â
 if (mealCount == 2){
   digitalWrite(mealTop, LOW);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
 }
Â
 if (mealCount == 1){
   digitalWrite(mealTop, LOW);
   digitalWrite(mealMid, LOW);
   digitalWrite(mealBot, HIGH);
 }
Â
 if (mealCount == 0){
   Serial.println ("h");
   digitalWrite(mealTop, HIGH);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
   digitalWrite(redlightPin, HIGH);
   delay(200);
   digitalWrite(mealTop, LOW);
   digitalWrite(redlightPin, LOW);
   delay (200);
   digitalWrite(mealMid, LOW);
   digitalWrite(redlightPin, HIGH);
   delay (200);
   digitalWrite (mealBot, LOW);
   digitalWrite(redlightPin, LOW);
   delay (150);
   digitalWrite(mealTop, HIGH);
   digitalWrite(mealMid, HIGH);
   digitalWrite(mealBot, HIGH);
   digitalWrite(redlightPin, HIGH);
   delay(150);
   digitalWrite(mealTop, LOW);
   digitalWrite(redlightPin, LOW);
   delay (150);
   digitalWrite(mealMid, LOW);
   digitalWrite(redlightPin, HIGH);
   delay (150);
   digitalWrite (mealBot, LOW);
   digitalWrite(redlightPin, LOW);
   mealCount = 3;
 }
  Â
Â
}
import processing.serial.*;
Serial myPort;
int lf = 10;
import ddf.minim.*; //for loadfile
Minim minim;
AudioPlayer player, aubell, auboo, aucash, auflip, aumeal, aulevel, auono, auwork, auww, auextra;
int score = 10000;
int debt = 0;
int ball = 0;
int meal = 3;
float mChange = .11;
float mVal = 0;
float endTime = 0;
float endPlus = 0;
int endYears = 0;
String scoreString;
String debtString;
String varstring; //for test//
String ballstring; //for test//
String endTimeString; //for test//
String endPlusString;
String debttString; //for endgame
String endYearsString;
int dex = 900;
int dexx = 1600;
int sex = 1;Â //for setting endTime uniquely
int bark = 1; //for stopping sound uniquely
char invar;
void setup() {
Â
 size(800,500);
Â
 println(Serial.list());
 myPort = new Serial(this, Serial.list()[0], 9600);
 myPort.bufferUntil(lf);
Â
 minim = new Minim(this);
 player = minim.loadFile("pixLow.mp3");
 aubell = minim.loadFile("bell.mp3");
 auboo = minim.loadFile("boo.mp3");
 aucash = minim.loadFile("cash.mp3");
 auflip = minim.loadFile("drill.mp3");
 aumeal = minim.loadFile("eat.mp3");
 aulevel = minim.loadFile("grad.mp3");
 auono = minim.loadFile("ono.mp3");
 auwork = minim. loadFile("plause.mp3");
 auww = minim.loadFile("aww.mp3");
 auextra = minim.loadFile("ascent.mp3");
Â
}
void stop(){
 minim.stop();
 super.stop();
}
void draw() {
 background(0,0,0);
 ballstring = str(ball); //for test
 textSize(20);
  fill(250,180,6);
  text(ballstring,5,20);
Â
 if(ball==0){
  Â
  Â
   textSize(169);
   fill(250,180,6);
   text("DEBT!", 160, 250);
   textSize(32);
   text("(the pinball machine)", 300, 300);
  Â
   endPlus = second();
   //if(endPlus%2 == 1){
     textSize(20);
     fill(180,140,0);
     text("Press Start", 330,360);
   //}
   textSize(14);
   text("Created by Jordan Sjol", 610,470);
  Â
   score = 10000; //reset the score, debt, & matriculation status
   debt = 0;
   mVal = 0;
   meal = 3;
   bark = 1;
  Â
   invar = myPort.readChar();
  Â
   switch(invar){
     case 'f':
     ball=ball+1;
    Â
     myPort.clear();
   }
 }
Â
  if((1<=ball && ball<=3)||(ball==4 && mVal>=450)){
   Â
    player.play();
Â
 textSize(35);
 fill(250,168,3);
 text("Balance", 300, 300);
Â
 textSize(24);
 text("Debt", 100, 300);
Â
 scoreString = str(score);
 text(scoreString, 300, 350);
Â
 debtString = str(debt);
 text(debtString, 100, 360);
Â
 textSize(39);
 text("Debt!", dex, 80);
 dex = dex - 3;
 if (dex<=-600){
   dex=900;
 }
Â
 textSize(32);
 text("(the pinball machine)", dex + 240, 80);
Â
 text("Debt!", dexx, 80);
 dexx = dexx - 3;
 if (dexx<=-600){
   dexx=900;
 }
Â
 textSize(32);
 text("(the pinball machine)", dexx + 240, 80);
Â
 textSize(18);
 text("Matriculation Timeline", 120, 450);
Â
 textSize(12);
 text("by Jordan Sjol", 710,20);
Â
Â
 rectMode(CORNER);
 fill(100,40,3);
 rect(100,460,600,20);
Â
 stroke(0);
 fill(255,190,8);
  rect(100,459,mVal,21);
 Â
 if(mVal<=600){
   mVal=mVal+mChange;
 }
Â
 if((mVal == 150)||(mVal == 300)){
   aulevel.play();
 }
Â
 noStroke();
 fill(220,108,3);
 rect(250,460,4,20);
 rect(400,460,4,20);
 rect(550,460,4,20);
Â
 if(mVal>=450){
   textSize(20);
   text("Extra Ball", 575, 450);
   auextra.play();
   //extra ball sound
 }
  Â
  if(mVal>=600){
    aubell.play();
    textSize(25);
    text("Graduation!", 555, 300);
  }
 Â
Â
Â
 invar = myPort.readChar();
Â
 // varstring = str(invar); //for test
 //text(varstring, 500, 100);
Â
 switch(invar){
   case 'a':
   score = score - 231;
   auflip.play();
   break;
   case 'b':
   score = score -232;
   auflip.play();
   break;
   case 'c':
   score = score - 1680;
   aucash.play();
   break;
   case 'd':
   score = score -5080;
   auono.play();
   break;
   case 'e':
   score = score +7861;
   auwork.play();
   break;
   /* case 'f':           Â
   ball = ball+1;
   break; */
   case 'g':
   ball=ball+1;
   auww.play();
   endTime=second();
   break;
   case 'h':
   meal = meal - 1;
   if((meal==2)||(meal==1)){
     aumeal.play();
   }
   if(meal == 0){
     score = score - 13436;
     auono.play();
     meal = 3;
   }
   break;
  Â
 }
Â
Â
 if(score<=0){
   score=score+10000;
   debt=debt+10099;
 }
Â
Â
 myPort.clear();
Â
  }
 Â
  if((ball==4 && mVal<450) || ball>=5){
   Â
    if(bark==1){
    minim.stop();
    bark = 3;
    }
   Â
    //stop audio
   Â
   Â
    background(0,0,0);
   Â
    if(sex == 1){
      endTime = second();
      sex=69;
    }
   Â
   Â
    endPlus = second();
   Â
    textSize(120);
    text("GAME OVER", 20, 170);
    //play "game over" audio
   Â
    if(endPlus-endTime >1){
      textSize(37);
Â
      if(mVal>=600){
        text("You Graduated", 150, 200);
      }
     Â
      if(mVal<600){
        text("You Dropped Out", 150, 200);
        auboo.play();
      }
    }
   Â
  Â
    if(endPlus-endTime > 3){
      textSize(42);
      text("Your Total Debt:", 15, 340);
    }
   Â
  Â
    if(endPlus-endTime > 4){
      debttString = str(debt-score);
      text(debttString, 370, 340);
    }
   Â
    /* endTimeString = str(endTime);
    endPlusString = str (endPlus);
    text(endTimeString, 500, 200);
    text(endPlusString, 500, 250); */
   Â
    if(endPlus-endTime > 5.5){
      text("MATCH", 15, 410);
    }
   Â
    if (endPlus-endTime > 6.0){
      endYears = (debt-score)/760;
      endYearsString = str(endYears);
      text(endYears, 195, 406);
      text("years",280,410);
     Â
    }
     Â
   if (endPlus-endTime > 7.0 /*&& endPlus%2 == 1*/){
     textSize(30);
     text("press start", 610, 470);
   }
    //final noise
   Â
    invar = myPort.readChar();
    switch(invar){
      case 'f':
      sex = 1;
      ball = 0;
    }
  Â
  }
Â
}