Gamestudio Links
Zorro Links
Newest Posts
freewhyblogelsewhere
by 9489cpjf. 06/03/24 06:06
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 1,301 guests, and 9 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19056 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
var's nach größe ordnen #207164
05/18/08 07:32
05/18/08 07:32
Joined: Mar 2008
Posts: 25
K
Karotte Offline OP
Newbie
Karotte  Offline OP
Newbie
K

Joined: Mar 2008
Posts: 25
Hallo,

gibts es eine einfache funktion, var's nach größe zu ordnen?

Code:
Code:
name_1 = int(random(50));
name_2 = int(random(50));
name_3 = int(random(50));
name_4 = int(random(50));
name_5 = int(random(50));


Und da soll jetzt, wenn z.B. name_2 am größten ist, soll
Code:
name_2 = 1;

sein und nach der größe jede variable einen wert haben (1,2,3,4 und 5)

Re: var's nach größe ordnen [Re: Karotte] #207168
05/18/08 08:23
05/18/08 08:23
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
die variable mit dem größten wert aus der int(random(50)); anweisung soll also den neuen wert 1 zugewiesen bekommen, die darauffolgende dann 2 etc. (wie eine rangliste) ?

Re: var's nach größe ordnen [Re: Xarthor] #207176
05/18/08 09:17
05/18/08 09:17
Joined: Mar 2008
Posts: 25
K
Karotte Offline OP
Newbie
Karotte  Offline OP
Newbie
K

Joined: Mar 2008
Posts: 25
ja

Re: var's nach größe ordnen [Re: Karotte] #207179
05/18/08 09:52
05/18/08 09:52
Joined: Jul 2001
Posts: 6,904
H
HeelX Offline
Senior Expert
HeelX  Offline
Senior Expert
H

Joined: Jul 2001
Posts: 6,904
Ich gebe dir jetzt nur Hinweise, damit du dir die Lösung selbst erarbeiten kannst:


  • Für eine listenförmige Darstellung bzw. organisierte Form von Variablen bieten sich arrays hervoragend an.
  • Wenn du einer Liste mit einem Primärschlüssel wie z.B. Usernummern oder so sekundäre (zusätzliche) Daten hinzufügen willst, wie in diesem Fall ein "Punktestand", dann bietet sich ein 2-dimensionales array an, wobei du jede Zeile für einen Eintrag steht und die Spalten für die einzelenen Werte pro Eintrag. Der erste könnte deine Usernummer sein, und der zweite die "Punkte"
  • Es gibt diverse Lösungen, wie man Listen sortiert. Suche nach Sortieralgorithmen. Der einfachste zu verstehene sollte Bubblesort sein. Wichtig bei der Sortierung von 2D Arrays ist das Tauschen von ganzen Zeilen.
  • Wenn du das Array sortiert hast, kannst du anhand der Zeilennummer und der Usernummer die Position ablesen.


Arbeite das in dieser Reihenfolge ab und du wirst, denke ich mal, erfolgreich sein. Viel Erfolg!

Re: var's nach größe ordnen [Re: HeelX] #207180
05/18/08 10:10
05/18/08 10:10
Joined: Mar 2008
Posts: 25
K
Karotte Offline OP
Newbie
Karotte  Offline OP
Newbie
K

Joined: Mar 2008
Posts: 25
und wie erstellt man ein 2d - array?

erstellt man des so?

var array[5][2];

Last edited by Karotte; 05/18/08 10:43.
Re: var's nach größe ordnen [Re: Karotte] #207203
05/18/08 12:27
05/18/08 12:27
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Wenn du Lite-C benutzt: jein var array[5][5] wäre richtig, afaik.
In C-Script gibts 2d-arrays nicht, man kann sie aber simulieren indem man ein array mit doppelter größe verwendet.
Bei 5 werten z.b.
var array[10]

Dann könntest du die plätze 0 <= i < 5 für die eig. werte nehmen und die
plätze 5 <= k < 10 für den jeweiligen sekundär wert.

Falls du c-script benutzt (dateiendung ist .wdl!) könntest du dein script auch auf ein array umstellen (1d array) und den bubble sort algorithmus verwenden den ich grad aus langerweile raus geschrieben habe.
Er funktioniert mit meinen test werten, kann aber u.U. noch verschönert werden.
Jedoch stimme ich HeelX zu, dass du soetwas mit ein bisschen nachforschen auch selber lösen könntest.

