php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2009, 22:20  
Neuer Benutzer
 
Registriert seit: 14.08.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
bageleudi befindet sich auf einem aufstrebenden Ast
Standard Fussball Manager - Ideen für Berechnung

Servus nochmal,

ich bin ja gerade dabei einen kleinen Fussball Manager zu schreiben.
Ich habe bisher eine ganz einfache Spielberechnung - die mir aber nicht so recht gefällt und im Moment fällt mir nichts ein, wie ich das ganze verbessern könnte.

Bisher habe ich ein Array, wo ich die jeweiligen Spieler und ihre Stärken gespeichert habe. Aus diesen Einzelstärken berechne ich dann die Gesamt-Stärke einer Mannschaft.
PHP-Code:
//Team A
$teams[0][] = array("Mario Gomez"6"Bayern München"'Sturm_rechts''Nr' => "0""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Miroslav Klose"6"Bayern München"'Sturm_links''Nr' => "1""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Bastian Schweinsteiger"6"Bayern München"'Mittelfeld_rechts''Nr' => "2""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Franck Ribery"7"Bayern München"'Mittelfeld_links''Nr' => "3""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Mark van Bommel"6"Bayern München"'Mittelfeld_mitte''Nr' => "4""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Anatoly Tymoshcuk"5"Bayern München"'Mittelfeld_mitte''Nr' => "5""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Edson Braafheid"5"Bayern München"'Abwehr_links''Nr' => "6""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Martin Demichelis"6"Bayern München"'Abwehr_mitte''Nr' => "7""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Daniel van Buyten"6"Bayern München"'Abwehr_mitte''Nr' => "8""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[0][] = array("Philipp Lahm"7"Bayern München"'Abwehr_rechts''Nr' => "9""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");

//Team B
$teams[1][] = array("Lucas Barrios"5"Borussia Dormund"'Sturm_rechts''Nr' => "0""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Nelson Valdez"5"Borussia Dormund"'Sturm_links''Nr' => "1""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Kuba"5"Borussia Dormund"'Mittelfeld_rechts''Nr' => "2""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Nuri Sahin"5"Borussia Dormund"'Mittelfeld_links''Nr' => "3""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Tamas Hajnal"5"Borussia Dormund"'Mittelfeld_mitte''Nr' => "4""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Sebastian Kehl"6"Borussia Dormund"'Mittelfeld_mitte''Nr' => "5""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Dede"6"Borussia Dormund"'Abwehr_links''Nr' => "6""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Neven Subotic"6"Borussia Dormund"'Abwehr_mitte''Nr' => "7""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Mats Hummels"5"Borussia Dormund"'Abwehr_mitte''Nr' => "8""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");
$teams[1][] = array("Patrick Owomoyela"5"Borussia Dormund"'Abwehr_rechts''Nr' => "9""Tore" => "0""Gelb" => "0""Gelb_Rot" => "0""Rot" => "0");

// Stärke von Offensive und Deffensive der beiden Mannschaften
$Off_A =     $teams[0][0][1] + 
        
$teams[0][1][1] + 
        
$teams[0][2][1] + 
        
$teams[0][3][1] + 
        
$teams[0][4][1];

$Def_A =     $teams[0][5][1] + 
        
$teams[0][6][1] + 
        
$teams[0][7][1] + 
        
$teams[0][8][1] + 
        
$teams[0][9][1];

$Off_B =     $teams[1][0][1] + 
        
$teams[1][1][1] + 
        
$teams[1][2][1] + 
        
$teams[1][3][1] + 
        
$teams[1][4][1];

$Def_B =     $teams[1][5][1] + 
        
$teams[1][6][1] + 
        
$teams[1][7][1] + 
        
$teams[1][8][1] + 
        
$teams[1][9][1];

//Spielstärke berechnen
$Staerke_A = ($Off_A $Def_A);
$Staerke_B = ($Off_B $Def_B);
echo 
"Spielstaerken:" "<br>";
echo 
$teams[0][0][2] . ": " $Staerke_A "<br>";
echo 
$teams[1][0][2] . ": " $Staerke_B "<br>" "<br>"
Aus diesen Stärken werden dann einmal eine Quote für jedes Team ausgerechnet und per Zufall auch für jedes Team eine Anzahl an Angriffen, die für eine Spielberechnung zur Verfügung stehen.
PHP-Code:
//Anzahl der Angriffe für Team A ausrechnen
$Angriffe_0 10 + (($Off_A $Off_B)/4);
$Angriffe_0 rand(1$Angriffe_0);
echo 
"Angriffe " $teams[0][0][2] . ": " $Angriffe_0 "<br>";

//Anzahl der Angriffe für Team B ausrechnen
$Angriffe_1 10 + (($Off_B $Off_A)/4);
$Angriffe_1 rand(1$Angriffe_1);
echo 
"Angriffe " $teams[1][0][2] . ": " $Angriffe_1 "<br>" "<br>";

// Trefferquote bei einem Angriff beider Teams
$Quote_0 50 + (($Off_A $Def_B)/2);
$Quote_1 50 + (($Off_B $Def_A)/2);
echo 
"Quote " $teams[0][0][2] . ": " $Quote_0 "<br>";
echo 
"Quote " $teams[1][0][2] . ": " $Quote_1 "<br>"
Für den Spielablauf habe ich eine einfache for Schleife, die für 90 Minuten jeweils eine Aktion per Zufall bestimmt.
PHP-Code:
// für 90 minuten jeweils eine Aktion pro Minute
for ($i 1$i <= 90$i++){

    if(
$i == 1){
        echo 
"$i. Minute: " "Der Schiedsrichter pfeift die Partie an!<br>";}

        elseif(
$i == 90){
        echo 
"$i. Minute: " "Der Schiedsrichter beendet die Partie mit dem Schlusspfiff!<br>";}

        elseif(
$i == 45){
        echo 
"$i. Minute: " "Der Schiedsrichter pfeift die Erste Halbzeit ab!<br><br>";
        echo 
"$i. Minute: " "Weiter geht es mit der Zweiten Halbzeit!<br>";}
    
    elseif(
rand(13) == 1){
        
        
"$i. Minute: " "Nichts passiert<br>";}

    
//Foul/Freistoss und evtl. Gelbe/rote Karte
    
elseif(rand(18) == 3){
        
freistoss($i$teams$Fouls_0$Fouls_1$Gelbe_Karten$Rote_Karten);}

    
//Hier wird per Zufall entschieden ob ein Tor fällt
    
elseif(rand(12) == 2){
        
tor($i$teams$Angriffe_0$Angriffe_1$Quote_0$Quote_1$Goals_0$Goals_1);}
    
    else{
            
"$i. Minute: " "Es kommt kein Angriff zustande... <br>";}


Die jeweiligen Aktionen, ob z.B. ein Tor fällt oder eine Foul begangen wird und ob es eine Gelbe Karte gibt oder so sind in einzelnen Funktionen geschrieben und werden dann ausgeführt, wenn der Zufall diese Aktion eben auswählt.
Hier z.B. die Funktion, wie ein Tor fällt (Ausschnitt)(Welches Team die Torchance bekommt, wird per Zufall entscheiden):
PHP-Code:
    //Hier wird geschaut, ob noch genügend Angriffe für das gewählte Team verfügbar sind
    
if(${$a.$zufall} > 0){

    
//nun wird die anzahl der angriffe um 1 subtrahiert
    
${$a.$zufall} = ${$a.$zufall} - 1;

        
//Schleife ob ein Tor fällt oder nicht (ein durchlauf)
        
for ($r =1$r <= 1$r++){

            
//zufällig 1/150 muss kleiner sein als die Quote des jeweiligen Teams
            
if(rand(1150) < ${$c.$zufall}){ 
Das wars eigentlich auch schon.
Ist bisher recht simpel, liefert aber eigentlich ganz gute Ergebnisse ab
Was mich daran stört, ist dass die einzelnen Spieler darin eigentlich keine große Bedeutung haben. Deren Stärken werden nur zu beginn für die Gesamt Stäke gebraucht, und den Rest erledigt der Zufall.
Ich würde gerne die individuellen Stärken des einzelnen Spielers stärker einbeziehen wollen, und nicht nur die Stärken, sondern auch noch andere Dinge wie z.B. die Form eines Spielers oder dessen Frische usw.
Am besten sollten diese Dinge dann nicht ganz zu beginn einmal berechnet werden und fertig, sondern dies sollte denke ich mal am besten in jeder Situation neu zum Tragen kommen, ob nun ein Zweikampf gewonnen wird, ein Foul begangen wird oder eben ein Tor geschossen wird.

Nur leider weiß ich da im Moment nicht weiter....
Würde mich freuen, wenn User, die vieleicht auch einen Fussball Manager betreiben oder daran arbeiten, aber natürlich auch alle anderen mir vieleicht ein paar Tipps oder Anregungen geben könnten, wie ich sowas vieleicht realisieren könnte.
Würde mich riesig freuen

Entschuldigt bitte, dass der Beitrag so lang geworden ist

Und viele Grüße
bageleudi
bageleudi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.08.2009, 22:38  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Das Beste ist, Du befasst Dich wirklich mal mit den Grundlagen PHP.
Vor einer Woche hattest Du ein ähnliches Problem (siehe hier).

Was kommt als nächstes?

Ich hab Verständnis dafür, wenn jemand keine Zeit oder meinetwegen auch keine Lust zum Lernen hat,
aber dann solltest Du in der Scriptbörse posten und fragen, ob's
Dir dort jemand macht...

Arne Drews ist offline  
Alt 25.08.2009, 22:40  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Überleg dir doch erstmal, wie du auf die Einzelspieler konkret eingehen könntest. Starker Stürmer, schwacher Gegenspieler, das könnte seine Chance ein Tor zu schiessen doch erhöhen. Die Form könntest du abhängig davon machen, wie die Mannschaft spielt, ob er viele Chancen vergeben hat + einen zusätzlichen nicht allzu flukturierenden Faktor (eine Kurve) (kann ja auch sein dass Köln dauernd veliert, Podolski aber trotzdem Top in Form ist), bei der Frische, wieviele Tore gefallen sind oder wie oft ein Spieler gefoult wurde, was auch immer.
Mach dazu doch mal Vorschläge, dann können wir hier ja mal schauen, wie sich das umsetzen lässt. Wenn du das ganze schonmal klar vorformulierst, ergibt sich der Code schon fast von selbst.

Edit: @Arne Drews Ach ich find das nicht schlimm, ist doch cool wenn sich jemand mit PHP beschäftigt und ich glaub nichtmal dass es am eigenen Engagement liegt, vielmehr halt noch weil er PHP noch nicht so lange macht, es ja aber scheinbar zum Spass lernen möchte. Find ich gut sowas, da helf ich 10x lieber als bei manch anderem
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 25.08.2009, 23:04  
Neuer Benutzer
 
Registriert seit: 14.08.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
bageleudi befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank schonmal für die schnellen Antworten.

@arne Drews
Zeit habe ich leider nicht so viel
Aber ich habe sehr wohl Lust zu Lernen und bin auch fleißig dabei.
Und ich möchte auch nicht, dass es mir jemand fertig macht oder so - ich möchte lediglich ein paar Ideen, Vorschläge oder Anregungen bekommen.

@Chriz
danke, genau so ist es, ich bin noch nicht so lange dabei - dabei fallen mir Lösungen nicht so schnell ein wie euch anderen, die schon lange dabei sind, darum will ich ja auch ein paar Anregungen bekommen

Ich glaube ich könnte oder sollte die Spielberechnung generel anders gestalten, vieleicht, dass es immer Zweikämpfe gibt, und je nach dem, ob man diesen Zweikampf gewinnt (das könnte auch einfach nur ein Pass sein), kommt man weiter nach vorne und hat irgendwann die Möglichkeit zu schießen. Ich habe ja jetzt eine Gesamt-Quote für die Mannschaft - denke ich könnte dann in jeder dieser Situationen 2 Spieler aufeinander treten lassen und dann jeweils eine Quote für diesen Zweikampf aus den beiden Spielern errechnen in dem ich die Stärken der beiden Spieler verwende. Dann hätte ich es schonmal, dass ein Starker Stürmer sich leichter gegen einen schwachen Abwehrspieler durchsetzt.

Zur Frische und Form, ich denke mal, dass sind Attribute, die im ganzen Spiel gleichbleiben oder? Eine Form hat man doch, wenn man z.B. einige Spiele hintereinander gewonnen hat und die Frische hat man, wenn man gut trainiert hat usw. darum denke ich nicht, dass sich das während des Spiels so großartig verändert.
Vieleicht könnte ich die Frische und oder Form einfach als einen Faktor mit in die Quotenberechnung bei dem oben genannten Zweikampf mit einfließen lassen.
Klar, wenn man im Spiel dann 10 Chancen z.B. vergibt, könnte man diesen Faktor dann vieleicht verkleinern oder so.
Währe sowas in der Art Sinnvoll?
bageleudi ist offline  
Alt 25.08.2009, 23:32  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hast wohl noch nie Fußball gespielt was? Form ist längerfristig, Frische eher kurzfristig und gegen Spielende natürlich geringer. Eingewechselter Spieler ist frischer als Typ der schon die ganze Zeit aufm Platz rumrennt. Könntest auch Angstfaktor einbauen, für nen Maik Franz gegen Mario Gomez (den Angsthasen) Liegt in deiner Hand, und gleich das volle Programm spielen ist vielleicht übertrieben.

Machs doch so, such dir 2-3 Eigenschaften noch für jeden Spieler aus, von mir aus Fitness [e1], Zweikampfstärke [e2], Schusskraft [e3];
danach suchst du dir 2-3 Spielsituationen aus: normaler Pass [s1], Pass in die Tiefe [s2], Flanke [s3], Schuss [s4]
mehrere Ausgangsmöglichkeiten für Spielsituationen: Foul [a1], Zweikampf gewonnen/verloren [a2a, a2b], Seitenaus [a3], Abseits [a4], freier Mann [a5]
Von mir aus noch Platzverhältnisse/Umweltbedingungen: Regen [u1], Sonne [u2], schlechte Rasen [u3]
So jetzt bestückst du die Spieler mit ihren Eigenschaften, die Mannschaften mit ihren Spielern und die Mannschaften mit ihren Stadien und Wetterverhältnissen (München = Sonne, Hamburg = Regen, Frankfurt = schlechter Rasen). Regen heißt höhere Torwahrscheinlichkeit beispielsweise, weil Rasen nass. Keine Ahnung.

So jetzt überlegst du dir, wie ein Spiel aussieht:
Anstoss - Spielsituation - Ausgangsmöglichkeit der Spielsituation - falls Schuss + Tor: Anstoss, andernfalls: zurück zu Spielsituation. Schimpf sich Endlicher Automat soetwas.

So jetzt kannst du überlegen, wie du eine der Spielsituationen auswählst:
[s1]: recht wahrscheinlich
[s2]: selten (abhängig von Teamstärke)
[s3]: kann nicht auf [s2] folgen, nur auf [s1].
[s4]: selten, kann nur auf [s2] oder [s3] folgen

Ausgang der Spielsituation:
Beteiligte: Angreifer, Verteidiger
Wahrscheinlichkeit, dass Angreifer/Verteidiger siegt:
- abhängig von Dauer der ununterbrochenen Ballkontakte (nach 10 Spielzügen sollte langsam mal der Ball die Mannschaft wechseln)
- Stärke der Gegenspieler [e1], [e2]
- Teamstärke
- Zufall

Neue Spielsituation: (siehe oben).

So kannst du das hin- und herlaufen lassen, irgendwann, so will es der Zufall, wird auf die Flanke mal ein Schuss kommen und sogar im Tor landen. Das schwierige wird wahrscheinlich eher das Einstellen sein, soll ja nicht so sein, dass fast alle Spiele gleich ablaufen (vor allem nicht Hin- und Rückspiele) bzw. keine Überraschungsergebnisse möglich sind. Du musst den Zufall oft aber nicht wahllos einsetzen.

Ich weiß viel Theorie, aber für Programmcode schreiben reichts bei mir heute nicht mehr..
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 26.08.2009, 10:11  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Chriz
Ach ich find das nicht schlimm, ist doch cool wenn sich jemand mit PHP beschäftigt und ich glaub nichtmal dass es am eigenen Engagement liegt, vielmehr halt noch weil er PHP noch nicht so lange macht, es ja aber scheinbar zum Spass lernen möchte. Find ich gut sowas, da helf ich 10x lieber als bei manch anderem
Da hast Du allerdings Recht. Mir kams halt anders vor.
Hat er ja aber richtig gestellt.

@bageleuldi: Sorry! Kam bei mir anders rüber...
Arne Drews ist offline  
Alt 26.08.2009, 12:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Form ist längerfristig, Frische eher kurzfristig und gegen Spielende natürlich geringer. ... Könntest auch Angstfaktor einbauen, für nen Maik Franz gegen Mario Gomez (den Angsthasen)
Wie wärs mit nem Bad-Hair-Day oder ne kneifende Unterhose am Anfang der 2. Halbzeit?
Sorry 4 OT.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (26.08.2009 um 12:39 Uhr).
nikosch ist gerade online  
Alt 27.08.2009, 18:31  
Neuer Benutzer
 
Registriert seit: 14.08.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
bageleudi befindet sich auf einem aufstrebenden Ast
Standard

Ich hab schon ganz oft Fussball gespielt
Das mit der Form ist klar, aber das mit der Frische, stimmt, zum Spielende wird diese weniger, und ein eingewechselter Spieler ist selbstverständlich frischer.
Aber was ich meinte, war auch, wenn ich viel und gut trainiere, dann habe ich doch mehr Firsche, als jemand, der nie trainiert.
Wo du das volle Programm erwähnst, da hatte ich auch eine Idee - nämlich, dass man quasi den Einsatz seiner Mannschaft einstellen kann, ob man jetzt mit vollem Einsatz spielt, oder mit weniger, oder übermutiviert.

Das was du da geschrieben hast, hört sich alles sehr gut an, so ähnlich hatte ich mir das auch gedacht.
Ach und zu den Spielzügen - du sagtest, dass nach 10 Spielzügen, der Ball mal langsam die Mannschaft wechseln sollte - ich weiß was du meinst, aber ich kann ja keine Zahl festlegen, nach der die Mannschaft wechselt.
Ich kann doch auch als Sieler wenn ich will, den Ball in der eigenen Hälfte 100 mal hin und her passen

Ich dachte vieleicht eher daran, dass ich das Feld vieleicht in Bereiche oder sowas einteile, und wenn dann z.B ein Pass oder Zweikampf gelingt, dann kommt man einen Bereich (oder auch mehrere) weiter in die Gegnerische Häflte. Und je näher man dem Tor kommt, desto wahrscheinlicher ist es , dass entweder eine Flanke kommt, oder ein Schuss und auch je näher man dran ist, desto wahrscheinlicher geht der Schuss ins Tor usw.

Davon mal abgesehen, weiß ich leider immer noch nicht, wie ich das ganze in eine Formel bringen soll.....
Also die einzelnen Aktionen würde ich wohl hinbekommen - sprich einen Pass, Zweikampf, Torschuss usw.

Nur leider fällt mir immer noch nichts ein, wie ich entscheiden kann ob eine Aktion gelingt, oder nicht.....

Ich müsste/oder würde gerne in diese Formel dann folgende Eigenschaften einbauen:

Spielerstärke, Form, Frische, vieleicht Einsatz, dann vieleicht noch Dinge die du genannt hattest wie Fitness, Zweikampfstärke, Schusskraft, und mir würden bestimmt noch welche einfallen.

In der Formel müssten ja dann quasi diese genannten Eigenschaften sowohl vom Spieler, als auch von seinem Gegenspieler mit einfließen.
(Und um es ganz perfekt zu machen, sollte diese vieleicht später noch ganz leicht erweiterbar sein?)

Aber leider finde ich dazu keine zufriedenstellende Lösung
bageleudi ist offline  
Alt 27.08.2009, 19:42  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von bageleudi Beitrag anzeigen
Wo du das volle Programm erwähnst, da hatte ich auch eine Idee - nämlich, dass man quasi den Einsatz seiner Mannschaft einstellen kann, ob man jetzt mit vollem Einsatz spielt, oder mit weniger, oder übermutiviert.
Warum sollte man mit weniger Einsatz spielen? Wenn dann sollte man es umstellen können, um sich an andere Gegner anzupassen.


Zitat:
Zitat von bageleudi Beitrag anzeigen
Ach und zu den Spielzügen - du sagtest, dass nach 10 Spielzügen, der Ball mal langsam die Mannschaft wechseln sollte - ich weiß was du meinst, aber ich kann ja keine Zahl festlegen, nach der die Mannschaft wechselt.
Ich kann doch auch als Sieler wenn ich will, den Ball in der eigenen Hälfte 100 mal hin und her passen
Unwahrscheinlich. Meiner Meinung nach solltest du die Wahrscheinlichkeit auf einen Fehlpass nach jedem Pass herabsetzen, so dass sie nach ~10 Spielzügen (von mir aus auch erst bei 100) gegen 0 tendiert. War aber auch nur eine Idee.


Zitat:
Zitat von bageleudi Beitrag anzeigen
Ich dachte vieleicht eher daran, dass ich das Feld vieleicht in Bereiche oder sowas einteile, und wenn dann z.B ein Pass oder Zweikampf gelingt, dann kommt man einen Bereich (oder auch mehrere) weiter in die Gegnerische Häflte. Und je näher man dem Tor kommt, desto wahrscheinlicher ist es , dass entweder eine Flanke kommt, oder ein Schuss und auch je näher man dran ist, desto wahrscheinlicher geht der Schuss ins Tor usw.
Das nennt sich American Football Aber für einen einfachen Manager (ist das überhaupt noch ein Manager?) auch OK.


Wie du das vom Code her umsetzt musst du selbst entscheiden. Erstell dir doch erstmal die entsprechenden Klassen:

Team, Coach, Player, Stadium mit ihren jeweiligen Eigenschaften (in der Datenbank ablegen). Danach noch eine "Spielbrett", dem du Stadium und die beiden Teams übergibst. Danach kannst du das Spiel starten ($match->start()) und durch Aufruf von $match->play() oder sowas die Spielsituation jeweils um eins erhöhen. Resultat könnte ein MatchSituation-Objekt sein, in dem alles relevante zur Aktion drinsteht:
beteiligte Spieler, Resultat der Aktion (Tor, Fehlpass, ..) etc.
Ein ViewHelper/ViewRenderer könnte diese Aktion jetzt visualisieren, als Grafik (zweikampf-verloren.png) oder als Text ("Mario Gomez hat den Zweikampf gegen Maik Franz (schon wieder) verloren" )
Den nächsten Spielzug startest du wieder mit $match->play() und die Spielsituation läuft weiter.

Jetzt mal ganz doof für vier gewinnt:
init.php
PHP-Code:
<?php
session_start
();
$player1 = new Connect4_Player_Computer();
$player2 = new Connect4_Player_Human("Heinz");
$match = new Connect4_Board();
$match->registerPlayer($player1);
$match->registerPlayer($player2);
$move $player1->getAutoMove();
$match->start($move);
$viewRenderer = new Connect4_ViewRenderer_HtmlBasic();
echo 
$viewRenderer->render($match);
$_SESSION["connect4"] = $match;
?>
play.php
PHP-Code:
<?php
session_start
();
$match $_SESSION["connect4"];
$player2 $match->getPlayer(2); // heinz
$move $player2->getNewMove();
$move->setChip($_POST["x"], $_POST["y"]);
$match->continue($move);
if (!
$match->hasWinner()) {
  
$move $match->getPlayer(1)->getAutoMove(); // comp
  
$match->continue($move);
}
$viewRenderer = new Connect4_ViewRenderer_HtmlBasic(); // oder *_AnimatedGif z.B.
echo $viewRenderer->render($match);
?>
Vielleicht kannst du das ja als Ansatz gebrauchen (top-down):
Top-down und Bottom-up – Wikipedia

So langsam solltest du aber anfangen mal Code zu schreiben, mehr liefer ich dir nämlich nicht
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 28.08.2009, 17:06  
Neuer Benutzer
 
Registriert seit: 14.08.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
bageleudi befindet sich auf einem aufstrebenden Ast
Standard

Hmm, warum man mit weniger Einsatz spielen sollte, weiß ich grad auch nicht keine Ahnung, vieleicht um sich zu schonen, nicht verletzt zu werden oder sowas - aber hauptsächlich ging es mir darum, dass man den Einsatz erhöhen kann und aggressiver spielen könnte.

Ja klar ist das unwarhscheinlich, aber ich kann nicht festlegen, nach welcher anzahl von passen die Mannschaft gewechselt werden soll.
Aber das mit der Wahrscheinlichkeit auf einen Fehlpass ist gut. Das könnte man machen.

Hehe, nein Amarican Football will ich nicht haben
Wieso sollte das kein Manager sein?
Ich mein ich muss doch irgendwie wissen, oder festlegen können, wo der Ball oder das Spielgeschehen sich gerade auf dem Platz befindet oder?

Ach, was die Berechnung angeht, habe ich glaube ich eine ganz gute Möglichkeit gefunden - habe mich diesbezüglich mit nem Kumpel unterhalten.
Werde es jetzt wohl so machen, dass Eigenschaften wie Form Frische und Kondition usw. die Spielstärke des einzelnen Spielers beeinflussen.

Wenn der Spieler beispielsweise eine Form von 78 hat, dann bekommt er (78/200) auf seine Stärke draufgerechnet das wären dann in diesem Fall 0,39

(Der Default Wert liegt dann bei 50 wobei Werte von 1-100 möglich sind. alles was über 50 liegt beeinflusst die Stärke positiv, alles was darunter liegt, negativ)

Und für die Berechnung, muss ich am Ende dann einfach nur die beiden Stärken der Gegenspieler vergleichen. Ist glaube ich viel einfacher, aber erfüllt das, was ich mir vorgestellt hatte.

Tja.... Leider habe ich mich mit Objekten und Klassen noch nicht beschäftigt
Das verstehe ich noch nicht so ganz... habe in den nächsten Tagen und Wochen ein paar Klausuren usw. daher wird die Zeit ein wenig knapp - aber werde mich da einlesen sobald die Zeit dafür da ist.

Würdet ihr sagen, dass ich es unbedingt mit Objekten und Klassen machen sollte? oder wäre es normal und mit Funktionen auch ok?

Ach und nochwas am Rande? was hast du eigentlich gegen Mario Gomez?
Der hat dir doch nichts getan! (Ich bin aber kein Bayern Fan - falls du das meinst )
bageleudi ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Web Ideen | Der Erfolg! geccoline Off-Topic Diskussionen 1 16.08.2009 17:46
[Erledigt] sqlite und XAMPP und Firefox SQLite Manager: DBs inkompatibel jpr65 Datenbanken 3 04.03.2009 15:45
Berechnung über mehrere Abfragen aus mysql Slappi PHP Tipps 2008 2 18.12.2007 14:22
Suche Ideen und Anregungen für meine Seite.. blinkster.de Beitragsarchiv 3 19.10.2005 20:11
Programmierer gesucht für ein Online Fussball Manager! Beitragsarchiv 3 03.08.2005 11:40
Suche Leute mit Ideen oder ein Team das Unterstützung sucht. Beitragsarchiv 11 12.07.2005 13:02
[Erledigt] Berechnung nicht ganz korrekt PHP Tipps 2005-2 6 20.06.2005 16:42
berechnung im select für eine andere berechnung benutzen Datenbanken 4 13.05.2005 11:29
Komplizierte Berechnung - HILFE! djma PHP Tipps 2005 8 25.04.2005 21:38
Coder für Entwicklung eines Online Fussball Managers Beitragsarchiv 16 20.09.2004 10:46
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fußball berechnen, fussball berechnen, fussballspiel berechnen, fußballspiel berechnen, spielstärke berechnen, fussball berechnung, fußball quoten berechnen, quote berechnen php, fussballspiele berechnen, http://www.php.de/php-einsteiger/58430-fussball-manager-ideen-fuer-berechnung.html, fußballfeld berechnen, trefferquote berechnen fußball, fussball manager spielberechnung, fußball berechnung, berechnung fussballspiel, fußball manager berechnungen, php quoten berechnen, fussball manager berechnung, fussball quote berechnen, zufall tore berechnung

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum