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! 🙂