Jo.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Fussball Manager - Ideen für Berechnung
Einklappen
Neue Werbung 2019
Einklappen
X
-
-
ich hab das ganze jetzt mal so angefangen :
Code:// START Auslosen Anstoß $rand = rand(1, 100); if ($rand <= 50) { $bericht = "$team_a_name hat Anstoß"; $ballbesitz = $team_a; } else { $bericht = "$team_b_name hat Anstoß"; $ballbesitz = $team_b; } // ENDE Auslosen Anstoß // START Spiel for($minute=1; $minute <= $spiellaenge; $minute++) { // Mannschaft A in Ballbesitz if ($ballbesitz == $team_a) { // Jetzt gehts Los : Pass, Zweikampf, Schuss, Tor.. } } // ENDE Spiel
die Frage ist nur wie ich die ganzen Aktionen (pass Zweikampf etc auslöse... bzw bestimme).. am einfachsten wird es wohl durch funktionen sein oder?
Kommentar
-
nun den Objekt Orienterte Programmierung kann ich noch nicht
ich versuchs erstmal so.. eine Funktion für jede Aktion (Zweikampf, Pass, Torschuss, Freistoss, Eckball, Foulspiel, Elfmeter)... und jenachdem wie es der Zufall will kommen halt andere Spielsituatioenn zustande..
Also Mal
Pass - Pass - Zweikampf - Foul
oder
Pass - Zweikampf - Torschuss - Tor..
ich werde meine fortschritte dann posten wenn es jemanden Interessiert
Kommentar
-
So habe mal eine Function pass gemacht
und auch an der eigentlichen Spiel Berechnung Programmiert :Code:function pass($spieler_id) { mt_srand((double)microtime()*1000000); $rzahl = mt_rand(0,100); $result = mysql_query("SELECT id,w_kurzpassgenauigkeit, w_kurzpassgeschwindigkeit FROM ws_spieler_temp WHERE id='".$spieler_id."'"); $wert = mysql_fetch_array($result); mysql_free_result($result); echo mysql_error(); $wahrsch = round(($wert['w_kurzpassgenauigkeit'] + $wert['w_kurzpassgeschwindigkeit']) / 2); if ($rzahl > $wahrsch) { $ergebnis = 0; } else { $ergebnis = 1; } $pass = $ergebnis.",".$wert['id']; return $pass; }
jedoch hat die Variable $spieler keinen Wert.. und ich weiß nicht warumCode:for($minute=1; $minute <= $spiellaenge; $minute++) { // Mannschaft A in Ballbesitz if ($ballbesitz == $team_a) { $pass = pass($spieler_id); $arrResult = explode(",",$pass); $spieler = $arrResult[1]; if ($pass == 1) { $bericht = "$spieler spielt einen erfolgreichen Pass"; } else $bericht = "$spieler spielt einen Fehlpass"; } elseif ($ballbesitz == $team_b) { $pass = pass($spieler_id); $arrResult = explode(",",$pass); $spieler = $arrResult[1]; if ($pass == 1) { $bericht = "$spieler spielt einen erfolgreichen Pass"; } else $bericht = "$spieler spielt einen Fehlpass"; } } // ENDE Spiel
Kommentar
-
ich hab malausgeben lassen :Code:$pass = pass($spieler_id);
Ausgegeben wird dann 0,
wobei die 0 das Ergebnis ist (also Fehlpass) und , kann ja dann eig nur die fehlende Spieler_ID sein... aber müsste da dann nicht auch 0 stehen?
Kommentar
-
hab das ganze jetzt mal wieder bisschen entbuggt.. also momentan wird auch der Spielername ausgegeben.. einzigstes Problem.. jeder Spieler spielt einen erfolgreichen Pass...
mal beiläufig bemerkt.. ist es überhaupt sinnvoll eine Berechnung PHP4 Basierend mit IF Abfragen zu machen?
- BerechnungCode:// START Spiel for($minute=1; $minute <= $spiellaenge; $minute++) { if ($ballbesitz == $team_a) { $pass = pass($team_a); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); var_dump($spieler_name); if ($ergebnis = 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass \n\n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_b; } } elseif ($ballbesitz == $team_b) { $pass = pass($team_b); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); var_dump($spieler_name); if ($ergebnis = 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass \n\n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } } // ENDE Spiel
Pass FunktionCode:function pass($team_id) { global $conf; mt_srand ((double)microtime()*1000000); $rzahl = mt_rand(0, 100); //Spieler $result = mysql_query("SELECT spieler_id,w_kurzpassgenauigkeit,w_kurzpassgeschwindigkeit FROM ".$conf['db_prefix']."_spiel_berechnung WHERE team_id='".$team_id."' AND feld='1' AND karte_rot='0' ORDER BY RAND() LIMIT 1"); $spieler = mysql_fetch_array($result); mysql_free_result($result); $wahrsch = round(($spieler['w_kurzpassgenauigkeit'] + $spieler['w_kurzpassgeschwindigkeit']) / 2); if ($rzahl > $wahrsch) { $ergebnis = 0; } else { $ergebnis = 1; } $resultat = $spieler['spieler_id'].",".$ergebnis; return $resultat; }
Edit : Ich hab auch die variable $ergebnis ausgeben lassen.. es kommt mal 0 und mal 1 raus.. sprich mal fehlpass und mal einen Pass der erfolgreich ankommt.. dennoch wird iwie immer ein erfolgreicher Pass ausgegeben..
Kommentar
-
-
-
So und weiter gehts.. derzeit sieht das ganze so aus und nimmt auch schon Konturen an..
nur was mir fehlt.. ist wie ich die einzelnen Aktionen aneinander Reihe..Code:// START Spiel for($minute=1; $minute <= $spiellaenge; $minute++) { if ($ballbesitz == $team_a) { $pass = pass($team_a); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); if ($ergebnis == 1) { mt_srand ((double)microtime()*1000000); $rzahl = mt_rand(0, 100); $pass = pass($team_a); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); } if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass..."; } elseif ($rzahl <= 80) { $zweikampf = zweikampf($spieler['spieler_id'],$team_b); $arrResult = explode(",",$zweikampf); $spieler = $arrResult[0]; $gegenspieler = $arrResult [1]; $ergebnis = $arrResult [2]; $spieler_name = getName($spieler); $gegenspieler_name = getName($gegenspieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name gewinnt den Zweikampf gegen $gegenspieler_name"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine erfolgreichen Pass... $spieler_name verliert den Zweikampf gegen $gegenspieler_name.. \n"; // Ballbesitz wechselt $ballbesitz = $team_b; } } elseif ($rzahl <= 90 ) { $schuss = torschuss($team_b,$team_b,$st_b_abwehr,$st_a_sturm); $arrResult = explode(",",$schuss); $schuetze = $arrResult[0]; $torwart = $arrResult[1]; $ergebnis = $arrResult[2]; $schuetze_name = getName($schuetze); $torwart_name = getName($torwart); if ($ergebnis = "Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt und Tor. Keine Chance für $torwart_name"; // Ballbesitz wechselt $ballbesitz = $team_b; } elseif ($ergebnis = "Torschuss_auf_Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber $torwart_name hält."; // Ballbesitz wechselt $ballbesitz = $team_b; } elseif ($ergebnis = "Torschuss_daneben") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber daneben. Abstoß!"; // Ballbesitz wechselt $ballbesitz = $team_b; } $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass \n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_b; } } elseif ($ballbesitz == $team_b) { $pass = pass($team_b); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass.."; if ($rzahl <= 70) { $pass = pass($team_b); $pass = pass($team_b); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); } if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass..."; } elseif ($rzahl <= 80) { $zweikampf = zweikampf($spieler['spieler_id'],$team_a); $arrResult = explode(",",$zweikampf); $spieler = $arrResult[0]; $gegenspieler = $arrResult [1]; $ergebnis = $arrResult [2]; $spieler_name = getName($spieler); $gegenspieler_name = getName($gegenspieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name gewinnt den Zweikampf gegen $gegenspieler_name. \n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine erfolgreichen Pass... $spieler_name verliert den Zweikampf gegen $gegenspieler_name.. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } elseif ($rzahl <= 90 ) { $schuss = torschuss($team_b,$team_a,$st_a_abwehr,$st_b_sturm); $arrResult = explode(",",$schuss); $schuetze = $arrResult[0]; $torwart = $arrResult[1]; $ergebnis = $arrResult[2]; $schuetze_name = getName($schuetze); $torwart_name = getName($torwart); if ($ergebnis = "Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt und Tor. Keine Chance für $torwart_name. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } elseif ($ergebnis = "Torschuss_auf_Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber $torwart_name hält. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } elseif ($ergebnis = "Torschuss_daneben") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber daneben. Abstoß! \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } } // ENDE Spiel
Also das dann sowas da steht :
Spieler A spielt einen erfolgreichen Pass.. Spieler B gewinnt einen Zweikampf.. Spieler A schießt das Tor..
also das die Aktionen
Pass - Zweikampf - Torschuss zusammenstehen... hätte da jemand ne Idee?
Kommentar
-
Jeder Schleifendurchlauf = 1 Minute? Dann füg nach jedem Schleifendurchlauf die Aktion die gerade passiert ist zur Aktion des letzten Schleifendurchlaufs hinzu.Zitat von makaay04 Beitrag anzeigenSo und weiter gehts.. derzeit sieht das ganze so aus und nimmt auch schon Konturen an..
nur was mir fehlt.. ist wie ich die einzelnen Aktionen aneinander Reihe..Code:// START Spiel for($minute=1; $minute <= $spiellaenge; $minute++) { if ($ballbesitz == $team_a) { $pass = pass($team_a); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); if ($ergebnis == 1) { mt_srand ((double)microtime()*1000000); $rzahl = mt_rand(0, 100); $pass = pass($team_a); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); } if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass..."; } elseif ($rzahl <= 80) { $zweikampf = zweikampf($spieler['spieler_id'],$team_b); $arrResult = explode(",",$zweikampf); $spieler = $arrResult[0]; $gegenspieler = $arrResult [1]; $ergebnis = $arrResult [2]; $spieler_name = getName($spieler); $gegenspieler_name = getName($gegenspieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name gewinnt den Zweikampf gegen $gegenspieler_name"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine erfolgreichen Pass... $spieler_name verliert den Zweikampf gegen $gegenspieler_name.. \n"; // Ballbesitz wechselt $ballbesitz = $team_b; } } elseif ($rzahl <= 90 ) { $schuss = torschuss($team_b,$team_b,$st_b_abwehr,$st_a_sturm); $arrResult = explode(",",$schuss); $schuetze = $arrResult[0]; $torwart = $arrResult[1]; $ergebnis = $arrResult[2]; $schuetze_name = getName($schuetze); $torwart_name = getName($torwart); if ($ergebnis = "Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt und Tor. Keine Chance für $torwart_name"; // Ballbesitz wechselt $ballbesitz = $team_b; } elseif ($ergebnis = "Torschuss_auf_Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber $torwart_name hält."; // Ballbesitz wechselt $ballbesitz = $team_b; } elseif ($ergebnis = "Torschuss_daneben") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber daneben. Abstoß!"; // Ballbesitz wechselt $ballbesitz = $team_b; } $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass \n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_b; } } elseif ($ballbesitz == $team_b) { $pass = pass($team_b); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass.."; if ($rzahl <= 70) { $pass = pass($team_b); $pass = pass($team_b); $arrResult = explode(",",$pass); $spieler = $arrResult[0]; $ergebnis = $arrResult[1]; $spieler_name = getName($spieler); } if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt einen erfolgreichen Pass..."; } elseif ($rzahl <= 80) { $zweikampf = zweikampf($spieler['spieler_id'],$team_a); $arrResult = explode(",",$zweikampf); $spieler = $arrResult[0]; $gegenspieler = $arrResult [1]; $ergebnis = $arrResult [2]; $spieler_name = getName($spieler); $gegenspieler_name = getName($gegenspieler); if ($ergebnis == 1) { $bericht .= formatMinute($minute).". Minute: $spieler_name gewinnt den Zweikampf gegen $gegenspieler_name. \n"; } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine erfolgreichen Pass... $spieler_name verliert den Zweikampf gegen $gegenspieler_name.. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } elseif ($rzahl <= 90 ) { $schuss = torschuss($team_b,$team_a,$st_a_abwehr,$st_b_sturm); $arrResult = explode(",",$schuss); $schuetze = $arrResult[0]; $torwart = $arrResult[1]; $ergebnis = $arrResult[2]; $schuetze_name = getName($schuetze); $torwart_name = getName($torwart); if ($ergebnis = "Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt und Tor. Keine Chance für $torwart_name. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } elseif ($ergebnis = "Torschuss_auf_Tor") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber $torwart_name hält. \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } elseif ($ergebnis = "Torschuss_daneben") { $bericht .= formatMinute($minute).". Minute: $schuetze_name schießt aber daneben. Abstoß! \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } } else { $bericht .= formatMinute($minute).". Minute: $spieler_name spielt eine Fehlpass \n"; // Ballbesitz wechselt $ballbesitz = $team_a; } } } // ENDE Spiel
Also das dann sowas da steht :
Spieler A spielt einen erfolgreichen Pass.. Spieler B gewinnt einen Zweikampf.. Spieler A schießt das Tor..
also das die Aktionen
Pass - Zweikampf - Torschuss zusammenstehen... hätte da jemand ne Idee?
Gibt PHP bei sowas:
eigentlich keinen Fehler raus oder hast du keine Lust zu testen? Besonders weil dich schonmal jemand drauf aufmerksam gemacht hat.PHP-Code:[...] } elseif ($ergebnis = "Torschuss_daneben") { [...]
Kommentar
-
yap jeder schleifendurchlauf = 1 minute.. mh nun denn ich will aber das alles in einer minute passiert
also nicht so
Minute 1 : Spieler A auf Spieler b...
Minute 2 : Spieler A auf Spieler B.. der gewinnt Zweikampf gegen Spieler C
Minute 3 : Spieler A auf Spieler B.. der gewinnt Zweikampf gegen Spieler C.. und schießt Tor..
ne ein Fehler wurde nicht ausgegeben berechnung lässt sich ganz normal auslösen
Kommentar

Kommentar