Dein script hätte dann die form:
Code:
function bubble_sort(&_array); // bubble sort prototype

var name[5];

function name_assignValues()
{
  name[0] = int(random(50));
  name[1] = int(random(50));
  name[2] = int(random(50));
  name[3] = int(random(50));
  name[4] = int(random(50));

  bubble_sort(name);
}


// Bubble sort function:
function bubble_sort(&_array)
{
	var i;
	var k;
	var buffer;
	
	i = 0;
	k = 0;
	buffer = 0;
	
	while(k < 5)
	{
		if(_array[i] > _array[i+1])
		{
			buffer = _array[i];
			_array[i] = _array[i+1];
			_array[i+1] = buffer;
		}
		else
		{
			k += 1;
		}
	
                i = cycle(i + 1, 0, 3);
		
		if(i == 0 && k < 4)
		{
			k = 0;
		}
	}
	
	//error("Bubble Sort fertig");
}


edit: Dieser bubble sort algorithmus funktioniert allerdings nur mit arrays die 5 elemente haben.

edit #2:
Habe den algorithmus bzw. die funktion überarbeitet, man übergibt nun den array und die anzahl der darin befindlichen elemente:
Code:
function bubble_sort(&_array, _nroFields)
{
	var i = 0; // element index
	var k = 0; // sort counter
	var buffer = 0; // buffer var for sorting
	
	while(k < _nroFields)
	{	
		// is the value of a lower element higher than the value of a higher element?
		if(_array[i] > _array[i+1])
		{
			buffer = _array[i]; // safe higher value in buffer
			_array[i] = _array[i+1]; // copy lower value in lower element
			_array[i+1] = buffer; // copy buffer into higher element
		}
		else // order of elements is correct
		{
			// add one to sort counter
			k += 1;
		}
		
		i += 1;
		if(i > (_nroFields-2)) { i = 0; }
		
		// new sort cycle and sorting not finished?
		if(i == 0 && k < (_nroFields-1))
		{
			// reset sort counter
			k = 0;
		}
	}
}


Last edited by Xarthor; 05/18/08 12:56. Reason: new algorithm
Re: var's nach größe ordnen [Re: Xarthor] #207228
05/18/08 15:39
05/18/08 15:39
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
Originally Posted By: Xarthor
Wenn du Lite-C benutzt: jein var array[5][5] wäre richtig, afaik.


ne, es is array[5][2] oder noch eher array[2][5].

Re: var's nach größe ordnen [Re: Joey] #207230
05/18/08 15:49
05/18/08 15:49
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Oh ja, da hast du natürlich Recht Joey. [5][5] wäre ein 5x5 feld, also mit 25 feldern insgesamt... sorry.

Re: var's nach größe ordnen [Re: Xarthor] #207267
05/18/08 20:17
05/18/08 20:17
Joined: Jul 2005
Posts: 1,930
Austria
Dark_samurai Offline
Serious User
Dark_samurai  Offline
Serious User

Joined: Jul 2005
Posts: 1,930
Austria
Quote:
Der einfachste zu verstehene sollte Bubblesort sein.


Das sagen zwar immer alle, aber ich bin da total anderer Meinung. Der meiner Meinung nach einfachste ist dieser (keine Ahnung ob der nen Namen hat, den habe ich mir selbst mal ausgedacht):
-Größte Zahl aus Array auslesen
-in 2. Array an 1. Stelle speichern
-Die Zahl aus dem 1. Array rauslöschen
-von vorne nur diesmal Zahl im 2. Array an 2. Stelle speichern
-usw.

Das mit dem Bubblesort ist zwar vom Ablauf her leichter (immer 2 Zahlen vertauschen) aber das das überhaupt zu einer richtigen Sortierung führt ist meiner Meinung nach schon nicht mehr so einfach zu verstehen.
Aber wie immer ist das nur meine Meinung wink

Dark_Samurai


ANet - A stable and secure network plugin with multi-zone, unlimited players, voip, server-list features,... (for A7/A8)!
get free version
Re: var's nach größe ordnen [Re: Dark_samurai] #207280
05/18/08 21:53
05/18/08 21:53
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
deins ist eindeutig leichter zu verstehen wie bubblesort, aber ziemlich langsam.

Page 1 of 2 1 2

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1