salve questo è il codice di un piccolo gioco stile gameboy antico si tratta di prendere le O con una D che fa da secchio per farlo serve:
arduino (io uso il 2009)
display 16x4 oppure 16x2 (per il 16x2 dovete modificare la riga dove dice lcd.begin(16, 4) con lcd.begin(16, 2) )
2 pulsanti temporanei
2 resistenze da 10k omh
fili ovviamente
ecco un video
// mceTempObject
ed ecco il codice
#include
int n = 0; //altezza palla
int m = 2; //posizione orizzontale palla
int p = 1; //posizione orizzontale secchio
boolean game = true; //introduce una variabile booleana (vero/falso)
//true= gioco attivo, false= gioco disattivo
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //setta i pin del display
void setup() {pinMode(8, INPUT);
pinMode(9, INPUT);
lcd.begin(16, 4);}
//lcd.begin(16, 4) dichiara che il display è 16(colonne) per 4(righe)
void loop() {
digitalWrite(13, HIGH); // anodo retro illuminazione display
if (game == true) //gioco in stato ON
{lcd.setCursor(n, m);
lcd.print("O");
lcd.setCursor(15, p);
lcd.print("D");
delay(120);
lcd.clear(); //effettua il refresh dello schermo
n++; //incremento n. Per far scendere la palla
if(n==16) {if(m != p) {game= false;} //CONDIZIONE DI GAME OVER
n=0; m= random(4);}
if(digitalRead(9) == HIGH) {p++;} //sposta il secchio a sx
if(digitalRead(8) == HIGH) {p--;} //sposta il secchio a dx
if(p==-1) {p=0;} //limiti dello schermo
if(p==4) {p=3;}
}
if (game == false) //stato di gameover...
{lcd.setCursor( 3, 0);
lcd.print("HAI PERSO!");
lcd.setCursor(0, 2);
lcd.print("premi un tasto...");
if((digitalRead(8)==HIGH)||(digitalRead(9)==HIGH)) {game=true;}
}
}