Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1037 Wohnort: Niederbayern
|
Verfasst am: 21.11.2007, 18:48 Titel: SWAP |
|
|
Guten Abend!
Ich habe eine kleines Problem, und wenig Zeit im Internet.
Es gibt ja den Befehl SWAP. Dieser Befehl sortiert 10 Namen und deren zugehörigen Punktezahl. Da es aber sein kann, dass zwei oder mehrere Spieler gleiche Punktezahl haben, möchte ich diese durch eine gesonderte Feinwertung nochmal extra sortieren. Wie kann man sowas einfach und schnell programmieren?
Mit freundlichen Grüßen
ALWIM _________________ SHELL SHUTDOWN -s -t 05
Zuletzt bearbeitet von ALWIM am 27.11.2007, 16:00, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.11.2007, 18:58 Titel: |
|
|
Das kann man nicht pauschal lösen. Dazu müssten wir deine Feinkriterien kennen. Das könnte so gehen...
Code: |
[...]
If Spieler(i).Punktezahl = Spieler(j).Punktezahl THEN
If Spieler(i).Irgendwas > Spieler(j).Irgendwas THEN
Swap [...]
Else
[...]
EndIf
ElseIf Spieler(i).Punktezahl > Spieler(j).Punktezahl THEN
Swap [...]
EndIf
[...]
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Elvis
Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 21.11.2007, 21:41 Titel: |
|
|
Einfach die gleichen Punktezahlen unterschiedlich machen, im Bereich einer Nachkommastelle. Damit können bis zu zehn Platzierte die gleiche Punktezahl besitzen, ohne dass der Algo an Wirkung verliert. Also bspw.:
Code: |
FOR i = 1 TO 10
IF i > 1 AND Spieler(i) = Spieler(i-1) THEN Spieler(i) = Spieler(i) + 0.1
NEXT
|
Man muss eben im oben aufgeführten Beispiel noch eine Abfrage hinzufügen, ob der vorangegangenen Punktzahl bereits eine Nachkommastelle hinzuaddiert wurde und, wenn ja, welche.
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1037 Wohnort: Niederbayern
|
Verfasst am: 27.11.2007, 16:05 Titel: |
|
|
habe schon eine kleine lösung gefunden.
bei schach gibt es ja die feinwertung sonneborn-berger-system.
nach diesem prinzip wollte ich es machen. vielleicht kriege ich es noch so hin dass es passt.
mit freundichen grüßen
alwim _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
|