• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
komenda goto a poprawność programu
#1
Poniżej wstawię kod niedziałającego programu. Jest to gra której założenie jest następujące: wybieramy czy chcemy dodawać czy odejmować, program generuje dwie losowe liczby dodaje je do siebie i sprawdza czy wynik jest zgodny z tym co wprowadziliśmy do komputera. W zależności od poprawności przyznaje nam lub nie przyznaje punkt. Ze względu na podwójne wyświetlenie na monitorze portu wyniku oraz fakt że program nie czeka na wprowadzenie odpowiedzi podejrzewam że niepoprawnie wykorzystałam komendę goto. Prosiłabym o znalezienie błędu lub wskazanie gdzie może się znajdować.
Kod:
String odebraneDane = "";
String odebraneDane2 = "";
//int zakres = "";
  int punktyuzyskane;
  int rundy = 0;
  int wprowadzona;
void setup(){
  Serial.begin(9600);
  randomSeed(analogRead(0));
 
}
void loop() {
 label3:
   if(Serial.available() > 0){
      //int zakres = Serial.read();
      rundy = rundy + 1;
       Serial.println("runda:" );
       Serial.println(rundy);
       Serial.println( );
       delay(1000);
       //goto label4;
   }else{
       goto label3;
       }{
   int zmienna1 = random(10, 100);
   int zmienna2 = random(10, 100);
   Serial.println(zmienna1);
   delay(1000);
   Serial.println(zmienna2);
   delay(1000);
   label:
   if (odebraneDane == "+"){
     delay(100);
     label1:
   if(Serial.available() > 0){
      odebraneDane2 = Serial.read();
     
   int zmienna3 = zmienna1+zmienna2;
   if (odebraneDane2 == zmienna3)
   {
     Serial.println(zmienna3);
     Serial.println("podałeś poprawny wynik");
     punktyuzyskane = punktyuzyskane+1;
     Serial.println("liczba punktów:");
     Serial.println(punktyuzyskane);
     
   }else{
     Serial.println(zmienna3);
     Serial.println("podałeś błędny wynik");
     Serial.println("liczba punktów:");
     Serial.println(punktyuzyskane);
     Serial.println( );
   }
   
 }
   }else{
   delay(100);
   goto label1;
   }
       
        if (odebraneDane == "-")
{
   int zmienna1 = random(10, 100);
   int zmienna2 = random(10, 100);
   Serial.println(zmienna1);
   delay(1000);
   Serial.println(zmienna2);
   delay(1000);

   if(Serial.available() > 0){
      odebraneDane2 = Serial.readStringUntil('\n');
   int zmienna3 = zmienna1-zmienna2;
   Serial.println(zmienna3);
   Serial.println( );
   }else{
   delay(1000);

   }
 
 }else{
 delay(1000);
 goto label;

 }
}
}
 
Odpowiedź
  


Wiadomości w tym wątku
komenda goto a poprawność programu - przez Agara7 - 22-02-2019, 09:47

Skocz do:


Przeglądający: 1 gości