Udało się(tak mi się wydaje) zrobić punkt 4.5. 😃
Tylko w jednym miejscu miałem problemy i musiałem zaczerpnąć pomocy(zaznaczyłem miejsce w kodzie). Myślałem, żeby zmienną na wpisanie liczby dać w int i użyć odpowiednika scanf, ale przerosło mnie to jeszcze 🙁
Oto mój kod(pewnie dużo zbędnego kodu)
Zadanie 4.5.:
#define yellow 8
#define blue 9
#define red 10
#define button 2
int odczyt = 0;
int poczatek=0;
int proby=0;
int liczniknap=0;
int licznikliczby=0;
String liczba="";
int liczba_int=0; //ten fragment zapożyczony
void setup() {
Serial.begin(9600);
pinMode(2,INPUT_PULLUP);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
odczyt = analogRead(A0);
if (digitalRead(button) == LOW && proby<3) {
digitalWrite(blue, LOW);
digitalWrite(yellow, HIGH);
delay(10);
if(liczniknap==0){
Serial.println("Podaj liczbe:");
liczniknap=1;
delay(10);
}
digitalWrite(yellow,LOW);
}
else {
if(poczatek==0){
Serial.println("Witaj w mojej grze aby zagrac nacisnij przycisk!");
Serial.println("Zasady sa proste, ustaw pokretlo w dowolnej pozycji.\nPrzyjmie ono wartosc od 0 do 1031.");
Serial.println("Twoim zadaniem jest zgadnac jaka to liczba(mozesz pomylic sie o 50).");
Serial.println("Masz 3 proby.\nPo odgadnieciu liczby zapali sie niebieska dioda\nPo pierwszym i drugim bledzie zolta\nNatomiast po trzecim czerwona");
}
liczniknap=0;
if(licznikliczby==0 && Serial.available() > 0){
liczba=Serial.readStringUntil('\n');
liczba_int=liczba.toInt();
Serial.println("Twoja liczba to:");
Serial.println(liczba_int);
licznikliczby=1;
if(odczyt-50<=liczba_int && odczyt+50>=liczba_int){
Serial.println("Wygrales");
digitalWrite(blue,HIGH);
Serial.println("Aby zagrac jeszcze raz, nacisnij guzik 'reset'");
}
else if(proby==0){
digitalWrite(yellow,HIGH);
Serial.println("Niestety nie udalo sie");
Serial.println("Pozostalo prob:2");
Serial.println("Aby sprobowac jeszcze raz nacisnij guzik\n");
}
else if(proby==1){
digitalWrite(yellow,HIGH);
Serial.println("Niestety nie udalo sie");
Serial.println("Pozostalo prob:1");
Serial.println("Aby sprobowac jeszcze raz nacisnij guzik\n");
}
else if(proby==2){
digitalWrite(yellow,LOW);
digitalWrite(red,HIGH);
Serial.println("Niestety nie udalo sie");
Serial.println("Pozostalo prob:0");
Serial.println("Koniec gry");
Serial.println("Taka liczbe ustawiles:");
Serial.println(odczyt);
}
proby=proby+1;
if ((digitalRead(button) == LOW && proby>=3)|| proby>3){
Serial.println("Gra skonczona!");
Serial.println("Aby zagrac jeszcze raz, nacisnij guzik 'reset'");
}
}
}
licznikliczby=0;
poczatek=1;
}