ALWIM
 
  
  Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
  | 
		
			
				 Verfasst am: 01.07.2012, 16: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 | 
			 
		  |