Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schachturnierorganisationsprogramm (STOP)
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 565
Wohnort: Jüterbog

BeitragVerfasst am: 19.07.2012, 23:18    Titel: Antworten mit Zitat

edit: vielleicht solltest du beide Drehrichtungen einbauen.
auf diversen Seiten im WWW wird im Uhrzeigersinn rotiert.
Ich hab keine Ahnung wie es in der Praxis gehandhabt wird:

Code:
dim shared as integer spieler,runden,ppr,merkespieler,rotation,r,i
redim shared as integer paarungen(1 to 1, 1 to 2)

input "Anzahl Spieler:",spieler
if spieler<3 then end

''Partien pro Runde,Rundenzahl festlegen
if (spieler mod 2) = 0 then'bei gerader Spielerzahl
  runden=spieler-1
  ppr=spieler/2
else                       'bei ungerader Spielerzahl
  runden=spieler
  ppr=(spieler-1)/2
end if

redim paarungen(1 to ppr, 1 to 2)

'Rutschen gegen Uhrzeigersinn
rotation=1 'Startspieler für Rotation festlegen
for r as integer=1 to runden
  if (spieler mod 2) = 0 then 'gerade Spielerzahl
        'Spieler mit höchster Nummer an Brett 1 "unten"
        paarungen(1,2)=spieler
        '"obere" Spieler setzen
        for i=1 to ppr
          paarungen(i,1)=rotation
          rotation +=1
          if rotation>(spieler-1) then rotation=1
        next i
        'restliche "untere" Spieler setzen
        for i=ppr to 2 step -1
          paarungen(i,2)=rotation
          rotation +=1
          if rotation>(spieler-1) then rotation=1
        next i
        rotation=paarungen(2,1)'rotation auf Brett 2 "oben" setzen
  else 'ungerade Spielerzahl
        '"obere" Spieler setzen
        for i=1 to ppr
          paarungen(i,1)=rotation
          rotation +=1
          if rotation>spieler then rotation=1
        next i
        '"untere" Spieler setzen
        for i=ppr to 1 step -1
          paarungen(i,2)=rotation
          rotation +=1
          if rotation>spieler then rotation=1
        next i
        rotation=paarungen(2,1)'rotation auf Brett 2 "oben" setzen
  end if

  'spezielle Brett-Dreh-Regel bei gerader Spielerzahl:
  if ((spieler mod 2) = 0) and ((r mod 2) = 0) then swap paarungen(1,1),paarungen(1,2)
  'generelle Brett-Dreh-Regel:
  for i=2 to ppr step 2
    swap paarungen(i,1),paarungen(i,2)
  next i

  'Ausgabe:
  print r & ": " ;
  for i=1 to ppr
    print paarungen(i,1)&"-"&paarungen(i,2)&" ";
  next i
  print
next r

sleep
end


/'
'Rutschen im Uhrzeigersinn
if (spieler mod 2) = 0 then rotation=2 else rotation=1 'Startspieler für Rotation festlegen
for r as integer=1 to runden
  if (spieler mod 2) = 0 then 'gerade Spielerzahl
        'Spieler mit Nummer 1 an Brett 1 "oben"
        paarungen(1,1)=1
        '"obere" Spieler setzen
        'rotation=merkespieler
        for i=2 to ppr
          paarungen(i,1)=rotation
          rotation +=1
          if rotation>spieler then rotation=2
        next i
        'restliche "untere" Spieler setzen
        for i=ppr to 1 step -1
          paarungen(i,2)=rotation
          rotation +=1
          if rotation>spieler then rotation=2
        next i
        rotation=paarungen(1,2)'rotation nach letzter Erhöhung(im FOR-NEXT-Block) zurücksetzen
  else 'ungerade Spielerzahl
        '"obere" Spieler setzen
        for i=1 to ppr
          paarungen(i,1)=rotation
          rotation +=1
          if rotation>spieler then rotation=1
        next i
        '"untere" Spieler setzen
        for i=ppr to 1 step -1
          paarungen(i,2)=rotation
          rotation +=1
          if rotation>spieler then rotation=1
        next i
        'rotation enthält jetzt nach letzter Erhöhung(im FOR-NEXT-Block) den Spieler der gerade aussetzt
  end if

  'spezielle Brett-Dreh-Regel bei gerader Spielerzahl:
  if ((spieler mod 2) = 0) and ((r mod 2) = 0) then swap paarungen(1,1),paarungen(1,2)
  'generelle Brett-Dreh-Regel:
  for i=2 to ppr step 2
    swap paarungen(i,1),paarungen(i,2)
  next i

  'Ausgabe:
  print r & ": " ;
  for i=1 to ppr
    print paarungen(i,1)&"-"&paarungen(i,2)&" ";
  next i
  print
next r
'/


Mutton


Zuletzt bearbeitet von Muttonhead am 20.07.2012, 16:27, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 20.07.2012, 14:39    Titel: Antworten mit Zitat

In der Praxis wird mal so und mal so rum gemacht.
Einmal ist es im Uhrzeigersinn und einmal Gegenuhrzeigersinn.

Es ist nicht vorgeschrieben, wie herum verfahren werden muss.
In der Regel verwendet man ein Computerprogramm dafür und da kann man in der Regel einstellen welcher Modus es ist. Bei meinem Programm kann man das einstellen wie herum verfahren wird. Zumindest gibt es da zwei Einstellmöglichkeiten.

Ich habe auch vor beídes mit einzubauen. Für Schweizer System müsste ich das Programm komplett umschreiben. Noch dazu ist Schweizer System unglaublich schwierig zu programmieren. Das müssten aber dann schon Profis schreiben.

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz