Code einfügen



  • Ich habe momentan folgendes Problem:

    Das hier ist mein Code:

    int tip[6]; //array mit 6 Feldern
    int ziehung[6];
    int alleTipps[7];
    int richtigeTipps =0;
    boolean doppelt = false;
     
    void setup() {
    randomSeed(analogRead(A0));
    Serial.begin(9600);
    }
    
    void loop () {
    
    Serial.println("---------------------------------------------------");
    
    for(int i = 0; i < 6; i++){
    alleTipps[i]=0;
    }
    
    Serial.println("Ihre Lottozahlen sind:");
    for(int i = 0; i < 6; i++){
    tip[i] = random(6,49);
    Serial.print(tip[i]);
    Serial.print(" ");
    delay(500);
    }
      if(ziehung[0]==ziehung[1]||ziehung[0]==ziehung[2]||ziehung[0]==ziehung[3]||ziehung[0]==ziehung[4]||ziehung[0]==ziehung[5]||ziehung[1]==ziehung[2]||ziehung[1]==ziehung[3]||ziehung[1]==ziehung[4]||ziehung[1]==ziehung[5]||ziehung[2]==ziehung[3]||ziehung[2]==ziehung[4]||ziehung[2]==ziehung[5]||ziehung[3]==ziehung[4]||ziehung[3]==ziehung[5]||ziehung[4]==ziehung[5]){
           doppelt = true;
             randomSeed(analogRead(0));
      }
    
      
    
    Serial.println("");
    Serial.println("---------------------------------------------------");
    delay(1000);
    
    for(int times = 0; times < 1000;times++){
    Serial.println("");
    Serial.println("Die gezogenen Lottozahlen sind:");
    
    
    for(int i = 0; i < 6; i++){
    ziehung[i] = random(6,49);
    Serial.print(ziehung[i]);
    delay(10);
    Serial.print (" ");
    
    }
    
    for(int i = 0; i < 6; i++){
    for(int a = 0; a < 6; a++) {
      if (ziehung[i] == tip[a]) {
      richtigeTipps++;
             
    }
    }
        
    }
     alleTipps[richtigeTipps]++;
        delay(0);
        richtigeTipps = 0;
    
    }
    
    for (int i = 0; i < 7; i++) {
        Serial.println(" ");
        Serial.println("---------------------------------------------------");
        Serial.println(" ");
        Serial.print("Anzahl der richtigen mit ");
        Serial.print(i);
        Serial.print(" Uebereinstimmungen: ");
        Serial.println(alleTipps[i]);
     
      }
    delay(3000);
    }
    

    Ich muss den folgenden Code einfügen und habe damit schon angefangen, jedoch funktioniert das nicht so wie ich das will. Es soll überprüfen ob zwei Zahlen im tip doppelt sind, sodass er einen neuen tipp erstellt.

    Hier habe ich den Code welchen ich oben zum Teil eingefügt habe:

    void setup() {
      // put your setup code here, to run once:
      randomSeed(analogRead(0));
      Serial.begin(9600);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      boolean doppelt = false;
      int ziehung[6];
      do{
        doppelt = false;
         for(int i = 0; i < 6; i++){
           ziehung[i] = random(1,50); 
         }
         if(ziehung[0]==ziehung[1]||ziehung[0]==ziehung[2]||ziehung[0]==ziehung[3]||ziehung[0]==ziehung[4]||ziehung[0]==ziehung[5]||ziehung[1]==ziehung[2]||ziehung[1]==ziehung[3]||ziehung[1]==ziehung[4]||ziehung[1]==ziehung[5]||ziehung[2]==ziehung[3]||ziehung[2]==ziehung[4]||ziehung[2]==ziehung[5]||ziehung[3]==ziehung[4]||ziehung[3]==ziehung[5]||ziehung[4]==ziehung[5]){
           doppelt = true;
             randomSeed(analogRead(0));
         }
         for(int i = 0; i < 6; i++){
           Serial.print(ziehung[i]);
           Serial.print("\t"); 
         }
         Serial.println();
         if(doppelt){
               Serial.println("Mind. 2 Zahlen doppelt");
         }else{
           Serial.println("Ziehung ok"); 
         }
      }while(doppelt == true);
      delay(3000);
    }
    


  • @Emilia Bitte Code-Tags einfügen, damit Dein Quelltext lesbar wird.



  • @Emilia Bitte markiere deinen Code als Code, indem du vor und hinter den Code je 3x das `-Zeichen schreibst. Also
    ```
    dein Code
    ```



  • @mgaeckler Ist gut habe ich getan. Danke!



  • @wob Danke habe ich gemacht!



  • @Emilia sagte in Code einfügen:

    jedoch funktioniert das nicht so wie ich das will.

    Das heißt?



  • @manni66 sagte in Code einfügen:

    rt das nicht so wie ich das will.

    Es soll überprüfen ob mein tip doppelte Zahlen hat. Falls ja, dann soll es neu ziehen. Momentan macht es das nicht, sondern gibt nur das selbe aus.



  • @Emilia sagte in Code einfügen:

    @manni66 sagte in Code einfügen:

    rt das nicht so wie ich das will.

    Es soll überprüfen ob mein tip doppelte Zahlen hat. Falls ja, dann soll es neu ziehen. Momentan macht es das nicht, sondern gibt nur das selbe aus.

    Wenn du Hilfe von anderen willst, solltest du dir mehr Mühe mit deiner Problembeschreibung geben.

    Dein Code ist nicht in C++ geschrieben. Ist das CLI/.NET ?

    Keine Ahnung, was das randomSeed(analogRead(0));genau macht. Wenn es aber den Zufallsgenerator wieder in den Ausgangszustand versetzt, wird die Ziehung nicht anders ausfallen.



  • Der obere ist dein Code, ja?
    Woher soll er denn wissen, was er machen soll, wenn "doppelt == true"?

    Ich würde dir empfehlen, denn Code den du versuchst zu adaptieren, mal Schritt für Schritt durchzugehen um zu verstehen, was er macht.

    Und dann, nicht einfach kopieren. Man programmiert nicht um dann alle Permutationen von Hand zu überprüfen.



  • @Emilia

    1. Schreibe dir eine Funktion containsDuplicate, die für ein beliebiges Array erkennen kann, ob Duplikate vorhanden sind
    2. Schreib nicht jeden Vergleich von Hand auf, sondern nutze Schleifen: für jede Zahl in dem Array: vergleicht sie mit allen folgenden im Array. Wenn irgendwo etwas gleich ist, returnst du true.
    3. Alternativ schaust du dir den Datentyp "set" an. In ein set kann man Dinge hineintun und nachschauen, ob bestimmte Dinge vorhanden sind. Und zwei Mengen (die Tipps und die Ziehung) kannst du z.B. mit https://en.cppreference.com/w/cpp/algorithm/set_intersection vergleichen.


  • @manni66 sagte in Code einfügen:

    Dein Code ist nicht in C++ geschrieben. Ist das CLI/.NET ?

    Das ist C++ wie es auf dem Arduino (mit der Arduino IDE) programmiert wird.

    Das sind Mikrocontroller (von 8 bis 32 Bit)
    Für die kleinen wird kaum C++ benutzt.

    Gut an den User-Funktionen setup und loop zu erkennen.