Een vrij volledige Engelstalige voetbalmanager (code is Nederlands), die nog erg goed kan worden uitgebreid. De klasse-structuur is goed opgezet, maar helaas niet helemaal optimaal (in een paar klasses wordt gewerkt met simpelweg de id in plaats van een instantie aan te maken behorende bij de id).
Spelers kunnen zich registreren en daarna direct een club kiezen uit de hoogste competitie van Nederland, Spanje, Italie, Engeland of Duitsland. Spelers van deze ploegen zijn random gegenereerd, rekening houdend met de kracht van het team in real life (PSV heeft dus betere spelers dan Sparta bijvoorbeeld). Het aantal competities, clubs en landen is gemakkelijk uit te breiden in de database.
Een korte opsomming van de mogelijkheden:
- toevoegen van aankondigingen die worden getoond in de portal;
- spelers kopen en na een aantal dagen mogelijkheid om een contract aan te bieden (met rol in de selectie, looptijd en salaris). De speler kiest vervolgens de beste aanbieding;
- spelers kunnen op de transferlijst worden gezet;
- historie van spelers en clubs wordt bijgehouden;
- topscorers en stand van alle competities;
- transferlijst met mogelijkheid tot zoeken;
- vriendschappelijke wedstrijden inplannen en spelen tegen andere human teams;
- als een manager geen volledige opstelling heeft gemaakt, wordt deze afgemaakt door een virtuele assistent. Voor computerteams maakt het systeem een goede opstelling;
- spelers hebben 9 vaardigheden, een geboortedatum (leeftijd), een positie en een zijde;
- er is een mogelijkheid om interessante spelers op een shortlist te plaatsen;
- berichtensysteem met mogelijkheid om berichten naar collega's te sturen en de virtuele assistent houdt je hiermee op de hoogte van ontwikkelingen in het team;
- strategie en speelwijze instellen voor elke wedstrijd;
- opstelling maken in 5 mogelijke formaties;
- een balans met het financiele weekoverzicht van je club;
- overzichten van resultaten en het programma voor elke competitie en elke club afzonderlijk.
Het hele spel wordt vooruitgebracht in cronjobs; er worden in zogenaamde ticks wedstrijden gespeeld, de balansen van de clubs worden bijgewerkt, blessures worden bijgewerkt, etc. Tijdens deze updates wordt de game automatisch gesloten, de datum wordt vooruit gezet en daarna wordt de game automatisch weer geopend.
De game is compleet en kan nog op heel veel gebieden uitgebreid worden. Ik was nog bezig met contractverlengingen en iets automatisch dat computerteams aflopende contracten al dan niet zouden verlengen. Door tijdgebrek lukt het me echter maar niet om grote stappen vooruit te maken en ik krijg de game maar niet van de grond. Daarom heb ik dus besloten om te verkopen.
Indien geinteresseerd, kan op verzoek via e-mail toegang worden gevraagd tot de game. Ook boden gaarne per e-mail! U krijgt niet alleen de game, maar tevens alle rechten.
Er wordt gebruik gemaakt van PHP, MySQL, HTML, JavaScript, AJAX en XML.
- Voetbalmanager
-
2165 × bekeken sinds 18-09-2008, 18:26 #1
Voetbalmanager
Laatst aangepast door John A. : 19-09-2008 om 06:37
-
In de schijnwerper
-
19-09-2008, 13:32 #2
- Berichten
- 37
- Lid sinds
- 16 Jaar
Hebt u de PHP systemen geheel zelf gescript en opgebouwd ,
hoe is de structuur opgebouwd? kunt u kleine view geven van een zelf gescripte stukje?
-
19-09-2008, 13:37 #3
- Berichten
- 1.400
- Lid sinds
- 19 Jaar
Ik ontvang graag een PM.
-
19-09-2008, 14:02 #4
- Berichten
- 14
- Lid sinds
- 16 Jaar
Alles is zelf gescript, gebouwd en ontworpen. Een stukje uit een klasse-structuur:
Bijvoorbeeld de class "competitie":
PHP Code:require_once("land.php");
class Competitie {
public static $TABLE = "competitie";
public $ID;
public $NAAM;
public $DIVISIE;
public $LAND;
public $PROMOTIE;
public $DEGRADATIE;
public $clubs = Array();
public function Competitie($id=0) {
$this->ID = $id;
if($this->ID > 0)
$this->get();
}
public function save() {
$query = "update " . self::$TABLE . " set
naam = '" . $this->NAAM . "',
divisie = '" . $this->DIVISIE . "',
land = '" . $this->LAND->ID . "',
promotie = '" . $this->PROMOTIE . "',
degradatie = '" . $this->DEGRADATIE . "'
where id = " . $this->ID . "";
$result = mysql_query($query) or die(mysql_error());
}
public function get() {
$query = "select * from " . self::$TABLE . " where id = " . $this->ID . "";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$this->NAAM = $row['naam'];
$this->DIVISIE = $row['divisie'];
$this->LAND = new Land($row['land']);
$this->PROMOTIE = $row['promotie'];
$this->DEGRADATIE = $row['degradatie'];
}
$this->getClubs();
mysql_free_result($result);
}
public function getClubs() {
$sql = "select club_id from club_competitie where competitie_id = {$this->ID}";
$query = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_object($query)) {
$this->CLUBS[] = $result->club_id;
}
mysql_free_result($query);
}
}
PHP Code:require_once("speler.php");
require_once("user.php");
require_once("competitie.php");
class Club {
public static $TABLE = "club";
public $ID;
public $NAAM;
public $CLUBSALDO;
public $KLASSE; // alleen gebruiken voor het genereren van spelers (en staff?)
// samengestelde data
public $COMPETITIE;
public $MANAGER;
public $SPELERS = Array();
public $FORMATIE;
public $MENTALITEIT;
public $VOLGENDE_WEDSTRIJD;
public function Club($id=0) {
$this->ID = $id;
if($this->ID > 0)
$this->get();
}
public function save() {
$query = "update " . self::$TABLE . " set
naam = '" . $this->NAAM . "',
clubsaldo = '" . $this->CLUBSALDO . "',
klasse = '" . $this->KLASSE . "'
where id = " . $this->ID . "";
$result = mysql_query($query) or die(mysql_error());
}
public function get() {
$query = "select * from " . self::$TABLE . " where id = " . $this->ID . "";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$this->NAAM = $row['naam'];
$this->CLUBSALDO = $row['clubsaldo'];
$this->KLASSE = $row['klasse'];
}
$this->getManager();
$this->getCompetitie();
$this->getSpelers();
$this->getTactiek();
$this->getVolgendeWedstrijd();
mysql_free_result($result);
}
public function getManager() {
$sql = "select user_id from user_club where club_id = {$this->ID}";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_object($query);
$this->MANAGER = new User($result->user_id);
mysql_free_result($query);
}
public function getCompetitie() {
$sql = "select competitie_id from club_competitie where club_id = {$this->ID}";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_object($query);
//require_once($classpath . "class/competitie.php");
$this->COMPETITIE = new Competitie($result->competitie_id);
mysql_free_result($query);
}
public function getSpelers() {
// sortering meenenemen
$sql = "SELECT sc.speler_id
FROM speler_club sc, speler_positie sp, speler s
WHERE sc.speler_id= sp.speler_id
AND s.id = sc.speler_id
AND sc.club_id = {$this->ID}
GROUP BY sc.speler_id
ORDER BY MIN(sp.positie_id), s.id";
$query = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_object($query)) {
//$S = new Speler($result->speler_id);
$this->SPELERS[] = new Speler($result->speler_id);
}
mysql_free_result($query);
}
public function getTactiek() {
$sql = "select formatie_id, mentaliteit_id from club_tactiek where club_id = {$this->ID}";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_object($query);
$this->FORMATIE = $result->formatie_id;
$this->MENTALITEIT = $result->mentaliteit_id;
mysql_free_result($query);
}
public function getVolgendeWedstrijd() {
$sql = "SELECT w.id
FROM wedstrijd w, competitie_wedstrijd cw
WHERE w.id = cw.wedstrijd_id
AND (club_id_thuis = {$this->ID}
OR club_id_uit = {$this->ID})
AND datum >= '".SPELDATUM."'
ORDER BY datum
LIMIT 0,1";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_object($query);
$this->VOLGENDE_WEDSTRIJD = $result->id;
mysql_free_result($query);
}
public function getSpeeldata($dagen_vooruit) {
$DATA = Array();
$datum_max = date("Y-m-d",mktime(0,0,0,substr(SPELDATUM,5,2),substr(SPELDATUM,8,2)+$dagen_vooruit,substr(SPELDATUM,0,4)));
$sql = "SELECT datum
FROM wedstrijd
WHERE (club_id_thuis = {$this->ID} OR club_id_uit = {$this->ID})
AND datum >= '".SPELDATUM."'
AND datum <= '{$datum_max}'
ORDER BY datum ASC";
$query = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_object($query)) {
$DATA[] = $result->datum;
$min1 = date("Y-m-d",mktime(0,0,0,substr($result->datum,5,2),substr($result->datum,8,2)-1,substr($result->datum,0,4)));
$min2 = date("Y-m-d",mktime(0,0,0,substr($result->datum,5,2),substr($result->datum,8,2)-2,substr($result->datum,0,4)));
$DATA[] = $min1;
$DATA[] = $min2;
$plus1 = date("Y-m-d",mktime(0,0,0,substr($result->datum,5,2),substr($result->datum,8,2)+1,substr($result->datum,0,4)));
$plus2 = date("Y-m-d",mktime(0,0,0,substr($result->datum,5,2),substr($result->datum,8,2)+2,substr($result->datum,0,4)));
$DATA[] = $plus1;
$DATA[] = $plus2;
}
mysql_free_result($query);
return $DATA;
}
}
-
19-09-2008, 14:49 #5
- Berichten
- 372
- Lid sinds
- 17 Jaar
Ik ontvang graag een demo.
-
19-09-2008, 14:54 #6
- Berichten
- 37
- Lid sinds
- 16 Jaar
Ik ontvang ook graag een demo
-
19-09-2008, 15:03 #7
- Berichten
- 547
- Lid sinds
- 18 Jaar
Hier ook graag demo
-
19-09-2008, 15:26 #8
- Berichten
- 107
- Lid sinds
- 17 Jaar
Ik zou graag een demo willen ontvangen
-
19-09-2008, 15:55 #9
- Berichten
- 20
- Lid sinds
- 16 Jaar
Ik ook wel
-
19-09-2008, 18:49 #10
- Berichten
- 14
- Lid sinds
- 16 Jaar
Vraagprijs is inmiddels 450 euro inclusief alle rechten...
-
24-09-2008, 18:31 #11
- Berichten
- 51
- Lid sinds
- 17 Jaar
Ik ontvang graag een demo
-
24-09-2008, 21:57 #12
- Berichten
- 14
- Lid sinds
- 16 Jaar
PM verstuurd!
-
25-09-2008, 01:00 #13
- Berichten
- 19
- Lid sinds
- 16 Jaar
Ontvang graag een demo
-
25-09-2008, 06:27 #14
- Berichten
- 235
- Lid sinds
- 17 Jaar
Demo svp
-
25-09-2008, 07:13 #15
- Berichten
- 14
- Lid sinds
- 16 Jaar
PM's verstuurd...
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic