#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int led1=1; //Lampen
int led2=2;
int led3=3;
int led4=4;
int buzzer=7; //Lautsprecher
int button=5; //Schalter
int buttonstate=0; //Variabel, um Status des Schalters zu überprüfen
int c; //Variabel für Spiel KOPF ODER ZAHL
int a;
int b; //Variabeln für Zufallsgenerator
void setup(){
lcd.init();
lcd.backlight();
randomSeed(analogRead(A1)); //Zufallsgenerator
pinMode (led1,OUTPUT); //PinMode für LED
pinMode (led2,OUTPUT);
pinMode (led3,OUTPUT);
pinMode (led4,OUTPUT);
pinMode (buzzer,OUTPUT); //PinMode für Lautsprecher
pinMode (button, INPUT); //PinMode für Schalter
}
void loop(){ // --> Spieler drückt Schalter; Start des Spieles
lcd.setCursor(1,0);
lcd.print("Willkommen bei");
lcd.setCursor(2,1);
lcd.print("LUCKY BANDIT!");
tone (7,200);
delay (200); // Anfangstöne
tone (7,250);
delay (200);
tone (7,300);
delay(200);
noTone(7);
delay(300);
tone (7,300);
delay (300);
tone (7,250);
delay (200);
tone (7,200);
delay(200);
noTone(7);
delay (750);
digitalWrite (led1, HIGH); //Lampen gehen bei Beginn des Spieles an
delay (300);
digitalWrite (led2, HIGH);
delay (300);
digitalWrite (led3, HIGH);
delay(300);
digitalWrite (led4, HIGH);
delay (1500);
lcd.clear ();
lcd.setCursor(3,0);
lcd.print ("Gewinn bei");
lcd.setCursor(3,1);
lcd.print ("-->");
lcd.setCursor(8,1);
lcd.print ("6");
delay (1500);
digitalWrite (1, LOW);
delay (300);
digitalWrite (2, LOW);
delay (300);
digitalWrite (3, LOW);
delay (300);
digitalWrite (4, LOW);
delay (300);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Spiel beginnt");
delay (300);
lcd.setCursor(13,0);
lcd.print(".");
delay (300);
lcd.setCursor(14,0);
lcd.print(".");
delay (300);
lcd.setCursor(15,0);
lcd.print(".");
for (int l; l<3; l=l+1) {
digitalWrite(1, HIGH);
delay (250);
digitalWrite (1, LOW);
digitalWrite(2, HIGH);
delay (250);
digitalWrite (2, LOW);
digitalWrite (3,HIGH);
delay (250);
digitalWrite (3, LOW);
digitalWrite(4, HIGH);
delay (250);
digitalWrite (4, LOW);
delay (250);
digitalWrite (3, HIGH);
delay (250);
digitalWrite(3, LOW);
delay (250);
digitalWrite (2, HIGH);
delay (250);
digitalWrite (2,LOW);
delay (250);
digitalWrite (1, HIGH);
delay (250);
digitalWrite(1, LOW);
delay (250);
}
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Und ");
delay (300);
lcd.setCursor(3,0);
lcd.print(".");
delay (300);
lcd.setCursor(4,0);
lcd.print(".");
delay (300);
lcd.setCursor(5,0);
lcd.print(". ");
for (int l; l<4; l=l+1) {
digitalWrite(1, HIGH);
delay(150);
digitalWrite (1, LOW);
digitalWrite(2, HIGH);
delay(150);
digitalWrite (2, LOW);
digitalWrite (3,HIGH);
delay (150);
digitalWrite (3, LOW);
digitalWrite(4, HIGH);
delay (150);
digitalWrite (4, LOW);
delay (150);
digitalWrite (3, HIGH);
delay (150);
digitalWrite(3, LOW);
delay (150);
digitalWrite (2, HIGH);
delay (150);
digitalWrite (2,LOW);
delay (150);
digitalWrite (1, HIGH);
delay (150);
digitalWrite(1, LOW);
delay (150);
}
lcd.clear ();
a=random(1,8);
lcd.setCursor(3,0);
lcd.print ("-->");
lcd.setCursor(7,0);
lcd.print(a);
digitalWrite (1, HIGH);
digitalWrite (2, HIGH);
digitalWrite (3, HIGH);
digitalWrite (4, HIGH);
delay (150);
digitalWrite (1, LOW);
digitalWrite (2, LOW);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
if (a==6) { //Bei Gewinn --> Anzeige "GEWINN!", Lichtshow und Gewinnmusik
for (int g=0; g<3; g=g+1){
lcd.setCursor(3,1);
lcd.print ("GEWINN!");
delay (500);
tone (7,300);
delay (100);
tone (7,330);
delay (100);
tone (7,350);
delay(100);
tone (7,360);
delay (100);
tone (7,370);
delay (300);
noTone(7);
digitalWrite (led1, HIGH);
delay (100);
digitalWrite (led1, LOW);
digitalWrite (led2, HIGH);
delay (100);
digitalWrite (led2, LOW);
digitalWrite (led3, HIGH);
delay(100);
digitalWrite (led3, LOW);
digitalWrite (led4, HIGH);
delay (100);
digitalWrite (led4, LOW);
}
lcd.clear ();
lcd.setCursor(3,0);
lcd.print ("Sehr gut!");
lcd.setCursor(2,1);
lcd.print("Weiter so!");
tone (7,300);
delay (300);
tone (7,320);
delay (30);
tone (7,350);
delay (300);
tone (7,360);
delay (300);
noTone(7);
for (int j=0; j<3; j=j+1){
digitalWrite (led1, HIGH);
delay (100);
digitalWrite (led1, LOW);
digitalWrite (led2, HIGH);
delay (100);
digitalWrite (led2, LOW);
digitalWrite (led3, HIGH);
delay(100);
digitalWrite (led3, LOW);
digitalWrite (led4, HIGH);
delay (100);
digitalWrite (led4, LOW);
}
delay (1500);
lcd.clear ();
}
else { //Bei Nichtgewinn --> Anzeige "VERLOREN!", Lichtshow und Verlierermusik
for (int v=0; v<2; v=v+1) {
lcd.setCursor(3,1);
lcd.print ("VERLOREN!");
delay (500);
tone (7,100);
delay (100);
tone (7,80);
delay (100);
tone (7,70);
delay(100);
tone (7,60);
delay(100);
tone (7,50);
delay (100);
tone (7,40);
noTone(7);
digitalWrite (1, HIGH);
digitalWrite (2, HIGH);
digitalWrite (3, HIGH);
digitalWrite (4, HIGH);
delay (300);
digitalWrite (1, LOW);
digitalWrite (2, LOW);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
delay (300);
}
lcd.clear (); //--> Zweite Chance durch Spiel: KOPF ODER ZAHL
lcd.setCursor(0,0);
lcd.print("Zweite Chance?");
delay (2000);
lcd.clear ();
lcd.setCursor(3,0);
lcd.print("Waehle");
lcd.setCursor(0,1);
lcd.print("KOPF oder ZAHL");
delay (2000);
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Einmal druecken");
lcd.setCursor(3,1);
lcd.print("fuer Kopf");
delay (2000);
lcd.clear ();
lcd.print("Zweimal");
lcd.setCursor(3,1);
lcd.setCursor(2,0);
lcd.print("fuer Zahl");
lcd.clear ();
}
lcd.clear ();
lcd.setCursor(4,0);
lcd.print("Schade!");
lcd.setCursor(1,1);
lcd.print("Nicht aufgeben!");
tone (7,300);
delay (300);
tone (7,320);
delay (30);
tone (7,350);
delay (300);
tone (7,360);
delay (300);
noTone(7);
digitalWrite (led1, HIGH);
delay (300);
digitalWrite (led2, HIGH);
delay (300);
digitalWrite (led3, HIGH);
delay(300);
digitalWrite (led4, HIGH);
delay (300);
digitalWrite (1, LOW);
delay (300);
digitalWrite (2, LOW);
delay (300);
digitalWrite (3, LOW);
delay (300);
digitalWrite (4, LOW);
delay (300);
delay (3000);
lcd.clear ();
}