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;
}
}
}