#include <Adafruit_NeoPixel.h> // Einbinden der NeoPixel Bibliothek
int anzahl = 48; //Variable anzahl für die anzahl an LED´s
Adafruit_NeoPixel strip(anzahl, 13, NEO_GRB + NEO_KHZ800); //Grundeinstellung NeoPixel LED´s
//1.wert: Anzahl an LED´s , 2.Wert: PIN Nummer, 3.Wert: Art von LED
long rot = strip.Color(200, 0, 0); long gruen = strip.Color(0, 200, 0); long farbe = 0; // Variablen für die RGB werte
byte zw1 = 0; int zw2 = 0; // werden in "Ausgabe Spielfeld" benutzt
byte zw3 = 0; // wird in Absenken der Spielsteine benutzt
byte zw4 = 0; // Variable für das Startfeld beim Testen
byte zw5 = 0; // Zählwert innere Schleife, testet 4 Felder
byte zw6 = 0; // Zählwert mittler Schleife, testet eine Spalte
byte zw7 = 0; // Zählwert außer Schleife, testet alle Spalten
byte zw8 = 0; // Variable für die Gefallenen Steine
byte zw9 = 0; // Variable für die Ausgabe Siegerfarbe
byte zw10 = 0; //Löschen von Anzeige und Spielfeld
byte zw11 = 0; //Blinken Siegersteine
long farbe_1 = 0; long farbe_2 = 0; // Variable für die Siegerfarbe
byte position_1 = 0; byte position_2 = 0; byte position_3 = 0; byte position_4 = 0; //Variable für die Position der Gewinnersteine
// 0 -> nicht belegt; 1 -> rot; 2 -> grün
byte spielfeld [48] = {
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};//Array mit dem Spielfeld
byte rechts =4; byte links = 2; byte runter = 3; // Nummer der benoetigten Ports für Taster
byte richtung = 0 ; // 1 -> rechts; 2 -> links; 3 -> runter
byte status_start = 1; //Variable für einstellung der Farbe für den begin des Spiels: 1 -> rot; 2 -> grün
byte status_spiel = 1 ; //Variable für Wechsel der Spielerfarbe während des Spiels: 1 -> rot; 2 -> grün
byte position_0 = 0; // Zeiger für Spielfeld
byte test_rot = 0; byte test_gruen = 0; byte sieger = 0; // Benoetigt zum Ermitteln des Siegers
void setup() { // Begin des "void setup()"
Serial.begin(9600); // Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein
strip.begin(); // Initialisierung von den Pixels
strip.show(); //Neopixel initialissierung anschalten der LED´s // Initialisierung aller Pixels auf 'aus'
pinMode(rechts, INPUT); digitalWrite (rechts, HIGH); //Variable "rechts" wird als "INPUT" festgelegt und auf "HIGH" gesetzt
pinMode(links, INPUT); digitalWrite (links, HIGH); //Variable "links" wird als "INPUT" festgelegt und auf "HIGH" gesetz
pinMode(runter, INPUT); digitalWrite (runter, HIGH); //Variable "runter" wird als "INPUT" festgelegt und auf "HIGH" gesetz
ausgabe_spielfeld (); // Aufruf der Funktion "ausgabe_spielfeld()"
}//Ende des "void setup()"
void loop() { //Begin des "void loop()"
// Abfrage Tastatur und Sprung in entsprechende Funktion
do { //Begin der do-while-Schleife
if (digitalRead(rechts) == LOW && digitalRead(links) == LOW) { // Abfrage ob "rechts" und "links" beide auf "LOW" sind
zw8 = 40; //Variable "zw8" bekommt den Zahlenwert 56
test_spielende (); //Aufruf der Funktion "test_spielende()"
}; //Ende der if-abfrage
if ( digitalRead(rechts) == LOW) { // Abfrage ob "rechts" "LOW" ist
richtung = 1; rechts_0 (); //Variable "richtung" wir auf "1" gesetzt & Funktion "rechts_0()" wird aufgerufen
} //Ende der if-abfrage
if ( digitalRead(links) == LOW) { // Abfrage ob "links" "LOW" ist
richtung = 2; links_0 (); //Variable "richtung" wir auf "2" gesetzt & Funktion "links_0()" wird aufgerufen
} //Ende der if-abfrage
if ( digitalRead(runter) == LOW) { // Abfrage ob "runter" "LOW" ist
if (spielfeld [position_0 + 8] == 0) { // Abfrage ob im Array an der position von dem wert der Variable "position_0" mit 8 addiert eine "0" ist
richtung = 3; //Variable richtung wird auf 3 gesetzt
runter_0 (); zw8 ++; // Funktion "runter_0()" aufrufen & Variable "zw8" wird hochgezählt / Anzahl Durchläufe + 1
test_spielende (); //Funktion "test_spielende()" wird aufgerufen
}; //Ende der if-abfrage
} //Ende der if-abfrage
} //Ende des "do" teils
while ( richtung == 0); //While Teil der do-while-Schleife, solange die Variable "richtung" genau "0" ist fürt es das do aus
richtung = 0; // Löschen der Richtung //Variable "richtung" wird auf "0" gesetzt
ausgabe_spielfeld (); //Funktion "ausgabe_spielfeld()" wird aufgerufen
delay(300); //Pause von 300ms
} //Ende des "void loop()"
// ------------- Test ob es einen Sieger gibt ------------------
// ---------- Funktion wird nach Absenken eines Steines aufgerufen
void test_spielende () { //Begin Funktion "test_spielende()"
// ----------- Test diagonal oben ------------
// ----------3 verschaltelte Zyklen ----------
zw4 = 32; // Startfeld beim Testen // Variable "zw4" wird auf "32" gesetzt
sieger = 0; zw7 = 0; //Variable "sieger" & "zw7" werden auf "0" gesetzt
do { //Begin der do-while-Schleife
zw6 = 0; //Variable "zw6" wird auf "0" gesetzt
do { //Begin der do-while-Schleife in der do-while-Schleife
zw5 = 0; // Zählschleife //Variable "zw5" wird auf "0" gesetzt
test_rot = 0; test_gruen = 0; //Variablen "test_rot" & "test_gruen" werden auf "0" gesetzt
// Testen 4 Zellen diegonal oben
do { //Begin der do-while-Schleife in der do-while-Schleife von der do-while-Schleife
if ( spielfeld [zw4] == 1) { //Begin if-abfrage ob im Array "spielfeld" an der position von dem wert der Variable "zw4" genau eine "1" anliegt
test_rot ++; //Variable "test_rot" wird hochgezählt
}; //Ende der if-abfrage
if ( spielfeld [zw4] == 2) { //Begin if-abfrage ob im Array "spielfeld" an der position von dem wert der Variable "zw4" genau eine "2" anliegt
test_gruen ++; //Variable "test_gruen" wird hochgezählt
}; //Ende der if-abfrage
// Merken der Position beim Sieg
if (sieger == 0) { //Begin if-abfrage ob die Variable "sieger" genau "0" ist
if (zw5 == 0) { //Begin if-abfrage ob die Variable "zw5" genau "0" ist
position_1 = zw4; //Variable "position_1" bekommt den wert der in der Variable "zw4" gespeichert ist
}; //Ende der if-abfrage
if (zw5 == 1) { //Begin if-abfrage ob die Variable "zw5" genau "1" ist
position_2 = zw4; //Variable "position_2" bekommt den wert der in der Variable "zw4" gespeichert ist
}; //Ende der if-abfrage
if (zw5 == 2) { //Begin if-abfrage ob die Variable "zw5" genau "2" ist
position_3 = zw4; //Variable "position_3" bekommt den wert der in der Variable "zw4" gespeichert ist
}; //Ende der if-abfrage
if (zw5 == 3) { //Begin Begin if-abfrage ob die Variable "zw5" genau "3" ist
position_4 = zw4; //Variable "position_4" bekommt den wert der in der Variable "zw4" gespeichert ist
}; //Ende der if-abfrage
}; //Ende der if-abfrage
zw4 = zw4 - 7; zw5++; //Variable "zw4" wird subtrahiert um "-7", Variable "zw5" wird hochgezählt
} //Ende des do-Teils der do-while-Schleife
while (zw5 != 4); //while-teil führt solange aus solange die Variable "zw5" nicht genau "4" entspricht
if (test_rot == 4) { //Begin Begin if-abfrage ob die Variable "test_rot" genau "4" entspricht
sieger = 1; //Variable "sieger" wird auf "1" gesetzt
} else { //Begin else-abfrage
test_rot = 0; //Variable "test-rot" wird auf "0" gesetzt
}; //Ende der else-abfrage
if (test_gruen == 4) { //Begin if-abfrage ob die Variable "test_gruen" genau "4" entspricht
sieger = 2; //Variable "sieger" wird auf "2" gesetzt
} else { //Begin else-abfrage
test_gruen = 0; //Variable "test_gruen" wird auf "0" gesetzt
}; //Ende der else-abfrage
zw4 = zw4 + 36; zw6++; //Variable "zw4" wird addiert mit "+ 36"; Variable "zw6" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob die Variable "sieger" nicht genau "0" entspricht
zw6 = 4; //Variable "zw6" wird auf "4" gesetzt
}; //Ende der if-abfrage
} //Ende des do-Teils
while ( zw6 != 4); //While-teil solange die Variable "zw6" nicht genau dem wert "4" entspricht wird das do ausgeführt
zw4 = zw4 - 31; zw7++; //Variable "zw4" wird subtrahiert mit "-31"; Variable "zw7" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob die Variable "sieger" nicht genau "0" entspricht
zw7 = 5; //Variable "zw7" wird auf "5" gesetzt
}; //Ende der if-abfrage
}//Ende des do-Teils der do-while-Schleife
while (zw7 != 5); //While-Teil solange die Variable "zw7" nicht genau "5" entspricht
// ----------- Test diagonal unten -----------
// ----------3 verschachtelte Zyklen ----------
zw4 = 8; // Startfeld beim Testen //Variable "zw8" wird auf "8" gesetzt
zw7 = 0; //Variable "zw7" wird auf "0" gesetzt
do { //Begin der do-while-Schleife
zw6 = 0; //Variable "zw6" wird auf "0" gesetzt
do { //Begin der do-while-Schleife
zw5 = 0; //zaehlschleife //Variable "zw5" wird auf "0" gesetzt
test_rot = 0; test_gruen = 0; //Varaiblen "test_rot" & "test_gruen" werden auf "0" gesetzt
// Testen 4 Zellen diagonal unten
do { //Begin der do-while-Schleife
if ( spielfeld [zw4] == 1) { //Begin if-abfrage ob im Array "spielfeld" an position "zw4" genau 1 ist
test_rot ++; //Variable "test_rot" wird hochgezählt
}; //Ende der if-abfrage
if ( spielfeld [zw4] == 2) { //Begin if-abfrage ob im Array "spielfeld" an position "zw4" genau 2 ist
test_gruen ++; //Variable "test_gruen" wird hochgezählt
}; //Ende der if-abfrage
// Merken der Position beim Sieg
if (sieger == 0) { //Begin if-abfrage ob Variable "sieger" genau "0" ist
if (zw5 == 0) { //Begin if-abfrage ob Variable "zw5" genau "0" ist
position_1 = zw4; //Variable "position_1" wird auf den wert von Variable "zw4" gesetzt
}; //Ende der if-abfrage
if (zw5 == 1) { //Begin if-abfrage ob Variable "zw5" genau "1" ist
position_2 = zw4; //Variable "position_2" wird auf den wert von Variable "zw4" gesetzt
}; //Ende der if-abfrage
if (zw5 == 2) { //Begin if-abfrage ob Variable "zw5" genau "2" ist
position_3 = zw4; //Variable "position_3" wird auf den wert von Variable "zw4" gesetzt
}; //Ende der if-abfrage
if (zw5 == 3) { //Begin if-abfrage ob Variable "zw5" genau "3" ist
position_4 = zw4; //Variable "position_4" wird auf den wert von Variable "zw4" gesetzt
}; //Ende der if-abfrage
}; //Ende der if-abfrage
zw4 = zw4 + 9; zw5++; //Variable "zw4" wird addiert mit "+9"; //Variable "zw5" wird hochgezählt
} //Ende des do-teils
while (zw5 != 4); //while-teil solange Variable "zw5" nicht genau "4" ist
if (test_rot == 4) { //Begin if-abfrage ob Variable "test_rot" genau "4" ist
sieger = 1; //Variable "sieger" wird auf "1" gesetzt
} else { //Ende if-abfrage //Begin else-abfrage
test_rot = 0; //Variable "test_rot" wird auf "0" gesetzt
}; //Ende else-abfrage
if (test_gruen == 4) { //Begin if-abfrage ob Variable "test_gruen" genau "4" ist
sieger = 2; //Variable "sieger" wird auf "2" gesetzt
} else { //Ende if-abfrage //Begin else-abfrage
test_gruen = 0; //Variable "test_gruen" wird auf "0" gesetzt
}; //Ende if-abfrage
zw4 = zw4 - 28; zw6++; //Variable "zw4" wird subbrathiert mit "-28"; //Variable "zw6" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" genau "4" ist
zw6 = 4; //Variable "zw6" wird auf "4" gesetzt
}; //Ende if-abfrage
} //Ende des do-teils
while ( zw6 != 4); //while-teil solange Variable "zw6" nicht genau "4" ist
zw4 = zw4 - 31; zw7++; //Variable "zw4" wird subbrathiert mit "-31"; //Variable "zw7" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" nicht genau "0" ist
zw7 = 5; //Variable "zw7" wird auf "5" gesetzt
}; //Ende if-abfrage
} //Ende do-teil
while (zw7 != 5); //while-teil solange Variable "zw7" nicht genau "5" ist
// ------------ Test senkrecht ---------------
// ----------3 verschaltelte Zyklen ----------
zw4 = 8; //Variable "zw4" wird auf "8" gesetzt // Startfeld beim Testen
zw7 = 0; //Variable "zw7" wird auf "0"
do { //Begin do-while-Schleife
zw6 = 0; //Variable "zw6" wird auf "0"
do { //Begin do-while-Schleife
zw5 = 0; //Variable "zw5" wird auf "0" gesetzt //zaelschleife
test_rot = 0; test_gruen = 0; //Variablen "test_rot" & "test_gruen"wird auf "0" gesetzt
// Testen 4 Zellen senkrecht
do { //Begin do-while-Schleife
if ( spielfeld [zw4] == 1) { //Begin if-abfrage ob im Array "spielfeld" ander position "zw4" eine "1" anliegt
test_rot ++; //Variable "test_rot" wird hochgezählt
}; //Ende if-abfrage
if ( spielfeld [zw4] == 2) { //Begin if-abfrage ob im Array "spielfeld" ander position "zw4" eine "2" anliegt
test_gruen ++; //Variable "test_gruen" wird hochgezählt
}; //Ende if-abfrage
// Merken der Position beim Sieg
if (sieger == 0) { //Begin if-abfrage
if (zw5 == 0) { //Begin if-abfrage ob Variable "zw5" genau "0" ist
position_1 = zw4; //Variable "position_1" wird auf den wert von der Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 1) { //Begin if-abfrage ob Variable "zw5" genau "1" ist
position_2 = zw4; //Variable "position_2" wird auf den wert von der Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 2) { //Begin if-abfrage ob Variable "zw5" genau "2" ist
position_3 = zw4; //Variable "position_3" wird auf den wert von der Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 3) { //Begin if-abfrage ob Variable "zw5" genau "3" ist
position_4 = zw4; //Variable "position_4" wird auf den wert von der Variable "zw4" gesetzt
}; //Ende if-abfrage
}; //Ende if-abfrage
zw4 = zw4 + 8; zw5++; //Variable "zw4" wird addiert mit "+8" // Variable "zw5" wird hochgezählt
} //Ende do-teil
while (zw5 != 4); //While-teil solange Variable "zw5" nicht genau "4" ist
if (test_rot == 4) { //Begin if-abfrage ob Variable "test_rot" genau "4" ist
sieger = 1; //Variable "sieger" wird auf "1" gesetzt
} else { //Ende if-abfrage //Begin else
test_rot = 0; //Variable "test_rot" wird auf 0 gesetzt
}; //Ende else
if (test_gruen == 4) { //Begin if-abfrage ob Variable "test_gruen" genau "4" ist
sieger = 2; //Variable "sieger" wird auf "2" gesetzt
} else { //Ende if-abfrage //Begin else
test_gruen = 0; //Variable "test_gruen" wird auf "0" gesetzt
}; //Ende else
zw4 = zw4 - 24; zw6++; //Variable "zw4" wird Subthrahiert mit "-24" // Variable "zw6" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" nicht genau "0" ist
zw6 = 4; //Variable "zw6" wird auf "4" gesetzt
}; //Ende if-abfrage
} //Ende do-teil
while ( zw6 != 4); //While-teil solange Variable "zw6" nicht genau "4" ist
zw4 = zw4 - 31; zw7++; //Variable "zw4" wird Subtrahiert mit "-31" //Variable "zw7" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" nicht genau "0" ist
zw7 = 8; //Variable "zw7" wird auf "8" gesetzt
}; //Ende if-abfrage
} //Ende do-teil
while (zw7 != 8); //While-teil solange Variable "zw7" nicht genau "8" ist
// ------------- Test waagerecht --------------
// ----------3 verschachtelte Zyklen ----------
zw4 = 8; //Variable "zw4" wird auf "8" gesetzt // Startfeld beim Testen
zw7 = 0; //Variable "zw7" wird auf "0" gesetzt
do { //Begin do-while-Schleife
zw6 = 0; //Variable "zw6" wird auf "0" gesetzt
do { //Begin do-while-Schleife
zw5 = 0; //Variable "zw5" wird auf "0" gesetzt
test_rot = 0; test_gruen = 0; //Variablen "test_rot" & "test_gruen" werden auf "0" gesetzt
// Testen 4 Zellen waagerecht
do { //Begin do-while-Schleife
if ( spielfeld [zw4] == 1) { //Begin if-abfrage ob im Array "spielfeld" an position "zw4" genau "1" ist
test_rot ++; //Variable "test_rot" wird hochgezählt
}; //Ende if-abfrage
if ( spielfeld [zw4] == 2) { //Begin if-abfrage ob im Array "spielfeld" an position "zw4" genau "2" ist
test_gruen ++; //Variable "test_gruen" wird hochgezählt
}; //Ende if-abfrage
// Merken der Position beim Sieg
if (sieger == 0) { //Begin if-abfrage ob Variable "sieger" genau "0" ist
if (zw5 == 0) { //Begin if-abfrage ob Variable "zw5" genau "0" ist
position_1 = zw4; //Variable "position_1" wird auf den wert von Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 1) { //Begin if-abfrage ob Variable "zw5" genau "1" ist
position_2 = zw4; //Variable "position_2" wird auf den wert von Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 2) { //Begin if-abfrage ob Variable "zw5" genau "2" ist
position_3 = zw4; //Variable "position_3" wird auf den wert von Variable "zw4" gesetzt
}; //Ende if-abfrage
if (zw5 == 3) { //Begin if-abfrage ob Variable "zw5" genau "3" ist
position_4 = zw4; //Variable "position_4" wird auf den wert von Variable "zw4" gesetzt
}; //Ende if-abfrage
}; //Ende if-abfrage
zw4++; zw5++; //Variablen "zw4" & "zw5" werden hochgezählt
} //Ende do-teil
while (zw5 != 4); //While-teil solange Variable "zw5" nicht genau "4" ist
if (test_rot == 4) { //Begin if-abfrage ob Variable "test_rot" genau "4" ist
sieger = 1; //Variable "sieger" wird auf "1" gesetzt
} else { //Ende if-abfrage & begin else-abfrage
test_rot = 0; //Variable "test_rot" wird auf "0" gesetzt
}; //Ende else-abfrage
if (test_gruen == 4) { //Begin if-abfrage ob Variable "test_gruen" genau "4" ist
sieger = 2; //Variable "sieger" wird auf "2" gesetzt
} else { //Ende if-abfrage & begin else-abfrage
test_gruen = 0; //Variable "test_gruen" wird auf "0" gestzt
}; //Ende else-abfrage
zw4 = zw4 + 4; zw6++; //Variable "zw4" wird addiert mit "+4" //Variable "zw6" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" nicht genau "0" ist
zw6 = 7; //Variable "zw6" wird auf "7" gesetzt
}; //Ende if-abfrage
} //Ende do-teil
while ( zw6 != 7); //While-teil solange Variable "zw6" nicht genau "7" ist
zw4 = zw4 - 55; zw7++; //Variable "zw4" wird subthrahiert mit "-55" //Variable "zw7" wird hochgezählt
if (sieger != 0) { //Begin if-abfrage ob Variable "sieger" nicht genau "0" ist
zw7 = 5; //Variable "zw7" wird auf "5" gesetzt
}; //Ende if-abfrage
} //Ende do-teil
while (zw7 != 5); //While-teil solange Variable "zw7" nicht genau "5" ist
// Festlegen Siegerfarben
if (sieger == 1) { //Begin if-abfrage ob Variable "sieger" genau "1" ist
farbe_1 = rot; //Variable "farbe_1" wird auf Variable "rot" gesetzt
farbe_2 = rot; //Variable "farbe_2" wird auf Variable "rot" gesetzt
ende (); //Funktion "ende()" wird aufgerufen // Ausgabe Siegerfarbe Rot
}; //Ende if-abfrage
if (sieger == 2) { //Begin if-abfrage ob Variable "sieger" genau "2" ist
farbe_1 = gruen; //Variable "farbe_1" wird auf Variable "gruen" gesetzt
farbe_2 = gruen; //Variable "farbe_2" wird auf Variable "gruen" gesetzt
ende (); //Funktion "ende()" wird aufgerufen // Ausgabe Siegerfarbe Gruen
}; //Ende if-abfrage
if (zw8 == 56 ) { //Begin if-abfrage ob Variable "zw8" genau "56" ist
farbe_1 = gruen; //Variable "farbe_1" wird auf Variable "gruen" gesetzt
farbe_2 = rot; //Variable "farbe_2" wird auf Variable "rot" gesetzt
ende (); //Funktion "ende()" wird aufgerufen // Ausgabe Unentschieden
}; //Ende if-abfrage
position_1 = 0; position_2 = 0; position_3 = 0; position_4 = 0; //Variablen "postition_1", "postition_2", "postition_3" & "postition_4" werden auf "0" gesetzt
test_rot = 0; test_gruen = 0; //Variablen "test_rot" & "test_gruen" werden auf "0" gesetzt
} //Ende Funktion "test_spielende()"
// ---------- Ausgabe Siegerfarbe ----------
void ende () { //Begin der Funktion "ende()"
zw11 = 0; //Variable "zw11" wird auf "0" gesetzt
if (zw8 != 40 ) { //Begin if-abfrage ob Variable "zw8" nicht genau "56" ist
do { //Begin do-while-Schleife
strip.setPixelColor ( position_1, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_1" mit dem RGB wert "0,0,0"
strip.setPixelColor ( position_2, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_2" mit dem RGB wert "0,0,0"
strip.setPixelColor ( position_3, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_3" mit dem RGB wert "0,0,0"
strip.setPixelColor ( position_4, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_4" mit dem RGB wert "0,0,0"
strip.show(); //Neopixel initialissierung anschalten der LED´s
delay(200); //Pause von "200ms"
strip.setPixelColor ( position_1, farbe_1); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_1" mit dem RGB wert von der Variable "farbe_1"
strip.setPixelColor ( position_2, farbe_1); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_2" mit dem RGB wert von der Variable "farbe_1"
strip.setPixelColor ( position_3, farbe_1); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_3" mit dem RGB wert von der Variable "farbe_1"
strip.setPixelColor ( position_4, farbe_1); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "position_4" mit dem RGB wert von der Variable "farbe_1"
strip.show(); //Neopixel initialissierung anschalten der LED´s
delay(200); //Pause von "200ms"
zw11++; //Variable "zw11" wird hochgezählt
} //Ende do-teil
while ( zw11 != 5); //While-teil solange Variable "zw11" nicht genau "5" ist
} //Ende if-abfrage
zw9 = 0; //Variable "zw9" wird auf "0" gesetzt
do { //Begin do-while-Schleife
strip.setPixelColor ( zw9, farbe_1); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw9" mit dem RGB wert von der Variable "farbe_1"
zw9++; //Variable "zw9" wird hochgezählt
strip.setPixelColor ( zw9, farbe_2); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw9" mit dem RGB wert von der Variable "farbe_2"
zw9++; //Variable "zw9" wird hochgezählt
} //Ende do-teil
while (zw9 != 48); //While-teil solange Variable "zw9" nicht genau "64" ist
strip.show(); //Neopixel initialissierung anschalten der LED´s
delay(2000); //Pause von "2000ms"
// ---------- Vorbereitung neuer Start -----------
zw10 = 0; //Variable "zw10" wird auf "0" gesetzt
do { //Begin do-while-Schleife
strip.setPixelColor ( zw10, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw10" mit dem RGB wert "0,0,0"
spielfeld [zw10] = 0; //Im Array "spielfeld" ander postion vom wert der Variable "zw10" wird eine "0" gesetzt
zw10++; //Variable "zw10" wird hochgezählt
} //Ende do-teil
while ( zw10 != 48); //While-teil solange Variable "zw10" nicht genau "64" ist
strip.show(); //Neopixel initialissierung anschalten der LED´s
spielfeld [0] = 1; //Im Array "spielfeld" ander postion "0" wird eine "1" gesetzt
ausgabe_spielfeld (); //Funktion "ausgabe_spielfeld()" wird aufgerufen
zw1 = 0; zw2 = 0; zw3 = 0; zw4 = 0; zw5 = 0; zw6 = 0; zw7 = 0; zw8 = 0; zw9 = 0; zw10 = 0; //Variablen "zw1-10" werden auf "0" gesetzt
position_1 = 0; position_2 = 0; position_3 = 0; position_4 = 0; //Variablen "position_1-4" werden auf "0" gesetzt
position_0 = 0; //Variable "position_0" wird auf "0" aufgesetzt
// Wechsel Start-Spielfarbe
farbe_1 = 0; farbe_2 = 0; sieger = 0; //Variable "farbe_1", "farbe_2" & "sieger" werden auf "0" gesetzt
if (status_start == 1) { //Begin if-abfrage ob die Variable "status_start" genau "1" ist
farbe = gruen; //Variable "farbe" wird auf den wert der Variable "gruen" gesetzt
status_spiel = 2; status_start = 2; //Variablen "status_spiel" & "status_start" werden auf "2" gesetzt
spielfeld [0] = 2; //Im Array "spielfeld" ander position "0" wird eine "2" gesetzt
} else { //Ende if-abfrage und begin else-abfrage
farbe = rot; //Variable "farbe" wird auf den wert der Variable "rot" gesetzt
spielfeld [0] = 1; //Im Array "spielfeld" ander position "0" wird eine "1" gesetzt
status_spiel = 1; status_start = 1; //Variablen "status_spiel" & "status_start" werden auf "1" gesetzt
}; //Ende else-abfrage
ausgabe_spielfeld (); //Funktion "ausgabe_spielfeld()" wird aufgerufen
} //Ende der Funktion "ende()"
// ---------- Ein Schritt nach Links ----------
void links_0 () { //Begin der Funktion "links_0()"
if (position_0 != 0) { //Begin if-abfrage ob Variable "position_0" nicht genau "0" ist
spielfeld [position_0] = 0; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird eine "0" gesetzt
position_0--; //Variable "position_0" wird runtergezählt
spielfeld [ position_0 ] = status_spiel; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird der wert der Variable "status_spiel" gesetzt
}; //Ende if-abfrage
} //Ende Funktion "links_0"
// ---------- Ein Schritt nach Rechts ----------
void rechts_0 () { //Begin der Funktion "rechts_0()"
if (position_0 != 7) { //Begin if-abfrage ob Variable "position_0" nicht genau "7" ist
spielfeld [position_0] = 0; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird eine "0" gesetzt
position_0++; //Variable "position_0" wird hochgezählt
spielfeld [ position_0 ] = status_spiel; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird der wert der Variable "status_spiel" gesetzt
}; //Ende if-abfrage
} //Ende Funktion "rechts_0"
// ---------- Absenken des Spielsteines ----------
void runter_0 () { //Begin der Funktion "runter_0()"
zw3 = 0; //Variable "zw3" wird auf "0" gesetzt
do { //Begin do-while-Schleife
if (spielfeld [position_0 + 8] == 0 ) { //Begin if-abfrage ob im Array "spielfeld" an der position von dem wert der Variable "position_0" der addiert wirt mit "+8" genau eine "0" ist
spielfeld [position_0] = 0; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird eine 0 gesetzt
position_0 = position_0 + 8; //Variable "position_0" wird addiert mit "+8"
spielfeld [position_0] = status_spiel; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird der wert von der Variable "status_spiel" gesetzt
zw3++; //Variable "zw3" wird hochgezählt
ausgabe_spielfeld (); //Funktion "ausgabe_spielfeld()" wird aufgerufen
delay(200); //Pause von "200ms"
} else { //Ende if-abfrage und begin else-abfrage
zw3 = 7; //Variable "zw3" wird auf "7" gesetzt
} //Ende else-abfrage
} //Ende do-teil
while (zw3 != 7) ; //While-teil solange die Variable "zw3" nicht genau "7" ist
richtung = 0; position_0 = 0; //Variablen "richtung" & "position_0" wird auf "0" gesetzt
if (status_spiel == 1 ) { //Begin if-abfrage ob Variable "status_spiel" genau "1" ist
status_spiel = 2; //Variable "status_spiel" wird auf "2" gesetzt
spielfeld [position_0] = 2; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird der wert "2" gesetzt
} else { //Ende if-abfrage und begin else-abfrage
status_spiel = 1; //Variable "status_spiel" wird auf "1" gesetzt
spielfeld [position_0] = 1; //Im Array "spielfeld" an der position von dem wert der Variable "position_0" wird der wert "1" gesetzt
}; //Ende else-abfrage
ausgabe_spielfeld (); //Funktion "ausgabe_spielfeld()" wird aufgerufen
} //Ende Funktion "runter_0"
// ---------- Ausgabe Spielfeld ----------
void ausgabe_spielfeld () { //Begin der Funktion "ausgabe_spielfeld()"
zw1 = 0; //Variable "zw1" wird "0" gesetzt
do { //Begin do-while-Schleife
zw2 = spielfeld [zw1]; //Variable "zw2" wird auf den wert im Array "spielfeld" an der position vom wert der Variable "zw1" gesetzt
if (zw2 == 0) { //Begin if-abfrage ob Variable "zw2" genau "0" ist
strip.setPixelColor ( zw1, 0, 0, 0); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw1" mit dem RGB wert "0,0,0"
}; //Ende if-abfrage
if (zw2 == 1) { //Begin if-abfrage ob Variable "zw2" genau "1" ist
strip.setPixelColor ( zw1, rot); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw1" mit dem RGB wert von der Variable "rot"
}; //Ende if-abfrage
if (zw2 == 2) { //Begin if-abfrage ob Variable "zw2" genau "2" ist
strip.setPixelColor ( zw1, gruen); //Ansteurung von der Neopixel-LED an der position von dem wert der Variable "zw1" mit dem RGB wert von der Variable "gruen"
}; //Ende if-abfrage
zw1++; //Variable "zw1" wird hochgezählt
} //Ende do-teil
while (zw1 != 48); //While-teil solange Variable "zw1" nicht genau "64" ist
strip.show(); //Neopixel initialissierung anschalten der LED´s
} //Ende der Funktion "ausgabe_spielfeld()"