Ergebnis 1 bis 13 von 13

Thema: Problem beim Umgang mit Array

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Okay, erstmal vielen Dank.

    Das die Arrays hier genauso funktionieren, wie in C hatte ich bereits vermutet... leider ist das bei dem komischen Ruby kaum zu erkennen, dass es dort auch klassische Zeiger gibt...

    Die Variante mit @skills.dup hat übrigens auch nicht funktioniert. Eigentlich hat gar nichts funktioniert, der Effekt war bei jeder Änderung der selbe. Jetzt hab ich es auf die ganz grobe Art gemacht. (Siehe ganz unten.)

    Zitat Zitat
    Was mich im Moment noch stutzig macht ist die eigenartige If-Bediengung
    Code:

    if waffe.include?("")

    Das macht nicht sonderlich viel Sinn den leeren String hier zu verwenden, jeder String enthält den leeren String. Das ist als ob du " if true " schreiben würdest nur aufwendiger...
    Das war ein Fehler aus einer alten Variante, den ich leider mitkopiert hatte. Ich hab den kurz, nachdem ich hier gepostet hatte, noch entfernt. Leider warst du da schon am schreiben " Das machte an der Stelle wirklich kein Sinn.

    Am Ende steht allerding "if !waffe.include?("")", das macht tatsächlich Sinn. Shisu hat schon Recht. Die !x-Parameter stehen tatsächlich im Namen der Waffe und werden mit einer Funktion aus dem Namen raus genommen und in ein Array gespeichert. Dieses wird dann hier wieder an die Funktion übergeben.
    Wenn kein Parameter im Namen steht, dann ist steht in dem Array nur der leere String. Und dann sollen nur alle Fertigkeiten entfernt werden. Passt also schon.

    Das mit .. oder ... bei for-Schleifen war mir allerdings neu. Hab mich da schon in anderen Skripts öfter mal gewundert, warum da manchmal von 0 bis .size und manchmal 1 bis .size drin war und beides funktioniert hat. Dass es dann an dem . mehr oder weniger liegt, okay.

    Das break war ebenfalls beabsichtigt, weil nur Skills mit einer ID < 25 entfernt werden. Alle anderen bleiben drin.

    Wie gesagt, ich hab es jetzt auf die harte Tour gemacht, weil alles andere nicht mehr funktioniert hat und ich auch langsam frustriert war.

    Code:
      def angriffe_setzen(waffe)
        if waffe.include?("!M")
    # Machtwaffen      
          @skills.push(3)        # Angriff
        elsif waffe.include?("!S")
    # Schusswaffen      
          @skills.push(2)        # Angriff
          @skills.push(5)        # Gezielter Angriff
        elsif !waffe.include?("")
    # Normale Waffen
          @skills.push(1)        # Angriff
          if waffe.include?("!r") or waffe.include?("!m")
            @skills.push(4)      # Gezielter Angriff
          end
          if waffe.include?("!m")
            @skills.push(24)      # Meucheln
          end
        end  
        i = 0
        while i < @skills.size
          if @skills[i] < 25
            @skills.delete_at(i)
            i -= 1
          else
            break
          end
          i += 1
        end
        @skills.sort!
      end
    Ich sage euch vielen Dank, soweit wieder alles schön.

    Geändert von Rettan (12.12.2011 um 12:31 Uhr)

Berechtigungen

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