Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» display oled 168x64
Da fulvio Dom Feb 10, 2019 9:47 am

» Metro digitale con Arduino
Da Biciopit Gio Feb 07, 2019 11:54 am

» temperatura con lcd i2c e sensore dht 11
Da fulvio Mer Feb 06, 2019 5:33 pm

» display 16x2 con I2c
Da Admin Lun Feb 04, 2019 5:22 pm

» timeLib.h
Da fulvio calvarano Gio Gen 31, 2019 5:59 pm

» sketch non valido
Da fulvio calvarano Lun Gen 28, 2019 12:38 pm

» timeLib.h in orologio con ds3231
Da fulvio calvarano Ven Gen 25, 2019 11:48 pm

» Simulatore seconda guerra mondiale: Battaglia foresta di Hurtgen
Da Admin Ven Gen 25, 2019 11:54 am

» Recensione IP Cam Logitech Circle 2 (compatibile con Alexa)
Da Admin Ven Gen 25, 2019 11:51 am

I postatori più attivi del mese
fulvio
 
Admin
 
Biciopit
 

Gioco con Arduino: Sniper Words

Andare in basso

Gioco con Arduino: Sniper Words

Messaggio Da Admin il Sab Dic 12, 2015 6:13 pm


SNIPER Words è un gioco realizzato completamente con Arduino. Lo scopo principale del gioco è ricomporre una delle parole presenti all'interno della memoria. In pratica verrà mostrata questa parola per TOT secondi e successivamente il giocatore deve essere bravo a "centrare" le lettere giuste al momento giusto per ricomporre la parola.

Codice:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


 String parola[10] = { "ciao", "polpo", "pizza" , "gatto" , "gioco" , "prova" , "carta" , "dente" , "palla" , "testa"};
 char alfabetcasual[26];
 char lettera='a';
 char letteracasual;
 int t1,t2,tot=0,casual,casualalfabet,c=0;
 bool sbagliato,controlloa,ordinato,disordinato,controllofull;
 String attuale[5] = { "" , "" , "" , "" , ""};

 int pot=A0; //il potenziometro è posizionato nel pin analogico A0
 int vel=0; //contenitore che conterrà la velocità (difficoltà del livello)
 int tono=6;
void setup() {
  randomSeed(millis());
  lcd.begin(16, 2);
  pinMode(7,INPUT);
  pinMode(pot, INPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(13,INPUT);
  pinMode(tono,OUTPUT);
}

void loop() {
  for(int i=0;i<26;i++)
  {
  alfabetcasual[i]=('a'+i);   
  }
  lcd.clear();
  lcd.print("Click to start");
  do{
    delay(30);
    if(digitalRead(7)==1){
      ordinato=true;
      break;
    }
    if(digitalRead(13)==1){
      disordinato=true;
      break;
    }
  }while(true);
  lcd.clear();
  lcd.print("Tieni a mente: ");
  lcd.setCursor(0,1);
  if(c<9) c++;
  else c=0;
  lcd.print(parola[c]);
  delay(5000);
  lcd.clear();
  lcd.print("Ricomponila");
  lcd.setCursor(0,1);
  if(ordinato){
  do
  {
    vel = map(analogRead(A0), 0, 1023, 300, 2000);
    lcd.clear();
    lcd.print("Ricomponila :");
    lcd.setCursor(0,1);
    lcd.print(attuale[0]+attuale[1]+attuale[2]+attuale[3]+lettera);
    t1=millis();
   
    do{
    if(digitalRead(7)==1){
    if(lettera!=parola[c].charAt(tot)){
      sbagliato=true;
      delay(1000);
      break;
    }
    attuale[tot]=lettera;
    lettera='a';
    controlloa=true;
    tot++;
    delay(190);
    break;
    } 
    t2=millis();
    }while(t2-t1<vel);
    if(sbagliato) break;
    if(lettera=='z'){
      lettera='a';
      controlloa=true;
    }
    if(!controlloa) lettera++;
    controlloa=false;
  }while(tot<5);
  }
  else{
    do
  {
    do{
      casualalfabet=random(0,27); 
    }while(alfabetcasual[casualalfabet]=='1');
    letteracasual=alfabetcasual[casualalfabet];
    alfabetcasual[casualalfabet]='1';
    vel = map(analogRead(A0), 0, 1023, 300, 2000);
    lcd.clear();
    lcd.print("Ricomponila :");
    lcd.setCursor(0,1);
    lcd.print(attuale[0]+attuale[1]+attuale[2]+attuale[3]+letteracasual);
    t1=millis();
   
    do{
    if(digitalRead(13)==1){
    if(letteracasual!=parola[c].charAt(tot)){
      sbagliato=true;
      delay(1000);
      break;
    }
    attuale[tot]=letteracasual;
    for(int i=0;i<26;i++)
    {
      alfabetcasual[i]=('a'+i);   
    }
    tot++;
    delay(190);
    break;
    } 
    t2=millis();
    }while(t2-t1<vel);
    if(sbagliato) break;
    controllofull=true;
    for(int i=0;i<26;i++)
      {
        if(alfabetcasual[i]!='1') controllofull=false;   
      }
    if(controllofull){
    for(int i=0;i<26;i++)
      {
        alfabetcasual[i]=('a'+i);   
      }
    }
  }while(tot<5);
  }

  if(!sbagliato){
    lcd.clear();
    lcd.print("GIUSTO!!!");
    tone(tono, 750, 200);
    digitalWrite(9,HIGH);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,LOW);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,HIGH);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,LOW);
    delay(200);
    noTone(tono);
    digitalWrite(9,HIGH);
    delay(2200);
  }
  else {
    lcd.clear();
    lcd.print("RIPROVA!!!");
    tone(tono, 250, 1500);
    digitalWrite(8,HIGH);
    delay(1500);
    noTone(tono);
  }
  attuale[0]="";
  attuale[1]="";
  attuale[2]="";
  attuale[3]="";
  attuale[4]="";
  sbagliato=false;
  lettera='a';
  tot=0;
  digitalWrite(9,LOW);
  digitalWrite(8,LOW);
  ordinato=false;
  disordinato=false;
  }


