Voetbalspel - Wedstrijd-systeem
Ik weet alleen totaal niet hoe ik dit moet aanpakken..
Er moeten:
- kaarten uitgedeeld worden
- doelpunten gemaakt worden
- blessures
Hoe kan ik dit het simpelst maken, maar dat het niet bijv. 10 - 0 word ofzo?
En dat er niet 10 rode kaarten zijn ofzo..
Alvast Bedankt
Iemand?
array(0,0,0,0,0,1,1,1,1,2,2,2,3);
En daar dan doormiddel van de random functie een getal uit trekken; een 1 staat voor 1 rode kaart, een 2 voor 2 rode kaarten etc. Je kunt ook een random getal trekken tussen 0 en 3, maar daardoor heb je tevaak teveel rode kaarten in mijn inziens.
Vervolgens weet je dat een wedstrijd 90 minuten duurt (+ een eventuele verlenging in bijv. 50% van de gevallen waarbij je een random getal tussen 1 en 15 toevoegd ofzo). Dan pak je x-keer een getal tussen 0 en 90 (+verlenging) en dan heb je de momenten voor een rode kaart.
Met betrekking tot doelpunten word het lastiger, want je moet ook rekening gaan houden met skills/trainingen/ervaringen.
Dus erg lastig denk ik..
Met betrekking tot het scoren gebruik je in de berekeningen natuurlijk ook het aantal spelers. Minder spelers = minder kans.
Want als je eerst de kaarten berekend, en je hebt 1 rode, verlies je zowieso, terwijl je normaal, als je 2 - 0 voor staat ofzo, en in de 80ste mniuut 1 rode kaart krijgt, je nog makkelijk kan winnen..
Bijv, en dat schud ik zo uit mijn mouw, eerst ga je kijken of er een verlenging is. Dus in bijv. 50% van de gevallen pak je een random getal tussen 1 en 15 ofzo, alhoewel je natuurlijk ook een array kunt maken zodat die lage getallen vaker voorkomen.
Vervolgens bepaal je het aantal rode en gele kaarten, waarbij 2 gele kaarten een rode is. Uiteraard bepaal je dan ook WIE en WANEER.
Daarna een loopje waarbij je per minuut een aantal berekingen doet, zoals de kans om te scoren afhankelijk van de 'sterkte' van je teamgenoten. Het aantal teamgenoten wat je nog over hebt etc etc. Vervolgens voeg je daar een stukje randomheid aan toe en indien bijv. hoger dan 150 punten = doelpunt in minuut x door speler y.
je begint bijvoorbeeld met:
Code (php)
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
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
<?php
$kans_op_rood = array(0,0,0,0,0,0,0,1,1,2,3);
shuffle($kans_op_rood);
for($i = 0; $i < $kans_op_rood[0]; $i++)
$rode_kaarten[rand(0,90)] = true; //minuten als key
$blessures[rand(0,90)] = $kans_op_blessure[0]; //uiteraard zelfde als kans op rood (nog zelf even aanmaken)
$wedstrijdlengte = 90 + ceil(count($rode_kaarten) / 2) + ceil(count($blessures) / 2);
$gemoederen = 50; //min 0, max 100
for($i = 0; $i < $wedstrijd_lengte; $i++) {
if(isset($rode_kaarten[$i])) {
$gemoederen -= 5;
} else {
if(rand(0,100 - $gemoederen) == 1) {
$gemoederen += 5;
$doelpunten++;
}
}
}
?>
$kans_op_rood = array(0,0,0,0,0,0,0,1,1,2,3);
shuffle($kans_op_rood);
for($i = 0; $i < $kans_op_rood[0]; $i++)
$rode_kaarten[rand(0,90)] = true; //minuten als key
$blessures[rand(0,90)] = $kans_op_blessure[0]; //uiteraard zelfde als kans op rood (nog zelf even aanmaken)
$wedstrijdlengte = 90 + ceil(count($rode_kaarten) / 2) + ceil(count($blessures) / 2);
$gemoederen = 50; //min 0, max 100
for($i = 0; $i < $wedstrijd_lengte; $i++) {
if(isset($rode_kaarten[$i])) {
$gemoederen -= 5;
} else {
if(rand(0,100 - $gemoederen) == 1) {
$gemoederen += 5;
$doelpunten++;
}
}
}
?>
zoiets?
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
- Het sterkste team heeft het meeste balbezit en de meeste kansen. Maar zijn de spitsen niet goed, dan valt er maar een klein percentage van die kansen in het doel.
- Is de keeper heel goed, dan worden er meer doelpunten voorkomen.
En zo kan je een heel lange lijst maken met alles wat meetelt (of zou moeten tellen) in het wedstrijd systeem. Zet dat eerst allemaal eens op een rijtje.
Opzich wel lachen om over na te denken dit; hoeveel mogelijkheden / externe factoren er meedoen. Dat je bijv. 1x in de 2000x de wedstrijd vroegtijdig staakt ivm rellen en de kans dat een speler gewond raakt doordat een papieren vliegtuigje hem raakt in zijn oog enzo :P.
Verder heb ik een pagina waar je je speelstijl kan veranderen (rustig, normaal, hard, aggressief), hoe harder hoe meer kaarten maar hoe beter je speelt.
Rellen hou ik geen rekening mee, dat vind ik een beetje onzin :P.
Wat wel zo is, na 5 rode kaarten (is in het echt ook zo), word de wedstrijd gestaakt. Maar die kans is klein.
Eigenlijk moet je het gemiddelde niet gebruiken, maar per speler vergelijken met de ander. Je kan dan ook als "coach" spelers zo opstellen, dat je op de meeste posities sterkere spelers hebt dan de tegenstander. Als het om het gemiddelde gaat kan je 2 heel slechte spelers opstellen, en 1 heel goede middenvelder die alles weer recht trekt.
In het echt gaat dat natuurlijk niet zo. Daarnaast, zal je inderdaad ook rekening moeten houden met de speelstijl, speel je op de counter, dan zal je een betere verdediging moeten hebben, dan wanneer je vooruit speelt (tegenstander onder druk zetten) omdat dan het middenveld belangrijker is.
Ik zou overigens niet kiezen voor rustig, normaal, hard of agressief maar meer "speel het rustig aan" (niet zo'n belangrijke wedstrijd) en belangrijke wedstrijd en normaal.
Rellen hoef je inderdaad geen rekening mee te houden, je kan bijvoorbeeld ook rekening houden met het type spelers en het weer. (technische spelers hebben het vaak moeilijker op een glad veld als het nat is enzo)
Ik denk als ik de spelers ga vergelijken het alleen maar moeilijker word.
Klopt, maar wel eerlijker. Met 1 goede speler win je echt geen wedstrijden hoor. Als mensen daar achter komen dat je het gemiddelde pakt, gaan ze niet het hele team maar juist enkele spelers heel goed maken of kopen.
Ja das wel waar. Maar als iemand me een ideetje geeft, hoe ik dat zou kunnen doen, zou dat mooi zijn.
Je loopt gewoon de 11 spelers van ieder team door, bekijkt de scores per speler vergelijkt die met een speler op dezelfde positie. Punten berekenen en meenemen in je berekeningen.
Dat is makkelijker gezegd dan gedaan want een team kan verschillende formaties hebben.
maar wel altijd 11 spelers toch? (tenzij je wisselt)
Ja altijd 11 spelers, maar als je bijv. 4-4-2 speelt, dan heb je een link mid en een rechts mid, maar als je 4-2-4 speelt, heb je die niet. Dus dan is het vergelijken moeilijk..
Je kan het toch wel vergelijken, aantal in het midden, aantal links en aantal rechts... Als je met 2 in de verdediging speelt en de tegenpartij met 4 in de aanval is de kans dat er gescoord word hoger...
@Arjan
Je bedoelt neem ik aan de spelers op de tegenovergestelde positie ;)
Ik heb wel een voorbeeld waarbij je met selectboxen een opstelling kan maken, en een bepaalde keuze kan maken voor de opstelling ('4-4-2', '4-3-3') De Keeper wordt altijd geplaatst natuurlijk.
Maar voor de statistieken, je moet bij een aanvaller, de "aanvalspunten" vergelijken met de verdedigingspunten van de verdediger.
Als je het echt goed wil doen, kijk je naar de sterkte van speler tegen speler, en ook het gemiddelde, maar niet alleen naar het gemiddelde. Het zal ook zeker een heel ingewikkeld systeem worden.