Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: May 10, 2021 6:38 AM
Views: 504
Tags: no tags
  1. public boolean analyzeAnswer(String answer){
  2.         //nötigen Variablen anlegen
  3.         String digit = "123456789";
  4.         boolean answerHasDigits = false;
  5.         int correctAnswers = 0;
  6.  
  7.  
  8.         //Schauen ob überhaupt eine Ziffer in der Antwort enthalten ist
  9.         for (int i = 0; i < answer.length(); i++) {
  10.             if(digit.contains(answer.charAt(i) + "")){
  11.                 answerHasDigits = true;
  12.                 break;
  13.             }
  14.         }
  15.  
  16.         //Wenn nicht, dann Gegenreaktion
  17.         if(!answerHasDigits){
  18.             throw new IllegalArgumentException("Nur Zahlen dürfen enthalten sein!");
  19.         }
  20.  
  21.         //Schleife über Antwort Zeichen
  22.         for (int i = 0; i < answer.length(); i++) {
  23.  
  24.             //Wenn Ziffer enthalten ist
  25.             if(digit.contains(answer.charAt(i) + "")){
  26.  
  27.                 //und die Ziffer im gültigen Antwortbereich liegt
  28.                 if(Integer.parseInt(answer.charAt(i)+"")-1 <= choices.size()-1){
  29.  
  30.                     // und die Antwort falsch ist wird der return auch insgesamt falsch
  31.                     if(!choices.get(Integer.parseInt(answer.charAt(i) + "") -1).ok){
  32.                         correctAnswers++;
  33.                     }
  34.  
  35.                 }else{
  36.                     // Zahl größer als möglichen Antworten
  37.                     return false;
  38.                     // Sonst: mit Try and Catch Block möglich, noch nicht gelernt.
  39.                     // throw new IllegalArgumentException("Antwort nicht möglich, eingegebene Zahl ist zu hoch");
  40.                 }
  41.             }
  42.         }
  43.  
  44.         //Prüfen, wieviele Antworten richtig sein müssen, damit die Frage insgesamt richtig ist.
  45.  
  46.         int needsToBeCorrect = 0;
  47.         //for each LESEND über die Antwortmöglichkeiten
  48.         for (Choice choice :
  49.                 choices) {
  50.             //Wenn die Antwort ok ist, dann wird needsToBeCorrect um 1 erhöht
  51.             if(choice.ok == true){
  52.                 needsToBeCorrect++;
  53.             }
  54.         }
  55.  
  56.         //Nun wird auch geschaut, ob alle Antworten auch richtig angegeben wurden
  57.         if(needsToBeCorrect == correctAnswers){
  58.             return true;
  59.         }else{
  60.             return false;
  61.         }
  62.  
  63.     }
  64.