Ultima modifica di Admin il Lun Gen 22, 2018 9:57 pm, modificato 1 volta
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4358
Crediti Crediti : 12140
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da FrankyFRD42 il Mar Gen 16, 2018 7:18 pm

scusate ma come si può avere il codice di questo progetto? Embarassed Embarassed
FrankyFRD42
FrankyFRD42
Sono un nuovo membro
Sono un nuovo membro

Messaggi Messaggi : 3
Crediti Crediti : 6
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 16.01.18
Età Età : 14
Località Località : san Cesario di Lecce

Visualizza il profilo

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da Admin il Mer Gen 17, 2018 4:25 pm

Ciao, il codice del progetto era in un PC formattato. Non so se magari lo trovi in qualche backup. 

Ricordami eventualmente se non riscrivo qui entro domani Wink

A presto Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4358
Crediti Crediti : 12140
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da FrankyFRD42 il Dom Gen 21, 2018 6:56 pm

@Admin ha scritto:Ciao, il codice del progetto era in un PC formattato. Non so se magari lo trovi in qualche backup. 

Ricordami eventualmente se non riscrivo qui entro domani Wink

A presto Ciao!

Sono passati un pò di giorni... Ti sei dimenticato? Question
FrankyFRD42
FrankyFRD42
Sono un nuovo membro
Sono un nuovo membro

Messaggi Messaggi : 3
Crediti Crediti : 6
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 16.01.18
Età Età : 14
Località Località : san Cesario di Lecce

Visualizza il profilo

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da Admin il Lun Gen 22, 2018 5:56 pm

Si  Rolling Eyes

Devo controllare di avere ancora il codice, sperando di aver fatto un backup del vecchio PC.

Ti farò sapere, eventualmente scrivimi un Messaggio Privato così mi arriva la notifica.

A presto Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4358
Crediti Crediti : 12140
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da Admin il Lun Gen 22, 2018 9:57 pm

Eccolo!
Codice:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


 String parola[10] = { "ciao", "polpo", "pizza" , "gatto" , "gioco" , "prova" , "carta" , "dente" , "palla" , "testa"};
 char alfabetcasual[26];
 char lettera='a';
 char letteracasual;
 int t1,t2,tot=0,casual,casualalfabet,c=0;
 bool sbagliato,controlloa,ordinato,disordinato,controllofull;
 String attuale[5] = { "" , "" , "" , "" , ""};

 int pot=A0; //il potenziometro è posizionato nel pin analogico A0
 int vel=0; //contenitore che conterrà la velocità (difficoltà del livello)
 int tono=6;
