Gå til innhold

Trenger tips til generering av kampprogram


Anbefalte innlegg

Hei og hå!

Håper på noen gode tips fra noen da jeg desverre ikke klarer å tenke helt klart når det gjelder dette problemet.

 

Jeg får inn X antall lag fra en database. Av disse skal det lages kampprogram, hvor lagene skal spille to ganger mot hverandre. Altså både HJEMME og BORTE.

 

Slik jeg har tenkt det:

 

 

Får inn 4 lag i en array: Liverpool, Juventus, Milan, Newcastle, disse blir tatt inn med teamid.

Liverpool = 1, Juventus = 2, Milan = 3, Newcastle = 4.

 

arrayen ser slik ut da uten det som står i parantes:

$aTeamArray(

0 => 1(Liverpool),

1 => 2(Juventus),

2 => 3(Milan),

3 => 4(Newcastle)

)

 

Liverpool - Juventus

Liverpool - Milan

Liverpool - Newcastle

Juventus - Liverpool

Juventus - Milan

Juventus - Newcastle

Milan - Juventus

Milan - Liverpool.

Milan - Newcastle

Newcastle - Liverpool

Newcastle - Juventus

Newcastle - Milan

 

Det er altså totalt 6 runder som skal spilles, med et totalantall kamper på 24 kamper

12 hjemmekamper, 12 bortekamper.

 

 

Tenkte kanskje på å lage en løkke som går igjennom alle lagene, med en indreløkke som går igjennom motstanderen.

 

Noe slikt:

$aNewArray= array();
$iNumberOfTeams = 4   (ut i fra antall rader fra databasen)

for($iCounter = 0; $iCounter < $iNumberOfTeams; $iCounter++)   
{
 for($iCounterinner = 0; $iCounterinner < $iNumberOfTeams; $iCounterinner++)
 {

	   if($iCounterinner != $iCounter)		// For at lag nr1 ikke skal spille mot lag nr1
		{
			 $aNewArray['team' . $iCounterinner] = array($aTeamArray[$iCounterinner] => $aTeamArray[$iCounter])
			 //$aNewArray['team0'] vil inneholde en ny array med bortelag som key og hjemmelag(seg selv) som value.
		}
 }
}

Koden er litt endret på enn det jeg gjorde tidligere så jeg har ikke fått testet denne koden enda da jeg ikke sitter på den maskinen jeg jobber på.

 

Videre må jeg få samlet alle kampene og delt dem inn i runder.

 

 

Men er det noen andre som har noen bedre tips til hvordan jeg kan gjøre dette?

 

Takk på forhånd

Endret av peskungen
Lenke til kommentar
Videoannonse
Annonse
Noe som dette?

<?php
$aTeamArray = array('Liverpool','Juventus','Milan','Newcastle');

foreach($aTeamArray as $home)
{
	foreach($aTeamArray as $team)
	{
			if($home != $team)
			{
					echo $home.'-'.$team."<br>\n";
			}
	}
	echo "<br>\n";
}
?>

 

Mysql hentinga klarer du vell sjøl

 

Mysql hentinga er allerede gjort ;), men takker for hjelpen... skal teste senere ikveld ;)

Lenke til kommentar
Skal funke det der (gjorde nå det hos meg)

 

Ikveld har jeg brukt opp hjernekapasiteten. Har prøvd og prøvd og prøvd, og er nære ved å klare det, men bah... jeg spør om tips her nuh:

 

Det skal lages kampoppsett utifra arrayen jeg har her.

Akkurat denne forutsetter at antallet lag i arrayen er partall

skal seff kunne lage kampoppsett hvis det er oddetall også

 

$aTeamArray[0]		= 'Manu';
$aTeamArray[1] 		= 'Liverpool';
$aTeamArray[2]		= 'Newcastle';
$aTeamArray[3] 		= 'Bolton';

$iNumberOfRounds = (count($aTeamArray)*2)-2;  //Antall runder som skal spilles.
$iNumberOfMatchesPerRound = count($aTeamArray)/2; //Antall kamper per runde

 

Det skal altså lages et kampprogram, helst at ett lag spiller annehver runde hjemme.

 

For denne skal kampene se slik ut:

 

Manu - Liverpool

Manu - Bolton

Manu - Newcastle

 

 

Liverpool - Manu

Liverpool - Bolton

Liverpool - Newcastle

 

Newcastle - Manu

Newcastle - Bolton

Newcastle - Liverpool

 

Bolton - Manu

Bolton - Liverpool

Bolton - Newcastle

 

 

Som sagt fikk jeg laget et slags kampprogram, men det holdt ikke mål da ikke alle kampene ville registreres :/

 

Så håper noen har noen gode tips/løsninger til meg

Lenke til kommentar
hva skal du?

Så kan jeg forklare scriptet bedre, og lære deg hva jeg gjorde ;)

 

Scriptet ditt forstår jeg 100% ;) Men det skal utvikles litt videre slik som jeg har skrevet det i noen poster over....

Lage et fullstendig kampoppsett utifra en array med lag. ;)

 

Slik som dette:

 

$aTeamArray[0]		= 'Manu';
$aTeamArray[1]		 = 'Liverpool';
$aTeamArray[2]		= 'Newcastle';
$aTeamArray[3]		 = 'Bolton';

$iNumberOfRounds = (count($aTeamArray)*2)-2;  //Antall runder som skal spilles.
$iNumberOfMatchesPerRound = count($aTeamArray)/2; //Antall kamper per runde

 

Det skal altså lages et kampprogram, helst at ett lag spiller annehver runde hjemme (Men noen steder er det ikke mulig å få det til, så da er det seff akseptabelt med 2 hjemmekamper på rad).

 

For eksempelet som er gitt blir dette kampene som skal legges i kampprogrammet:

 

Manu - Liverpool

Manu - Bolton

Manu - Newcastle

 

Liverpool - Manu

Liverpool - Bolton

Liverpool - Newcastle

 

Newcastle - Manu

Newcastle - Bolton

Newcastle - Liverpool

 

Bolton - Manu

Bolton - Liverpool

Bolton - Newcastle

 

 

Kampoppsettet i dette eksempelet kan bli seende slik ut:

 

Runde1:

Manu - Liverpool

Newcastle - Bolton

 

Runde2:

Bolton - Manu

Liverpool - Newcastle

 

Runde3:

Manu - Newcastle

Liverpool - Bolton

 

Runde4:

Bolton - Liverpool

Newcastle - Manu

 

Runde5:

Bolton - Manu

Newcastle - Liverpool

 

Runde6:

Liverpool - Manu

Bolton - Newcastle

 

 

 

 

Tips/Løsninger på dette hadde vært koz ;)

Endret av peskungen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...