-
        

Ergebnis 1 bis 2 von 2

Thema: NXC Problem mit if, wtf???

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122

    NXC Problem mit if, wtf???

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute
    Ich bin z.Z. am Programmieren eines Roboterarms der durch einen NXT von Lego angesteuert ist. Im Moment klappt aber folgender Code-Teil nicht so ganz:

    Code:
    int ball[3][3];
    
    ball[0][0] = 1; ball[0][1] = 0; ball[0][2] = 0;
    ball[1][0] = 0; ball[1][1] = 0; ball[1][2] = 0;
    ball[2][0] = 0; ball[2][1] = 0; ball[2][2] = 0;
    
         if(ball[0][0] == 1){
          exchangeball(3);}
         if(ball[2][0] == 1){
          exchangeball(1);}
    
         if(ball[0][1] == 1){
          exchangeball(5);}
         if(ball[2][1] == 1){
          exchangeball(6);}
    
         if(ball[0][2] == 1){
          exchangeball(10);}
         if(ball[2][2] == 1){
          exchangeball(8);}
    Die Variable ball ist ein Array, indem die Elemente 1 oder 0 sein können. Diejenigen die dann 1 sind sollten vertauscht werden. Mein Problem ist nun aber, dass hier nicht nur das allererste if, und d.h. exchangeball(3); ausgeführt wird, sonder der Reihe nach alle andern auch.
    Hat jemand eine Ahnung wieso?

    thx
    Anything that can go wrong, will go wrong. Kabel sind entweder zu lang oder zu kurz...

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    hallo orph,

    das ist so nicht nachvollziehbar, aber

    Code:
    int ball[3][3]; 
    
    ball[0][0] = 1; ball[0][1] = 0; ball[0][2] = 0; 
    ball[1][0] = 0; ball[1][1] = 0; ball[1][2] = 0; 
    ball[2][0] = 0; ball[2][1] = 0; ball[2][2] = 0; 
    
         if(ball[0][0] == 1){ 
          exchangeball(3);} 
         if(ball[2][0] == 1){ 
                                        // lasse hier den Wert von ball[2][0] ausgeben
          exchangeball(1);} 
    
         if(ball[0][1] == 1){ 
          exchangeball(5);} 
         if(ball[2][1] == 1){ 
          exchangeball(6);} 
    
         if(ball[0][2] == 1){ 
          exchangeball(10);} 
         if(ball[2][2] == 1){ 
          exchangeball(8);}
    Dann weisst du, ob mit dem ballarray etwas unvorhergesehenes angestellt wurde, und ob die Bedingung wirklich als wahr erkannt wird.

    grüsse,
    Hannes

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •