Zurück   klamm-Forum > klamm-Lose > Lose4Scripts

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06.07.2009, 05:31:56   #1 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard [PHP] Spielplan-Script

Servus,

ich hab mir eine kleine Tabelle gebastelt. Nun möchte ich aber noch einen Spielplan erstellen. D.h ich hab eine mySQL-Tabelle in der 18 Vereine stehen, ggf. auch mehr, und diese sollen nun einmal ein Hinrundenspiel bestreiten, einmal ein Rückrundenspiel.

Aber ich hab keinerlei Ahnung wie ich das nun anstellen soll wie ich das "berechne" und automatisch in eine mysql-Tabelle eintrage die folgende Felder hat: Heimmanschaft, Auswärtsmannschaft, Spieltag, Tore heim, Tore auswärts (beides erstmal 0).

Edit: http://www.teamopolis.com/tools/roun...generator.aspx - sowas will ich machen, double round robin halt, und das ergebniss soll direkt in eine Datenbank gehauen werden

Wer hilft mir da mal kurz?
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)

Geändert von m7media (06.07.2009 um 06:08:24 Uhr)
m7media ist offline   Mit Zitat antworten
Alt 06.07.2009, 07:14:14   #2 (permalink)
Forenneuling

ID: 345601
Lose-Remote

Reg: 19.03.2009
Beiträge: 3.620
Standard ...

Du meinst so etwas wie verkürzt bei 4 Mannschaften

1-2 3-1 1-4 2-1 1-3 4-1
3-4 2-4 3-2 4-3 4-2 2-3

?

Hilft Dir diese Seite

http: //www.liga-manager-online.de/h.../homepage.html

vielleicht weiter?
Nix los hier - Noch mehr nix los

Die Zauberfarbe ist #f5f5ff
Die Zauberfarbe ist #f5f5ff
K345601 ist offline   Mit Zitat antworten
Alt 06.07.2009, 07:16:19   #3 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

Zitat:
Zitat von Hiltwin Beitrag anzeigen
Du meinst so etwas wie verkürzt bei 4 Mannschaften

1-2 3-1 1-4 2-1 1-3 4-1
3-4 2-4 3-2 4-3 4-2 2-3

?

Hilft Dir diese Seite

http: //www.liga-manager-online.de/homepage/homepage/homepage.html

vielleicht weiter?
Genau sowas, nur will ich eben nicht diesen Liga-Manager nutzen sondern was eigenes. Aus bestimmten Gründen
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 07:33:04   #4 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Jeder soll mal gegen jeden spielen, oder wie soll das funktionieren?
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 06.07.2009, 07:38:34   #5 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

Richtig. Einfach gesagt: so wie die bundesliga.

als bildliche vorstellung bei vier teams:

Spieltag 1
Team 1 - Team 2
Team 3 - Team 4

Spieltag 2
Team 4 - Team 1
Team 2 - Team 3

Spieltag 3
Team 1 - Team 3
Team 2 - Team 4

Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 07:45:39   #6 (permalink)
Forenneuling

ID: 345601
Lose-Remote

Reg: 19.03.2009
Beiträge: 3.620
Standard ...

Soweit ich mich an die Tipp-Kick-Turniere meiner Kindheit erinnere, war das mit 4,8,16 immer zu händeln, aber mit 18 musste man sich einmal die Mühe machen, und beim Bundesligaspielplan die Vereine durch Zahlen ersetzen, wenn man ein eigenes Muster haben wollte ^^

Vielleicht hilft Dir ja der Ligamanager mit dem Zugang zur Berechnung wenigstens weiter.
Nix los hier - Noch mehr nix los

