• Anmelden

Expresseon

unregistriert

1

Montag, 17. August 2009, 14:40

Variablen ordnen

Ich suche ein Skript, dass drei bis zu acht Variablen der Größe nach ordnet. Die größte Zahl soll am Anfang stehen. Wichtig ist, dass problemlos unabhängig der Anzahl der Variablen geordnet wird. Mal sind es 3, mal 7, mal 4...

Viele Grüße ~ Expresseon

2

Montag, 17. August 2009, 15:04

und was sollst du dann daraus bekommen?

mach die variabeln in einen Array, und nutze dann die sort methode
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

Expresseon

unregistriert

3

Montag, 17. August 2009, 15:07

Wenn sie geordnet sind, sollen ihre Werte in 1,2,3... umgeändert werden (1 = größte Variable). Hab ich vergessen zu sagen.

4

Montag, 17. August 2009, 19:17

Ich hoffe ich hab dich richtig verstanden:

Ruby Quellcode

1
2
3
array = [5,2,4,7,1]
array.sort!
array.reverse!


Zitat

Wenn sie geordnet sind, sollen ihre Werte in 1,2,3... umgeändert werden (1 = größte Variable). Hab ich vergessen zu sagen.

Ich hab da jetzt mal kurz drüber nach gedacht und wäre das sortieren nicht total sinnlos,
wenn die Werte eh ersetzt werden? Dann kannst du auch einfahc nen array mit der gleichen
Anzahl an Zahlen erstellen und die entsprechend festlegen z.B. so

Ruby Quellcode

1
2
3
4
for i in 1..array.size
arraywasauchimmer.push i
end
arraywasauchimmer.sort!

5

Montag, 17. August 2009, 21:01

hier mal meins

Ruby Quellcode

1
2
3
4
def var_sort(*args)
n=0
args.map {|i| [i,$game_variables[i]]}.sort { |a,b| -(a[1] <=> b[1])}.each {|i| $game_variables[i[0]]= n+=1}
end

brauchst du dafür ne erklärung?

Edit: koregiert und optimiert

das funktioniert so:
an var_sort übergibst du wie ids der $game_variables

Ruby Quellcode

1
args.map {|i| [i,$game_variables[i]]} 
holt sich sie werte

Ruby Quellcode

1
.sort { |a,b| -(a[1] <=> b[1])}
sortiert nach dem größten

Ruby Quellcode

1
.each {|i| $game_variables[i[0]]= n+=1}
speichert n+1 in die vars
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hanmac« (17. August 2009, 21:35)


Expresseon

unregistriert

6

Montag, 17. August 2009, 21:23

@ Hanmac: Ja.

Ich komm selber nicht mehr weiter.
Also ich benötige das Ordnen für die Kampfreihenfolge. Die Eingangsvariablen sind Tempowerte.
Der schnellste seit jetzt mal Hans und es sind 5 Kampfteilnehmer, womit er per Switch in der 1., 6., 11., 16... Runde drankommen soll. Der Zweitschnellste entsprechend in der 2., 7., 12... Runde. Ich hab viel überlegt, aber weiß nicht mehr, wie ich es umsetzen soll.

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

7

Dienstag, 18. August 2009, 17:08

Zu den Befehlen, schau doch einfach mal in der Help unter "Array" nach.
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

Ähnliche Themen

Social Bookmarks