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
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; }
Code: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
-
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?
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); 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
Code: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..
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
-
Zitat von makaay04 Beitrag anzeigenSo und weiter gehts.. derzeit sieht das ganze so aus und nimmt auch schon Konturen an..
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:
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