Ergebnis 1 bis 20 von 354

Thema: It's Quiz Time!!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Das ist vielleicht der einfachste, aber darum gehts ja nicht.

  2. #2
    sofern man die werte irgendwie von 1 bis 99 umwandeln kann, wurd ich sagen es ist wenn man nen map event hat mit bis 99 seiten (was max ist wenn ich mich recht erinnere), und dann halt diesem event rufen mit n variabel die zu der seite passt. hat man mehr als 99 werten könnte man nen branch haben der guckt ob der wert über 99 ist, wenn ja nimm 99 davon und mach einem neuen check bis es unter 99 ist und dann dem entsprechend event rufen.

    alternativ könnte man auch nen bedingungs pyramide bauen a la binärbaum, bzw. man hat erst ein branch mit dem mittelwert und guckt dann ob der wert den man hat gleich ist, wenn nicht dann obs kleiner oder grösser ist. wenn grösser dann geht man im "true" teil, ansonsten geht man in dem "else" teil, wo neue bedinungen mit nem neuen mittelwert für dem entsprechend restierende zahlen drin sind, bis man dem korrekten wert gefunden hat.

  3. #3
    if(>50)
    jump to LOL
    else


    if(1)
    else

    if(2)
    else
    if(3)
    else
    end

    end

    end

    Label: LOL

    if(100)
    else
    end

    end

  4. #4
    Zitat Zitat von Kazesui Beitrag anzeigen
    sofern man die werte irgendwie von 1 bis 99 umwandeln kann, wurd ich sagen es ist wenn man nen map event hat mit bis 99 seiten (was max ist wenn ich mich recht erinnere), und dann halt diesem event rufen mit n variabel die zu der seite passt. hat man mehr als 99 werten könnte man nen branch haben der guckt ob der wert über 99 ist, wenn ja nimm 99 davon und mach einem neuen check bis es unter 99 ist und dann dem entsprechend event rufen.
    Es kann 100 Seiten haben. Insofern wäre das sogar noch schneller als ich eigentlich gedacht habe. Dafür bekommst du das Prädikat richtiger als richtig.

    Zitat Zitat von Kazesui Beitrag anzeigen
    alternativ könnte man auch nen bedingungs pyramide bauen a la binärbaum, bzw. man hat erst ein branch mit dem mittelwert und guckt dann ob der wert den man hat gleich ist, wenn nicht dann obs kleiner oder grösser ist. wenn grösser dann geht man im "true" teil, ansonsten geht man in dem "else" teil, wo neue bedinungen mit nem neuen mittelwert für dem entsprechend restierende zahlen drin sind, bis man dem korrekten wert gefunden hat.
    Das war das, was ich eigentlich gemeint hatte.

    Zitat Zitat von Corti Beitrag anzeigen
    if(>50)
    jump to LOL
    else


    if(1)
    else

    if(2)
    else
    if(3)
    else
    end

    end

    end

    Label: LOL

    if(100)
    else
    end

    end
    Das kapier ich jetzt grade nicht...

    Wenn >50, springst du zu wenn 100; und wenn <=50 fragst du aber einzeln ab? Vielleicht meinst du ja auch einen Binärbaum, dann wärs richtig, aber Kazesui war schneller und ist demnach dran.

  5. #5
    Habe mir schon gedacht dass du an dem Binärbaum gedacht hast, und habe desshalb den auch erwähnt.
    aber mal zum frage:

    Wie kann man mit event code herausfinden ob ein event innerhalb eines Kreisses ist mit nur einem Bedingung/Conditional branch?

    zum beispiel:
    Die 'x' markiert Tiles um einem Punkt 'O', und man soll herausfinden ob ein Event innerhalb die Fläche von 'x' drin ist.
    Code:
       xxx
      xxxxx
     xxxxxxx
    xxxxxxxxx
    xxxxOxxxx
    xxxxxxxxx
     xxxxxxx
      xxxxx
       xxx
    Dafür soll nur einem Conditional branch benutzt werden, aber Variabel Operationen könnt ihr so viel wie ihr wollt benutzen. Der Kreis im Code is auch nur ein Beispiel und der Kreis muss nicht diese grösse haben, solange es halt ein Kreis bildet.

    Für die, die ein bisschen Mathe können dürfte es nicht so schwer sein

  6. #6

    Users Awaiting Email Confirmation

    Hero X - ZielX
    Hero Y - ZielY

    If ZielX is greater than -4
    >If ZielX is less than 4
    >>If ZielY is greater than -4
    >>>If ZielY is less than 4
    ZIEL IST IM RADIUS

  7. #7
    erstens wäre dass 4 conditional branches stadt eine, und zweitens wäre das kein Kreis sondern ein Viereck.
    dein vorschlag wurde etwa so aussehen
    Code:
    xxxxxxx
    xxxxxxx
    xxxxxxx
    xxxOxxx
    xxxxxxx
    xxxxxxx
    xxxxxxx

  8. #8
    Pseudocode:

    Code:
    XTemp = ZentrumobjektX - ZielobjektX 
    YTemp = ZentrumobjektY - ZielobjektY
    (Differenzen berechnen)
    
    If XTemp == -4
      If YTemp >=-1
        If YTemp <=1
          DRIN
        End
      End
    End
    
    If XTemp == -3
      If YTemp >=-2
        If YTemp <=2
          DRIN
        End
      End
    End
    
    If XTemp == -2
      If YTemp >=-3
        If YTemp <=3
          DRIN
        End
      End
    End
    
    If XTemp == -1
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 0
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 1
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 2
      If YTemp >=-3
        If YTemp <=3
          DRIN
        End
      End
    End
    
    If XTemp == 3
      If YTemp >=-2
        If YTemp <=2
          DRIN
        End
      End
    End
    
    If XTemp == 4
      If YTemp >=-1
        If YTemp <=1
          DRIN
        End
      End
    End
    Ich gehe hiermit die X-Spalten nacheinander ab und grenze die dafür erlaubten Y-Werte ein.
    Ist eigentlich ganz simpel.

    Um den Fall zu integrieren, dass es ausserhalb liegt, benutzt man entweder nen doppelten
    Switch oder verschachtelt die Fälle in ELSEs.

    Geändert von MagicMaker (21.11.2010 um 15:23 Uhr)

  9. #9
    Code:
    Event X = Event X - Hero X
    Event Y = Event Y - Hero Y
    if(Event X < 0) 
      Event X *= -1
    if(Event Y < 0)
     Event Y *= -1
    Event X  += Event X
    if(Event X <= AbstandInTiles) {  // zb 4
       //Held steht im Bereich Karoförmig (oder was das da is xD)
       ....
    }
    Für ein richtigen Kreis geht btw auch (Man muss nur das zusammen rechnen von X und Y anders machen)

    Edit:
    Habt ihr beiden da oben nicht gelesen das nur ein "Branch" genutzt werden soll?

    Geändert von R.D. (21.11.2010 um 15:59 Uhr)

  10. #10
    Ich muss mich schlecht ausgedrückt haben. Es soll nur 1 bedingung / conditional branch / fork / if statement benutzt werden.

    Es geht aber in die richtige richtung, ist schon richtig erstmal den differenzen zu finden.

    R.D. ist schon auf was drin, ist aber immernoch 3 Conditional branches, und es ist immernoch da nicht wirklich ein Kreis, sondern ein anderem karoförmiges Viereck wie du selber geschrieben hast. Und es ist genau nach diesem "extra" mit dem zusammen rechnen von X und Y ich aus bin.
    mit diesem extra braucht man die beiden branches die nachguckt ob eine der werte negativ sind nicht.

  11. #11
    Setz auf den Kreis ein Spezialterrain und catche die TerrainID von dem Zielobjekt.
    Das geht mit einer einzigen Bedingung.

  12. #12
    @ Kazesui

    Vielleicht ja auch so?:



    Ich denke mal das war nicht gemeint aber so ungefähr würd
    ich es machen und dann bei jemdem Schritt das Ereigniss neu aufrufen lassen.

    Lg
    Multi-Master1988

  13. #13
    Das Problem in deiner Variante ist, du wolltest sicher abfragen ob jemand auf einer genauen
    Stelle steht (nichtmal das scheint korrekt gelöst worden zu sein). Hier haben wir allerdings
    einen Toleranzkreis der mit einer einzigen Bedingung abgefragt werden soll, ausser der
    Möglichkeit in meinem vorherigen Post fällt mir dazu nicht wirklich nochwas ein.

    Ausser vielleicht mit ein paar Pointern die die gleiche Fork immerwieder neu aufrufen,
    nur dadurch halt verändern.

Berechtigungen

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