Der Arduino Würfel aus einem vorherigen Beitrag lässt sich besonders gut mit und für Kinder bauen. Am meisten Begeisterung gibt es aber, wenn der Würfel Spezialfunktion bekommt…
Bei einer Runde Mensch-Ärgere-Dich-Nicht ist nichts schöner als zu gewinnen oder zumindest viele 6-er zu haben und alle Spielfiguren aufs Spielfeld zu bringen.
Mit einem normalen Würfel braucht man dafür ziemlich viel Glück. Mit diesen Versionen des Arduino-Programms können Kinder dem Glück nachhelfen.
Variante 1
Hat man den Würfel für sich alleine, könnte man einfach die Wahrscheinlichkeit erhöhen und eine 6 häufiger vorkommen lassen.
Das geht im Quellcode mit einer zusätzlichen Bedingung.
zufall=zufall%6; //Ergebnis ist Zahl von 0..5 if zufall<>5 {zufall=millis()%6;} //nochmal würfeln, wenn keine 6!
Das fällt aber schnell auf und es könnte ja sein, dass alle Spieler mit dem elektronischen Würfel würfeln. Wer will schon, dass auch andere öfters eine 6 haben.
Variante 2
Besser ist eine unauffälligere Variante: Während des Würfeln (=Taste gedrückt) wird die Haltezeit der Taste gemessen. Liegt diese zwischen 3 und 4 Sekunden wird der Wurf eine 6.
void loop() { //Variablen vereinbaren
int i,j,zufall;
unsigned long spezial;
ZeigeZahl(7); //Alle LED's einschalten
delay(1000); // Pause in Millisekunden
...
...
// Ab hier wird gewürfelt, in Endlosschleife bis zum Ausschalten
do {
//Startzustand setzen
zufall=0;
i=0;
spezial=millis();
do {
zufall=zufall+1; //Zufallszahl hochzählen
i=i+1;
if (i>=lauflichtmax) {i=0;} //Wenn i lauflichtmax ist, dann wieder auf 0 setzen, so ist i immer 0..6
delay(lauflichtpause[i]); //Pause in Millisekunden
ZeigeZahl(0);
digitalWrite(PinErsteLED+lauflicht[i]-1,HIGH);
} while (digitalRead(PinTaster)==LOW); //Wiederholen bis Taster losgelassen wird
zufall=zufall%6; //Ergebnis ist Zahl von 0..5
spezial=millis()-spezial;
if ((spezial>3000) and (spezial<4000)) {
zufall=5; //6 gewürfelt!
}
ZeigeZahl(zufall+1); //Würfelergebnis anzeigen
while (digitalRead(PinTaster)==HIGH); //Warten bis nächste Taste gedrückt wird
} while (1==1); //Undendlich Wiederholen
}
Variante 3
Das ist schon ganz gut, könnte aber mit der Zeit auffallen. Unauffälliger klappt es, wenn nur die Wahrscheinlichkeit für eine 6 im Intervall von 2..3 Sekunden erhöht wird.
Das sieht so aus:
void loop() { //Variablen vereinbaren
int i,j,zufall;
unsigned long spezial;
ZeigeZahl(7); //Alle LED's einschalten
delay(1000); // Pause in Millisekunden
...
...
// Ab hier wird gewürfelt, in Endlosschleife bis zum Ausschalten
do {
//Startzustand setzen
zufall=0;
i=0;
spezial=millis();
do {
zufall=zufall+1; //Zufallszahl hochzählen
i=i+1;
if (i>=lauflichtmax) {i=0;} //Wenn i lauflichtmax ist, dann wieder auf 0 setzen, so ist i immer 0..6
delay(lauflichtpause[i]); //Pause in Millisekunden
ZeigeZahl(0);
digitalWrite(PinErsteLED+lauflicht[i]-1,HIGH);
} while (digitalRead(PinTaster)==LOW); //Wiederholen bis Taster losgelassen wird
zufall=zufall%6; //Ergebnis ist Zahl von 0..5
spezial=millis()-spezial;
if ((spezial>2000) and (spezial<3000)) {
if (zufall!=5) {zufall=millis()%6;} //nochmal würfeln, wenn keine 6!
}
ZeigeZahl(zufall+1); //Würfelergebnis anzeigen
while (digitalRead(PinTaster)==HIGH); //Warten bis nächste Taste gedrückt wird
} while (1==1); //Undendlich Wiederholen
}
Gepimpte Würfelanimation
Cooler machen ist auch ziemlich in. Dafür eignet sich am besten die Würfelanimation. Mit dieser Änderung können ganz einfach noch mehr Effekte eingestellt werden.
// Festlegen der Würfelbilder: Reihenfolge
// 1 2
// 3 7 4
// 5 6
int wuerfelBild[8][7]=
{{0,0,0,0,0,0,0}, //0 = alle LED's aus
{0,0,0,0,0,0,1}, //1
{0,1,0,0,1,0,0}, //2
{1,0,0,0,0,1,1}, //3
{1,1,0,0,1,1,0}, //4
{1,1,0,0,1,1,1}, //5
{1,1,1,1,1,1,0}, //6
{1,1,1,1,1,1,1}}; //7 = alle LED's an
int lauflichtmax=6;
int lauflicht[6]= { 1, 7, 6, 2, 7, 5}; // Reihenfolge der LED's
int lauflichtpause[6]={ 60,100,180,180,100, 60}; // Dauer in ms
Oder ein Knight-Rider-Effekt:
int lauflichtmax=6;
int lauflicht[6]= { 3, 7, 4, 4, 7, 3}; // Reihenfolge der LED's
int lauflichtpause[6]={100,180,100,100,180,100}; // Dauer in ms
Viel Spaß beim unaufälligen Schummeln und Pimpen.
Download
Alle Varianten finden Sie im Ordner Würfel in meiner Dropbox.