void setup() {
  randomSeed(millis());
  lcd.begin(16, 2);
  pinMode(7,INPUT);
  pinMode(pot, INPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(13,INPUT);
  pinMode(tono,OUTPUT);
}

void loop() {
  for(int i=0;i<26;i++)
  {
  alfabetcasual[i]=('a'+i);   
  }
  lcd.clear();
  lcd.print("Click to start");
  do{
    delay(30);
    if(digitalRead(7)==1){
      ordinato=true;
      break;
    }
    if(digitalRead(13)==1){
      disordinato=true;
      break;
    }
  }while(true);
  lcd.clear();
  lcd.print("Tieni a mente: ");
  lcd.setCursor(0,1);
  if(c<9) c++;
  else c=0;
  lcd.print(parola[c]);
  delay(5000);
  lcd.clear();
  lcd.print("Ricomponila");
  lcd.setCursor(0,1);
  if(ordinato){
  do
  {
    vel = map(analogRead(A0), 0, 1023, 300, 2000);
    lcd.clear();
    lcd.print("Ricomponila :");
    lcd.setCursor(0,1);
    lcd.print(attuale[0]+attuale[1]+attuale[2]+attuale[3]+lettera);
    t1=millis();
   
    do{
    if(digitalRead(7)==1){
    if(lettera!=parola[c].charAt(tot)){
      sbagliato=true;
      delay(1000);
      break;
    }
    attuale[tot]=lettera;
    lettera='a';
    controlloa=true;
    tot++;
    delay(190);
    break;
    } 
    t2=millis();
    }while(t2-t1<vel);
    if(sbagliato) break;
    if(lettera=='z'){
      lettera='a';
      controlloa=true;
    }
    if(!controlloa) lettera++;
    controlloa=false;
  }while(tot<5);
  }
  else{
    do
  {
    do{
      casualalfabet=random(0,27); 
    }while(alfabetcasual[casualalfabet]=='1');
    letteracasual=alfabetcasual[casualalfabet];
    alfabetcasual[casualalfabet]='1';
    vel = map(analogRead(A0), 0, 1023, 300, 2000);
    lcd.clear();
    lcd.print("Ricomponila :");
    lcd.setCursor(0,1);
    lcd.print(attuale[0]+attuale[1]+attuale[2]+attuale[3]+letteracasual);
    t1=millis();
   
    do{
    if(digitalRead(13)==1){
    if(letteracasual!=parola[c].charAt(tot)){
      sbagliato=true;
      delay(1000);
      break;
    }
    attuale[tot]=letteracasual;
    for(int i=0;i<26;i++)
    {
      alfabetcasual[i]=('a'+i);   
    }
    tot++;
    delay(190);
    break;
    } 
    t2=millis();
    }while(t2-t1<vel);
    if(sbagliato) break;
    controllofull=true;
    for(int i=0;i<26;i++)
      {
        if(alfabetcasual[i]!='1') controllofull=false;   
      }
    if(controllofull){
    for(int i=0;i<26;i++)
      {
        alfabetcasual[i]=('a'+i);   
      }
    }
  }while(tot<5);
  }

  if(!sbagliato){
    lcd.clear();
    lcd.print("GIUSTO!!!");
    tone(tono, 750, 200);
    digitalWrite(9,HIGH);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,LOW);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,HIGH);
    delay(200);
    noTone(tono);
    tone(tono, 750, 200);
    digitalWrite(9,LOW);
    delay(200);
    noTone(tono);
    digitalWrite(9,HIGH);
    delay(2200);
  }
  else {
    lcd.clear();
    lcd.print("RIPROVA!!!");
    tone(tono, 250, 1500);
    digitalWrite(8,HIGH);
    delay(1500);
    noTone(tono);
  }
  attuale[0]="";
  attuale[1]="";
  attuale[2]="";
  attuale[3]="";
  attuale[4]="";
  sbagliato=false;
  lettera='a';
  tot=0;
  digitalWrite(9,LOW);
  digitalWrite(8,LOW);
  ordinato=false;
  disordinato=false;
  }
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4358
Crediti Crediti : 12140
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da FrankyFRD42 il Mer Gen 24, 2018 7:43 pm

grazie Very Happy
FrankyFRD42
FrankyFRD42
Sono un nuovo membro
Sono un nuovo membro

Messaggi Messaggi : 3
Crediti Crediti : 6
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 16.01.18
Età Età : 14
Località Località : san Cesario di Lecce

Visualizza il profilo

Torna in alto Andare in basso

Re: Gioco con Arduino: Sniper Words

Messaggio Da Admin il Gio Gen 25, 2018 9:12 am

Prego Wink
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4358
Crediti Crediti : 12140
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum