ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 01.07.2012, 17:12 Titel: Algorithmus Rutschsystem + Doppelrundig |
|
|
Code: | dim shared as integer spieler,runden,ppr,startwert
redim shared as integer paarungen(1 to 1, 1 to 2)
declare sub ErstellePaarungen (runde as integer)
input "Anzahl Spieler:",spieler
if spieler<3 then end
if spieler/2 <> int(spieler/2) then spieler +=1' wenn ungerade um eins erhöhen
runden=spieler-1
ppr=spieler/2 'Partien pro Runde
redim paarungen(1 to ppr, 1 to 2)
startwert=1
for r as integer=1 to runden
ErstellePaarungen (r)
print "R" & r & ": ";
for i as integer=1 to ppr
print paarungen(i,1) & "-" & paarungen(i,2) &" ";
next i
print
startwert=paarungen(ppr,2)
next r
sleep
end
sub ErstellePaarungen (runde as integer)
dim as integer rotation
rotation=startwert
for i as integer=1 to ppr
paarungen(i,1)=rotation
rotation +=1
if rotation>runden then rotation=1
next i
for i as integer=ppr to 2 step -1
paarungen(i,2)=rotation
rotation +=1
if rotation>runden then rotation=1
next i
paarungen(1,2)=spieler
if runde/2 = int(runde/2) then swap paarungen(1,1),paarungen(1,2)' bei jeder geraden Runde erstes Paar tauschen
end sub |
Ich habe obigen Code und wollte euch mal fragen, ob ihr eine bessere Lösung für Rutschsystem bzw. eine bessere Lösung für Doppelrundig kennt. Ich habe zwar eine Lösung gefunden, aber vielleicht gibt es eine bessere elegantere Lösung?
Bei Doppelrundig habe ich einfach die Rundenzahl mal 2 genommen und bei der Ausgabe die Paarungen einfach getauscht.
Bei 50 Runden habe ich dann ab Runde 26 anstatt Code: | print paarungen(i,1) & "-" & paarungen(i,2) &" "; | einfach
Code: | print paarungen(i,2) & "-" & paarungen(i,1) &" "; |
genommen. Ich bin mir aber sicher es gibt eine bessere Lösung.
Bei Rutschsystem wo jeder einen Platz bei jeder Runde weiter rutscht, habe ich auch so eine ähnliche Lösung wie bei Doppelrundig im Kopf. Aber bevor ich alles in den Quellcode einfüge, will ich von euch nochmals die Ideen wissen. Vielleicht hat der ein oder andere eine bessere Idee als ich?
edit 2.7.2012: So ganz scheint meine Idee nicht zu funktionieren. Bei Doppelrundig und nur 2 Teilnehmern, gibt es eine falsche Paarung in Runde 2. Bei 40 Teilnehmern gibt es einen Grafikfehler, der nur durch einen Print-Satz behoben werden kann??!! Schon merkwürdig das ganze. Von der Theorie her würde es funktionieren.
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|