Die Zauberfarbe ist #f5f5ff
Die Zauberfarbe ist #f5f5ff
K345601 ist offline   Mit Zitat antworten
Alt 06.07.2009, 07:48:06   #7 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
function generateRoundRobinPairings($num_players) {
    
//do we have a positive number of players? otherwise default to 4
    
$num_players = ($num_players 0) ? (int)$num_players 4;
    
//set number of players to even number
    
$num_players = ($num_players == 0) ? $num_players $num_players 1;
    
//format for pretty alignment of pairings across rounds
    
$format "%0" ceil(log10($num_players)) . "d";
    
$pairing "$format-$format ";
    
//set the return value
    
$ret $num_players " Player Round Robin:\n-----------------------";
    
//print the rounds
    
for ($round 1$round $num_players$round++) {
        
$ret .= sprintf("\nRound #$format : "$round);
        
$players_done = array();
        
//print the pairings
        
for ($player 1$player $num_players$player++) {
            if (!
in_array($player$players_done)) {
                
//select opponent
                
$opponent $round $player;
                
$opponent += ($opponent 0) ? $num_players 1;
                
//ensure opponent is not the current player
                
if ($opponent != $player) {
                    
//choose colours
                    
if ($player == $opponent 2) {
                        if (
$player $opponent) {
                            
//player plays black
                            
$ret .= sprintf($pairing$opponent$player);
                        } else {
                            
//player plays white
                            
$ret .= sprintf($pairing$player$opponent);
                        }
                    } else {
                        if (
$player $opponent) {
                            
//player plays white
                            
$ret .= sprintf($pairing$player$opponent);
                        } else {
                            
//player plays black
                            
$ret .= sprintf($pairing$opponent$player);
                        }
                    }
                    
//these players are done for this round
                    
$players_done[] = $player;
                    
$players_done[] = $opponent;
                }
            }
        }
        
//print the last pairing (i.e. for the last player)
        
if ($round == 0) {
            
$opponent = ($round $num_players) / 2;
            
//last player plays white
            
$ret .= sprintf($pairing$num_players$opponent);
        } else {
            
$opponent = ($round 1) / 2;
            
//last player plays black
            
$ret .= sprintf($pairing$opponent$num_players);
        }
    }
    return 
$ret;

hab ich so im netz gefunden, problem daran ist nur das es ein einfaches Round-Robin ist, aber kein Double-Round-Robin, d.h es ist ohne Rückrunde Aber ich versteh dort eh nur Bahnhof.. aber vielleicht hilft es ja einem Programmierer der mir helfen wird
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 07:52:45   #8 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von m7media Beitrag anzeigen
Einfach gesagt: so wie die bundesliga.
Das versteht aber bei weitem nicht jeder
Zitat:
Zitat von m7media Beitrag anzeigen
Richtig.
Gut. Das schaffst du in 4 Zeilen Code.

Du musst es dir nur als Matrix vorstellen:
 1234
1X   
2OkX  
3OkOkX 
4OkOkOkX
Davon brauchst du nur das untere Dreieck, sonst spielen zwei Teams zweimal gegeneinander. Mit sich selber spielen is nicht, also die Diagonale weglassen. Werf alles in ein Array und misch es mit shuffle() mal gut durch.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 06.07.2009, 07:55:50   #9 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

Nun das wäre auch eine Lösung, aber die hat einen (the)Hacke(r)n
Es wäre nicht wirklich die Abwechslung Heimspiel, Auswärtsspiel, Heimspiel usw.
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 07:59:59   #10 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von m7media Beitrag anzeigen
Es wäre nicht wirklich die Abwechslung Heimspiel, Auswärtsspiel, Heimspiel usw.
Das sagt mir wieder viel Rate ich halt mal, was das heißen soll...

Meinst du das?
 1234
1X OkOk
2OkX  
3 OkXOk
4 Ok X
Falls ja, geh wie oben vor, nimm zusätzlich n alterierendes Flag mit, was im true-Flag die Team-Indizes vertauscht.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 06.07.2009, 08:02:11   #11 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

Was ich meine: Eine Mannschaft hat eigentlich immer die Abwechslung das sie erst Heim, Dann auswärts, dann wieder heim Spielt - das geht immer so weiter!

Und den Rest von deinem Post war leider nicht in meiner Sprache.
Machen wirs anders.

Derjenige der mir das so proggt wie ich es im ersten Post beschrieben hab kriegt 10.000.000 Lose, mehr hab ich derzeit nicht.. und damit alles seine richtigkeit hat, kommt der Thread in Lose4Scripts okay?
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 08:07:07   #12 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard

Zitat:
Zitat von m7media Beitrag anzeigen
Was ich meine: Eine Mannschaft hat eigentlich immer die Abwechslung das sie erst Heim, Dann auswärts, dann wieder heim Spielt - das geht immer so weiter!
Sie kann doch spielen, wo sie will Entspricht ja quasi meinem zweiten Vorschlag
Zitat:
Zitat von m7media Beitrag anzeigen
und damit alles seine richtigkeit hat, kommt der Thread in Lose4Scripts okay?
Richtig
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 06.07.2009, 08:11:36   #13 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

An sich kann Sie das, is ja für ne Fifa-Liga, da kontrolliert das eh keiner Aber irgendwie.. muss das doch sein, so von wegen Ordnungsliebende Deutsche und so

Aber leider reicht mein Programmierer-Wissen nun doch nicht wirklich aus um das umzusetzen. Hab schon mit ach und krach die dynamische Tabelle hinbekommen
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Alt 06.07.2009, 08:30:52   #14 (permalink)
Chancentod²
Benutzerbild von WhiZZler

ID: 85586
Lose-Remote

WhiZZler eine Nachricht über ICQ schicken
Reg: 06.05.2006
Beiträge: 656
Standard

ich hab hier nen snippet gefunden.. habe es kurz lokal getestet und es sieht so aus, als ob es genau das machen würde, was du willst.. die erstellten daten musst du dann halt noch in geeigneter form in ne datenbank schreiben..

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
<?php
    
/*
    ** Spielplan-Generator / Liga-Planer
    **
    **
    **
    ** Erweitert von Christian <linker@toter-link.de>
    **
    ** =================================
    ** Spielmodus: "Jeder gegen Jeden", Hin- und Rückspiele,
    ** mit spieltäglichem Wechsel zwischen Heim- und Gastspiel.
    ** Das Programm benötigt ein Array ($teams), welches die Teilnehmer enthält.
    **
    ** Es wird ein Array $plan erzeugt, das alle Hin- und Rückspiele enthält.
    ** Hierbei werden alle Spielpaarungen fortlaufend durchnummeriert.
    ** Das Array $plan halt folgenden Aufbau:
    ** $plan[$spieltag][$spielnummer]['H'|'G' = Heim- oder Gast-Team]
    */

    
$teams = array("eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun");

    
// Testen ob die Anzahl der Teams gerade ist
    // wenn nicht das Team "frei" hinzufügen.
    
if(count($teams) % ){
        
array_push($teams '[FREI]');
    }

    
$anz    count($teams);      // Anzahl der Teams im Array $teams
    
$paare  $anz/2;            // Anzahl der möglichen Spielpaare
    
$tage  $anz-1;            // Anzahl der Spieltage pro Runde
    
$spiele $paare*$tage;    // Anzahl der Spiele pro Hin-/Rück-Runde
    
$plan  = array();            // Array für den kompletten Spielplan
    
$xpos  $anz-1;            // höchster Key im Array $teams
    
$tag    0;                  // Zähler für Spieltag
    
$spnr  0;                  // Zähler für Spielnummer
    
$sppaar 0;                // Zähler für Spielpaar
    
$i      0;                    // Schleifenzähler
// ================================================================================
      
for ($tag=1$tag<$anz$tag++) {
        
array_splice ($teams11, array(array_pop($teams),$teams[1]));
        for (
$sppaar=0$sppaar<$paare$sppaar++) {
            
$spnr++;
            
// wechseln zwischen G und H -Spiel:
            
if (($spnr%$anz!=1) and ($sppaar%2==0)) {
                
$hteam $teams[$sppaar];
                
$gteam $teams[$xpos-$sppaar];
            }  else {
                
$gteam $teams[$sppaar];
                
$hteam $teams[$xpos-$sppaar];
            }
            
$plan[$tag][$spnr]["G"] = $gteam;                // für Hin-Runde
            
$plan[$tag][$spnr]["H"] = $hteam;                // für Hin-Runde
            
$plan[$tag+$tage][$spnr+$spiele]["G"] = $hteam;  // für Rück-Runde
            
$plan[$tag+$tage][$spnr+$spiele]["H"] = $gteam;  // für Rück-Runde
        
}
      }
      
ksort($plan); /* nach Spieltagen sortieren */
// ================================================================================

    /* Ausgabe des gesamten $plan */
    
$rueck count($plan)/;
    echo 
"Spielplan: <br>";
    echo 
"********* Hin-Runde *********<br><br>\n" ;
    foreach(
$plan as $spieltag => $v1) {
        foreach(
$v1 as $spielnummer => $v2) {
          echo 
"SpTag: ";                echo $spieltag;
          echo 
":&nbsp;&nbsp;SpNr: ";    echo $spielnummer;
          echo 
":&nbsp;&nbsp;&nbsp;";    echo $plan[$spieltag][$spielnummer]['H'];
          echo 
" - ";                    echo $plan[$spieltag][$spielnummer]['G'];
          
/* Hier könnte jetzt ein "INSERT INTO TABLE ..." mit den vg. '$values' erfolgen. */
          
echo "<br>";
        }
        if (
$spieltag == $rueck){
            echo 
"<br>********* Rück-Runde *********<br>\n" ;
        }
        echo
"<br>";
    }
    echo 
"**********************************************<br>Ende der Liste <br>";
?>
das problem, das ich auf den ersten blick sehe ist, dass die paarungen wohl nicht zufällig erstellt werden.. du würdest also wohl jede saison den gleichen spielplan haben.. aber da müsste ein array_shuffle() abhilfe schaffen

Geändert von WhiZZler (06.07.2009 um 08:32:34 Uhr)
WhiZZler ist offline   Mit Zitat antworten
Alt 06.07.2009, 08:33:05   #15 (permalink)
since 2001
Benutzerbild von m7media

ID: 324964
Lose-Remote

Reg: 07.05.2006
Beiträge: 856
Standard

Ich versuchs mal umzuschreiben Wenn ich's hinkrieg kriegst du trotzdem lose - du hast's gefunden
Wachse, du Freiheit der deutschen Eichen
wachse empor über unsere Leichen!
Vaterland, höre den heiligen Eid
!
Bundeslied vor der Schlacht (Theodor Körner 1813)
m7media ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
(s) Newsletter, Bannerwerbe-Script und ein Script à la StudiVz, wer-kennt-wenn oder Lokalisten YKW Lose4Scripts 7 17.05.2008 02:16:35
Suche Bettel Script , konto stand Script, PN sytem, anmeldungs Script Lach Lose4Scripts (erledigt) 7 14.10.2007 14:35:36
[S] WM-Spielplan 2006 mit allen Ergebnissen! Tomita Gott und die Welt 11 01.02.2007 14:28:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55:35 Uhr.