Sprung Kabel deklarieren



  • Hallo

    bin Schüler einer HBFI und bastle an meinem Abschlussprojekt...
    bräuchte dringend fachlichen Beistand...

    Will mit goto zu Schluss springen, kann aber kein Sprunglabel deklarieren. Die Zweite Abfage soll komplett übersprungen werden und erst beim nächsten Schleifendurchlauf aufrufbar sein. Der ganze Kram wird in einer Form mit einem Button aufgerufen.

    Vielen Dank schon im Vorraus...

    .
    ..
    ...
    int Ende = 1;
    label Schluss; //geht nicht - bringt "Undefiniertes Symbol 'label'"

    do
    {
    if ((zufallszahl1==1)&&(zufallszahl2==1)&&(a==1)&&(b==2))
    {
    img2->Visible=false;
    b=0;
    goto <Schluss>; //Will hier mit Goto zu Schluss
    }

    if ((zufallszahl1==1)&&(zufallszahl2==1)&&(a==1)&&(b==0))
    {
    img1->Visible=false;
    a=0;
    goto <Schluss>;
    }

    Schluss:
    Ende++
    }while (Ende<10);
    ...
    ..
    .



  • Hi, ich denke else if wäre hier etwas schöner als goto. Ausserdem würde ich anstelle der do while eine for- Schleife verwenden.

    label Schluss; //geht nicht - bringt "Undefiniertes Symbol 'label'" 
    for(int Ende = 1; Ende < 10; Ende++) 
    { 
       if ((zufallszahl1==1)&&(zufallszahl2==1)&&(a==1)&&(b==2)) 
       { 
          img2->Visible=false; 
          b=0; 
       } 
       else if ((zufallszahl1==1)&&(zufallszahl2==1)&&(a==1)&&(b==0)) 
       { 
          img1->Visible=false; 
          a=0; 
       } 
    }
    

    Zudem solltest du deine Zufallszahlen in der Schleife noch neu generieren, sonst ist es ziemlich sinnlos, sie 9-mal zu durch laufen.



  • hi,

    goto ist schlecht. wenn du mit goto arbeitest, wirst du auf jeden fall eine schlechtere note bekommen, weil nur vollidioten goto benutzen.

    hans



  • label Schluss; //geht nicht - bringt "Undefiniertes Symbol 'label'"
    

    Ich wüsste nicht, dass man Vorwärtsdeklarationen für Sprungmarken schreibt.



  • Ups, hatte ich vergessen zu löschen 😉



  • Merci erst mal...

    Mit else if kann ichs leider nicht machen weil in der Schleife noch min. 30 solcher kurzen If's kommen... Mit ner Forschleife hab ichs auch schon versucht und anstatt goto continue benutzt, bekam aber nicht das gewünschte Ergebnis.

    Hab in ner Hilfe Datei zu goto gefunden das label so deklariert werden müssen. Kannte mich mit goto nicht aus weil unser Lehrer es uns gar nicht erst beibringen wollte... er hats uns auch glaub ich verboten...

    werd mal versuchen die ganzen if abfragen in switch unter zu bringen...

    sorry, konnte den ganzen Quelltext der einen Schleife nicht posten, hat mehrere hundert Zeilen...

    Vielen dank für die Hilfe...



  • Der Grund dafür, dass der Lehrer euch das verboten hat, wurde ja schon genannt 😉
    Beschreibe mal bitte, was deine Schleife im Detail macht, dann kann man vielleicht schon Optimierungsmöglichkeiten erkennen.



  • Günter schrieb:

    Mit else if kann ichs leider nicht machen weil in der Schleife noch min. 30 solcher kurzen If's kommen...

    Aber du bist dir darüber im klaren, dass diese Aussage sehr widersprüchlich ist, oder?



  • Wie schon gesagt "goto" ist böse und wird heutzutage (hoffentlich) nicht mehr verwendet werden.
    Wenn du schon vorzeitig aus deiner Schleife springen willst solltest du ein zwar auch nicht unbedingt schöneres "break" nehmen.
    Normalerweise verwendet man für sowas was du da machst wie schon gesagt "for".
    Wenn du vorzeitig aus deiner Schleife ausbrechen willst entweder "break" oder aber du setzt eine Abbruchbedingung.

    bool bend=false;
    for(int Ende = 1; Ende < 10 && !bend; Ende++) 
    { 
       if (zufallszahl1==1&&zufallszahl2==1&&a==1) 
       { 
          if(b==2)//vielleicht eignet sich hier auch eher ein switch..case 
          { 
             img2->Visible=false; 
             b=0; 
          }
          else if(b==0)
          {
             img1->Visible=false; 
             a=0; 
          }
          bend=true;//falls du die Variable Ende nicht noch anderweitig brauchst mach einfach Ende=10 und entferne bend; 
       } 
    }
    


  • Ich für dieses Würfelspiel einen Computergegner Programmieren
    http://www.info-joe.com/1X23X19X49846_Klappbrett_Holz.html

    Dazu diese Schleife. Am Anfang der Zufallsgenerator. Die Zwei Würfel bekommen die Werte von Zufallszahl1(Würfel1) und Zufallszahl2(Würfel2). Den Zahlenindex zum "wegklappen" habe ich mit img's programmiert. Jede Zahl hat einen Wert zugeteilt bekommen. 1 hat a=1, 2 hat b=2,...,9 hat i=9; Über diese Werte überprüfe ich welche Zahlen schon weggeklickt wurden. Ich will den Computergegner würfeln lassen dann überpüft er welche Zahlen noch vorhanden sind und klickt dann die höchste existierende Zahl weg...

    Wie jedoch im ersten Fall bei einem einser Pasch erfülle ich durch das löschen der Zahl 2 (b=0;) in der ersten if verzweigung, die bedingung der zweiten if abfrage (b==0). So verschwinden beide Zahlen bei einem Zug es soll aber pro würfeln nur 1 Zahl verschwinden. Deshalb wollte ich mit goto direkt nach dem löschen ans Ende der Schleifen springen...

    int Ende;
    
     do
     {
    
     srand(time(NULL));
     zufallszahl1=1+rand()%6;
     zufallszahl2=1+rand()%6;
    
     if (zufallszahl1==1)
         imgAuge1->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1
     if (zufallszahl1==2)
         imgAuge1->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2
     if (zufallszahl1==3)
         imgAuge1->Picture->LoadFromFile("auge3.bmp"); //Würfelauge 3
     if (zufallszahl1==4)
         imgAuge1->Picture->LoadFromFile("auge4.bmp"); //Würfelauge 4
     if (zufallszahl1==5)
         imgAuge1->Picture->LoadFromFile("auge5.bmp"); //Würfelauge 5
     if (zufallszahl1==6)
         imgAuge1->Picture->LoadFromFile("auge6.bmp"); //Würfelauge 6
     if (zufallszahl2==1)
         imgAuge2->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1
     if (zufallszahl2==2)
         imgAuge2->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2
     if (zufallszahl2==3)
         imgAuge2->Picture->LoadFromFile("auge3.bmp"); //Würfelauge 3
     if (zufallszahl2==4)
         imgAuge2->Picture->LoadFromFile("auge4.bmp"); //Würfelauge 4
     if (zufallszahl2==5)
         imgAuge2->Picture->LoadFromFile("auge5.bmp"); //Würfelauge 5
     if (zufallszahl2==6)
         imgAuge2->Picture->LoadFromFile("auge6.bmp"); //Würfelauge 6
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 1 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 1 und 1
     if ((zufallszahl1==1)&&(zufallszahl2==1)&&(b==2))   //2 existiert - löscht 2
         {
         img2->Visible=false;
         b=0;
         goto //hier will ich ans Ende springen
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==1)&&(b==0))   //2 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
     //Computerzug bei 1 und 2
     if ((zufallszahl1==1)&&(zufallszahl2==2)&&(c==3)) //3 existiert - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==2)&&(zufallszahl2==1)&&(c==3)) //3 existiert - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==2)&&(a==1)&&(b==2)&&(c==0)) //3 existiert nicht - löscht 2
         {
         img2->Visible=false;
         b=0;
    
         }
     if ((zufallszahl1==2)&&(zufallszahl2==1)&&(a==1)&&(b==2)&&(c==0)) //3 existiert nicht - löscht 2
          {
         img2->Visible=false;
         b=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==2)&&(a==1)&&(b==0)&&(c==0)) //2 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
     if ((zufallszahl1==2)&&(zufallszahl2==1)&&(a==1)&&(b==0)&&(c==0)) //2 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
     //Computerzug bei 1 und 3
     if ((zufallszahl1==1)&&(zufallszahl2==3)&&(a==1)&&(c==3)&&(d==4)) //4 existiert - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==1)&&(a==1)&&(c==3)&&(d==4)) //4 existiert - löscht 4
          {
         img4->Visible=false;
         d=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==3)&&(a==1)&&(c==3)&&(d==0)) //4 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==1)&&(a==1)&&(c==3)&&(d==0)) //4 existiert nicht - löscht 3
          {
         img3->Visible=false;
         c=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==3)&&(a==1)&&(c==0)&&(d==0)) //3 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==1)&&(a==1)&&(c==0)&&(d==0)) //3 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
      //Computerzug bei 1 und 4
     if ((zufallszahl1==1)&&(zufallszahl2==4)&&(a==1)&&(d==4)&&(e==5)) //5 existiert - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==1)&&(a==1)&&(d==4)&&(e==5)) //5 existiert - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==4)&&(a==1)&&(d==4)&&(e==0)) //5 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==1)&&(a==1)&&(d==4)&&(e==0)) //5 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==4)&&(a==1)&&(d==0)&&(e==0)) //4 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==1)&&(a==1)&&(d==0)&&(e==0)) //4 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
      //Computerzug bei 1 und 5
     if ((zufallszahl1==1)&&(zufallszahl2==5)&&(a==1)&&(e==5)&&(f==6)) //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==1)&&(a==1)&&(e==5)&&(f==6)) //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==5)&&(a==1)&&(e==5)&&(f==0)) //6 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==1)&&(a==1)&&(e==5)&&(f==0)) //6 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==5)&&(a==1)&&(e==0)&&(f==0)) //5 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==1)&&(a==1)&&(e==0)&&(f==0)) //5 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
      //Computerzug bei 1 und 6
     if ((zufallszahl1==1)&&(zufallszahl2==6)&&(a==1)&&(f==6)&&(g==7)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==1)&&(a==1)&&(f==6)&&(g==7)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==6)&&(a==1)&&(f==6)&&(g==0)) //7 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==1)&&(a==1)&&(f==6)&&(g==0)) //7 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==1)&&(zufallszahl2==6)&&(a==1)&&(f==0)&&(g==0)) //6 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==1)&&(a==1)&&(f==0)&&(g==0)) //6 existiert nicht - löscht 1
         {
         img1->Visible=false;
         a=0;
    
         }
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 2 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 2 und 2
     if ((zufallszahl1==2)&&(zufallszahl2==2)&&(b==2)&&(d==4))   //4 existiert - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==2)&&(zufallszahl2==2)&&(b==2)&&(d==0))   //4 existiert nicht - löscht 2
        {
         img2->Visible=false;
         b=0;
    
         }
    
     //Computerzug bei 2 und 3
     if ((zufallszahl1==2)&&(zufallszahl2==3)&&(b==2)&&(c==3)&&(e==5)) //5 existiert - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==2)&&(b==2)&&(c==3)&&(e==5)) //5 existiert - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==3)&&(b==2)&&(c==3)&&(e==0)) //5 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==2)&&(b==2)&&(c==3)&&(e==0)) //5 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==3)&&(b==2)&&(c==0)&&(e==0)) //3 existiert nicht - löscht 2
         {
         img2->Visible=false;
         b=0;
    
         }
     if ((zufallszahl1==3)&&(zufallszahl2==2)&&(b==2)&&(c==0)&&(e==0)) //3 existiert nicht - löscht 2
         {
         img2->Visible=false;
         b=0;
    
         }
    
     //Computerzug bei 2 und 4
     if ((zufallszahl1==2)&&(zufallszahl2==4)&&(b==2)&&(d==4)&&(e==5)) //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==2)&&(b==2)&&(d==4)&&(e==5)) //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==4)&&(b==2)&&(d==4)&&(e==0)) //6 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==2)&&(b==2)&&(d==4)&&(e==0)) //6 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==4)&&(b==2)&&(d==0)&&(e==0)) //4 existiert nicht - löscht 2
         {
         img2->Visible=false;
         b=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==2)&&(b==2)&&(d==0)&&(e==0)) //4 existiert nicht - löscht 2
         img2->Visible=false;
         {
         img2->Visible=false;
         b=0;
    
         }
    
     //Computerzug bei 2 und 5
     if ((zufallszahl1==2)&&(zufallszahl2==5)&&(b==2)&&(e==5)&&(f==6)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==2)&&(b==2)&&(e==5)&&(f==6)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==5)&&(b==2)&&(e==5)&&(f==0)) //7 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==2)&&(b==2)&&(e==5)&&(f==0)) //7 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==5)&&(b==2)&&(e==0)&&(f==0)) //5 existiert nicht - löscht 2
         {
         img2->Visible=false;
         b=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==2)&&(b==2)&&(e==0)&&(f==0)) //5 existiert nicht - löscht 2
        {
         img2->Visible=false;
         b=0;
    
         }
    
     //Computerzug bei 2 und 6
     if ((zufallszahl1==2)&&(zufallszahl2==6)&&(b==2)&&(f==6)&&(h==8)) //8 existiert - löscht 8
         {
         img8->Visible=false;
         h=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==2)&&(b==2)&&(f==6)&&(h==8)) //8 existiert - löscht 8
         {
         img8->Visible=false;
         h=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==6)&&(b==2)&&(f==6)&&(h==0)) //8 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==2)&&(b==2)&&(f==6)&&(h==0)) //8 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==2)&&(zufallszahl2==6)&&(b==2)&&(f==0)&&(h==0)) //6 existiert nicht - löscht 2
          {
         img2->Visible=false;
         b=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==2)&&(b==2)&&(f==0)&&(h==0)) //6 existiert nicht - löscht 2
          {
         img2->Visible=false;
         b=0;
    
         }
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 3 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 3 und 3
     if ((zufallszahl1==3)&&(zufallszahl2==3)&&(c==3)&&(f==6))   //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==3)&&(c==3)&&(f==0))   //6 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
     //Computerzug bei 3 und 4
     if ((zufallszahl1==3)&&(zufallszahl2==4)&&(c==3)&&(d==4)&&(g==7)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==3)&&(c==3)&&(d==4)&&(g==7)) //7 existiert - löscht 7
         {
         img7->Visible=false;
         g=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==4)&&(c==3)&&(d==4)&&(g==0)) //7 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==3)&&(c==3)&&(d==4)&&(g==0)) //7 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==4)&&(c==3)&&(d==0)&&(g==0)) //4 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==3)&&(c==3)&&(d==0)&&(g==0)) //4 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
     //Computerzug bei 3 und 5
     if ((zufallszahl1==3)&&(zufallszahl2==5)&&(c==3)&&(e==5)&&(h==8)) //8 existiert - löscht 8
         {
         img8->Visible=false;
         h=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==3)&&(c==3)&&(e==5)&&(h==8)) //8 existiert - löscht 8
         {
         img8->Visible=false;
         h=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==5)&&(c==3)&&(e==5)&&(h==0)) //8 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==3)&&(c==3)&&(e==5)&&(h==0)) //8 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==5)&&(c==3)&&(e==0)&&(h==0)) //5 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==3)&&(c==3)&&(e==0)&&(h==0)) //5 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
     //Computerzug bei 3 und 6
     if ((zufallszahl1==3)&&(zufallszahl2==6)&&(c==3)&&(f==6)&&(i==9)) //9 existiert - löscht 9
         {
         img9->Visible=false;
         i=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==3)&&(c==3)&&(f==6)&&(i==9)) //9 existiert - löscht 9
         {
         img9->Visible=false;
         i=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==6)&&(c==3)&&(f==6)&&(i==0)) //9 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==3)&&(c==3)&&(f==6)&&(i==0)) //9 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==3)&&(zufallszahl2==6)&&(c==3)&&(f==0)&&(i==0)) //6 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==3)&&(c==3)&&(f==0)&&(i==0)) //6 existiert nicht - löscht 3
         {
         img3->Visible=false;
         c=0;
    
         }
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 4 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 4 und 4
     if ((zufallszahl1==4)&&(zufallszahl2==4)&&(d==4)&&(h==8))   //8 existiert - löscht 8
         {
         img8->Visible=false;
         h=0;
    
         }
     if ((zufallszahl1==4)&&(zufallszahl2==4)&&(d==4)&&(h==0))   //8 existiert nicht - löscht 4
         {
         img4->Visible=false;
         b=0;
    
         }
    
     //Computerzug bei 4 und 5
     if ((zufallszahl1==4)&&(zufallszahl2==5)&&(d==4)&&(e==5)&&(i==9)) //9 existiert - löscht 9
         {
         img9->Visible=false;
         i=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==4)&&(d==4)&&(e==5)&&(i==9)) //9 existiert - löscht 9
         {
         img9->Visible=false;
         i=0;
    
         }
    
     if ((zufallszahl1==4)&&(zufallszahl2==5)&&(d==4)&&(e==5)&&(i==0)) //9 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==4)&&(d==4)&&(e==5)&&(i==0)) //9 existiert nicht - löscht 5
         {
         img5->Visible=false;
         e=0;
    
         }
    
     if ((zufallszahl1==4)&&(zufallszahl2==5)&&(d==4)&&(e==0)&&(i==0)) //5 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==5)&&(zufallszahl2==4)&&(d==4)&&(e==0)&&(i==0)) //5 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
    
     //Computerzug bei 4 und 6
     if ((zufallszahl1==4)&&(zufallszahl2==6)&&(d==4)&&(f==6)) //6 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==4)&&(d==4)&&(f==6)) //6 existiert nicht - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     if ((zufallszahl1==4)&&(zufallszahl2==6)&&(d==4)&&(f==0)) //6 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==4)&&(d==4)&&(f==0)) //6 existiert nicht - löscht 4
         {
         img4->Visible=false;
         d=0;
    
         }
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 5 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 5 und 5
     if ((zufallszahl1==5)&&(zufallszahl2==5)&&(e==5))   //5 existiert - löscht 5
         {
         img6->Visible=false;
         f=0;
    
         }
    
     //Computerzug bei 5 und 6
     if ((zufallszahl1==5)&&(zufallszahl2==6)&&(e==5))   //5 existiert - löscht 5
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==5)&&(e==5))   //5 existiert - löscht 5
         {
         img6->Visible=false;
         f=0;
    
         }
    
    //-----------------------------------------------------------------------------
    //       Computerzug bei 6 und *
    //-----------------------------------------------------------------------------
    
     //Computerzug bei 6 und 6
     if ((zufallszahl1==6)&&(zufallszahl2==6)&&(f==6))   //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     //Computerzug bei 5 und 6
     if ((zufallszahl1==5)&&(zufallszahl2==6)&&(f==6))   //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
     if ((zufallszahl1==6)&&(zufallszahl2==5)&&(f==6))   //6 existiert - löscht 6
         {
         img6->Visible=false;
         f=0;
    
         }
    
     Sleep(2000);
     Application->ProcessMessages();
     Ende++;
     }  while(Ende<10);
    


  • Wenn ich das richtig verstanden habe, willst du, wenn die Bedingung nicht erfüllt ist zur nächsten, bis eine erfüllt ist und dann willst du die restlichen if abfragen überspringen? Wenn dem wirklich so ist, verstehe ich nicht weshalb else if nicht gehen soll.
    Für folgenden Block:

    if (zufallszahl1==1)
         imgAuge1->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1
     if (zufallszahl1==2)
         imgAuge1->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2
              .
              .
              .
    

    Währe ein Switch Case wunderbar geeignet.
    Weshalb du die For-Schleife nicht verwenden kannst ist mit ebenfalls ein Rätsel, da

    int Ende = 0
    do{
       .
       .
       .
       Ende++;
    } while(Ende < 10);
    

    genau denselben Effekt hat. Ausser dem würde ich Anstelle der Schleife inkl. Sleep() einen Timer verwenden, sonst frierst du dein Programm nur unnötig ein.



  • Danke für die Tipps

    Werd alles mal ausprobieren....



  • EDIT: Sorry, verlesen 😉



  • wedmer schrieb:

    Für folgenden Block:

    if (zufallszahl1==1)
         imgAuge1->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1
     if (zufallszahl1==2)
         imgAuge1->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2
              .
              .
              .
    

    Währe ein Switch Case wunderbar geeignet.

    Ich finde, noch besser wäre eine Lektüre der BCB-Hilfe zu den Themen StrToInt und Zeichenkettenkonkatenation.



  • srand(time(NULL)); 
     zufallszahl1=1+rand()%6; 
     zufallszahl2=1+rand()%6; 
    
     if (zufallszahl1==1) 
         imgAuge1->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1 
     if (zufallszahl1==2) 
         imgAuge1->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2 
     if (zufallszahl1==3) 
         imgAuge1->Picture->LoadFromFile("auge3.bmp"); //Würfelauge 3 
     if (zufallszahl1==4) 
         imgAuge1->Picture->LoadFromFile("auge4.bmp"); //Würfelauge 4 
     if (zufallszahl1==5) 
         imgAuge1->Picture->LoadFromFile("auge5.bmp"); //Würfelauge 5 
     if (zufallszahl1==6) 
         imgAuge1->Picture->LoadFromFile("auge6.bmp"); //Würfelauge 6 
     if (zufallszahl2==1) 
         imgAuge2->Picture->LoadFromFile("auge1.bmp"); //Würfelauge 1 
     if (zufallszahl2==2) 
         imgAuge2->Picture->LoadFromFile("auge2.bmp"); //Würfelauge 2 
     if (zufallszahl2==3) 
         imgAuge2->Picture->LoadFromFile("auge3.bmp"); //Würfelauge 3 
     if (zufallszahl2==4) 
         imgAuge2->Picture->LoadFromFile("auge4.bmp"); //Würfelauge 4 
     if (zufallszahl2==5) 
         imgAuge2->Picture->LoadFromFile("auge5.bmp"); //Würfelauge 5 
     if (zufallszahl2==6) 
         imgAuge2->Picture->LoadFromFile("auge6.bmp"); //Würfelauge 6
    

    lässt sich durch sowas ersetzen:

    zufallszahl1=RandomRange(0,6);
    zufallszahl2=RandomRange(0,6);
    imgauge1->Picture->Bitmap = NULL;
    imgauge2->Picture->Bitmap = NULL;
    ImageList1->GetBitmap(zufallszahl1,imgauge1->Picture->Bitmap);
    ImageList1->GetBitmap(zufallszahl2,imgauge2->Picture->Bitmap);
    

    und die restlichen if Konstrukte kann man auch komplett entfernen ...
    Stichwort: Arrays


Anmelden zum Antworten