Skocz do zawartości

Dawiddk1

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Osiągnięcia użytkownika Dawiddk1

Aktywny debiutant

Aktywny debiutant (2/19)

  • To już rok!

Odznaki

0

Reputacja

  1. Już wszystko odkryłem! 🙂 Troche to zaplątałem w if ... Napewno można łatwiej ale ja nie wiem jak :/ //przypisane pinów #define led_czerwona1 9 #define led_czerwona2 10 #define led_czerwona3 11 #define led_zielona 8 #define przycisk 7 #define pin_odczyt A5 int adc = 0; // odczyt z potecjonometru String podana_liczba = ""; //liczba podana przez gracza int podana_liczba_int = 0; // przskalowanie na int ? byte proby = 3; //ilosc prob boolean od_nowa = true; void setup() { pinMode(przycisk, INPUT_PULLUP); pinMode(led_zielona, OUTPUT); pinMode(led_czerwona1, OUTPUT); pinMode(led_czerwona2, OUTPUT); pinMode(led_czerwona3, OUTPUT); Serial.begin(9600); } void loop() { if (od_nowa == true) //jesli rozpoczynamy gre od nowa { proby = 3; digitalWrite(led_zielona, LOW); //zgaszamy wszystkie diody digitalWrite(led_czerwona1, HIGH); digitalWrite(led_czerwona2, HIGH); digitalWrite(led_czerwona3, HIGH); while (!Serial)delay(10); //czekamy na otwarcie serial monitora Serial.println("pokreć potencjonometrem"); adc = analogRead(pin_odczyt); // szczytujemy wartosc z potecjonometru } while (Serial.available() == 0); //czekamy na podanie liczby podana_liczba = Serial.readStringUntil('\n'); podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50) { Serial.println("trafiłeś! udało ci sie wygrać"); digitalWrite(led_zielona, HIGH); digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); digitalWrite(led_czerwona3, LOW); od_nowa = true; Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while (digitalRead(przycisk) == HIGH); delay(20); } else { if (proby == 3) { if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50) { Serial.println("trafiłeś! udało ci sie wygrać"); digitalWrite(led_zielona, HIGH); digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); digitalWrite(led_czerwona3, LOW); od_nowa = true; Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while (digitalRead(przycisk) == HIGH); delay(20); } else { od_nowa = false; digitalWrite(led_czerwona1, LOW); proby --; Serial.println("nie udało ci się trafić ale masz jeszcze szanse"); Serial.println("ilosc szans: "); Serial.println(proby); Serial.println("podaj kolejna liczbe"); } } while (Serial.available() == 0); //czekamy na podanie liczby podana_liczba = Serial.readStringUntil('\n'); podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int if (proby == 2) { if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50) { Serial.println("trafiłeś! udało ci sie wygrać"); digitalWrite(led_zielona, HIGH); digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); digitalWrite(led_czerwona3, LOW); od_nowa = true; Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while (digitalRead(przycisk) == HIGH); delay(20); } else { od_nowa = false; digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); proby--; Serial.println("nie udało ci się trafić ale masz jeszcze szanse"); Serial.println("ilosc szans: "); Serial.println(proby); Serial.println("podaj kolejna liczbe"); } } while (Serial.available() == 0); //czekamy na podanie liczby podana_liczba = Serial.readStringUntil('\n'); podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int if (proby == 1) { if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50) { Serial.println("trafiłeś! udało ci sie wygrać"); digitalWrite(led_zielona, HIGH); digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); digitalWrite(led_czerwona3, LOW); od_nowa = true; Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while (digitalRead(przycisk) == HIGH); delay(20); } else { digitalWrite(led_czerwona1, LOW); digitalWrite(led_czerwona2, LOW); digitalWrite(led_czerwona3, LOW); proby --; od_nowa = true; Serial.println("nie udało ci się trafić"); Serial.println("wykorzystales wszystkie swoje szanse"); Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while (digitalRead(przycisk) == HIGH); delay(20); } } } delay(20); } Dzięki wielkie! 🙂
  2. Racja był błąd tak powinno być: if(od_nowa==true) //jesli rozpoczynamy gre od nowa Jednak nie zmieniło to faktu że w momencie w którym popełnie błąd 2 raz odrazu czyta mi też nastepnego if i zgasza wszstkie diody bez mozliwosci odpowiedzenia drugi raz :/
  3. Siema, dopiero zaczynam przygode z programowaniem 🙂 mogłby ktoś mi powiedzieć gdzie mam błąd ? tj. zadanie 4.5 lekko przerobione bo sa 3 diody symbolizujące szanse "proby" za każdym razem gdy zle odpowiemy jedna z tych diód gaśnie. ogólnie program działa tak że jak trafimy to działa poprawnie jak odpowiemy zle to za piewszym razem działa poprawnie natomiast jak odpowiem zle drugi raz to na ekran wywala mi jakbym mail proby 2 i 1 i dodatkowo pisze pokrec potencjometrem :/ //przypisane pinów #define led_czerwona1 9 #define led_czerwona2 10 #define led_czerwona3 11 #define led_zielona 8 #define przycisk 7 #define pin_odczyt A5 int adc=0; // odczyt z potecjonometru String podana_liczba = ""; //liczba podana przez gracza int podana_liczba_int=0; // przskalowanie na int ? byte proby = 3; //ilosc prob boolean od_nowa = true; void setup() { pinMode(przycisk,INPUT_PULLUP); pinMode(led_zielona,OUTPUT); pinMode(led_czerwona1,OUTPUT); pinMode(led_czerwona2,OUTPUT); pinMode(led_czerwona3,OUTPUT); Serial.begin(9600); } void loop() { if(od_nowa=true) //jesli rozpoczynamy gre od nowa { proby=3; digitalWrite(led_zielona,LOW); //zgaszamy wszystkie diody digitalWrite(led_czerwona1,HIGH); digitalWrite(led_czerwona2,HIGH); digitalWrite(led_czerwona3,HIGH); while(!Serial)delay(10); //czekamy na otwarcie serial monitora Serial.println("pokreć potencjonometrem"); adc=analogRead(pin_odczyt); // szczytujemy wartosc z potecjonometru } while(Serial.available() ==0); //czekamy na podanie liczby podana_liczba=Serial.readStringUntil('\n'); podana_liczba_int=podana_liczba.toInt(); // zamieniamy ze String na int if(adc-podana_liczba_int<=50 && adc-podana_liczba_int >= -50) { Serial.println("trafiłeś! udało ci sie wygrać"); digitalWrite(led_zielona,HIGH); digitalWrite(led_czerwona1,LOW); digitalWrite(led_czerwona2,LOW); digitalWrite(led_czerwona3,LOW); od_nowa=true; Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while(digitalRead(przycisk)==HIGH); delay(20); } else { if (proby==3) { od_nowa=false; digitalWrite(led_czerwona1,LOW); proby --; Serial.println("nie udało ci się trafić ale masz jeszcze szanse"); Serial.println("ilosc szans: "); Serial.println(proby); Serial.println("podaj kolejna liczbe"); while(Serial.available()==0) delay(20); } if(proby==2) { od_nowa=false; digitalWrite(led_czerwona1,LOW); digitalWrite(led_czerwona2,LOW); proby--; Serial.println("nie udało ci się trafić ale masz jeszcze szanse"); Serial.println("ilosc szans: "); Serial.println(proby); Serial.println("podaj kolejna liczbe"); while(Serial.available()==0) delay(20); } if(proby==1) { digitalWrite(led_czerwona1,LOW); digitalWrite(led_czerwona2,LOW); digitalWrite(led_czerwona3,LOW); proby --; od_nowa=true; Serial.println("nie udało ci się trafić"); Serial.println("wykorzystales wszystkie swoje szanse"); Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk"); while(digitalRead(przycisk)==HIGH); delay(20); } } delay(5); }
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.