Hehe… ich erinnere mich noch an Deine Beiträge vor gut 1,5 Jahren… selbstlernen ist für Dich wie das Weihwasser für den Teufel, oder? Und nachdenken… auch nicht so Dein Fall
Naja… macht nix. Bevor ich jetzt sage das es soetwas in der Schule eigentlich nur gibt, wenn vorher entsprechend logische/technische Fertigkeiten vermittelt worden sind, versuche ich mal nett zu werden
KI ist absolut zu hochgegriffen. Gerade bei einem solchen trivialen Spielprinzip.
Das was hier ausschlaggebend ist, sind die Zufallskomponenten und bedingte Anweisungen bzw. switch()'es.
Ansonsten hast Du bei sauberer logischer Konzipierung immer den Computer als Sieger bzw. Dich, wenn Du ebenfalls genauso logisch denkst und man entsprechend das ganze nur noch vom „wer fängt an“ abhängig machen kannst.
Daher baue zunächst verschachtelte, bedingte Anweisungen. Ich denke, dass in Deinen Fall eine prozedurale Lösung der objektorientierten vorzuziehen ist… oder kennst Du Dich mit Objektinstanzen und Methoden, Klassen aus?
Dann überlege, wieviele verschiedene Möglichkeiten es gibt. Also jedes Szenario simulieren. Und aus dieser Menge dann mittels der Interaktion quasi immer logische Schlußfolgerungen ziehen.
Am Ende solltest Du, wenn das in Diagrammform vorliegt, eine Art „Baumdiagram“ haben, welches ideal die Überschrift „mehrere Wegen führen nach Rom“ haben könnte.
Verzichtest Du zunächst auf „zufällige Fehler“ des Computers kannst Du auch so bestimmen, wie hoch die „Wahrscheinlichkeit“ eines Sieges einer entsprechenden Partei an bestimmten Positionen des Baumdiagram sein kann. Aber ich glaube, dafür ist der Spielverlauf zu trivial… das wäre dann nämlich so die Art „Schach / Matt“ Prinzip.
Nun gut… danach bildest Du das Diagramm halt mit if/else oder in verschachtelten switch() Objekten ab.
Zum guten Schluss machst Du den Computer doof. Baue in die bedingten Anweisungen einfach immer eine Zufallsvariable ein, die Du am besten vorher global definierst um so später die „Schwierigkeitsgrade“ unterscheiden zu können.
Diese Variable sieht dann in etwa so aus… nur ganz grob, unsauber und auch nicht wirklich gut… aber halt ein Beispiel zur „Illustration“
PHP:
<?php
//…
if($logic===true && rand($handycap, $skill*$difficulty) < $com) {
//logischer nächster Schritt
} else {
//gib human auch ma' ne chance }
//…
Am Ende kannst Du dann true für den Mensch oder false für den Computer als Sieger ausgeben lassen und entsprechend ein echo() setzen.
Wichtig ist übrigens, dass Du immer eine „Transportvariable“ hast, die den derzeitigen Spielverlauf berücksichtigt, sonst landest Du ja nach jeder Interaktion wieder am Anfang.
Und jetzt… viel Spaß beim Denken. Einfach „so“ ist das nicht möglich. Ich würde da gut 10 Stunden dransitzen… objektorientiert…
Yves