| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Hi. Ich bin dabei eine Schachlösung (Übungszwecken) zu entwickeln. Als grobes Vorbild orientiere ich mich hierbei an Fritz (http://de.wikipedia.org/wiki/Fritz_%28Schach%29) - natürlich nicht ganz so ausgeklügelt In der Konzeptionsphase bin ich schon recht weit, hake jetzt doch an einem Punkt: Fritz "lernt" praktisch gewisse Stellungen oder gute Zugabfolgen bzw. das spielerische Vorgehen des einzelnen (und optimiert sich dadurch weiter). Wie lässt sich sowas umsetzen? Bin in der Hinsicht etwas "kreativlos". Brüchte nen Gedankenanstoss - danke mfg Wolf29
__________________ while (!asleep()) sheep++; Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen. |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | algorytmische Observation der Züge und traversion über observierte Züge und deren Bevorzugung gegenüber logische Züge der Schach-AI, würde ich hier wohl anwenden. Zu deutsch: Du merkst dir Spielzüge 1-20, vergleichst diese in erster Charge ob sie möglich sind und in 2ter Charge welcher "klüger" wäre. Könnte man auch mit Schwierigkeitsgraden situieren. Gleichauf der bekannten Premisse: Ein Computer ist nicht intelligent, er wiederholt ( traversiert ) nur jede mögliche Alternative die ihm beigebracht wurde. Könnte man "Knock-Rocking" nennen.
__________________ |
| | |
| | |
| Erfahrener Benutzer | Wenn gleichgewicht unter Zügen identifiziert wird "randomizing" nutzen und den (Pseudo)-Zufall entscheiden lassen. Schach-Mechanik ist nicht anhand angedeuteter Algos zu erklären, da musst du dir schon ein Schema setzen das du verfolgen willst. Oder ob du Unterschiedliche Engines einbaust die als gegenspieler Arbeiten oder miteinander Kombiniert werden können, liegt quasi bei dir. Letzteres wär sicher sehr interessant zu realisieren.
__________________ |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Wenn dein Algorithmus ein paar Züge vorausdenkt, hast du ja eine gewisse Ahnung, welchen Zug der Gegner im für ihn optimalen Fall machen sollte. Wenn er den dann nicht macht und die KI damit in eine bessere Position bringt, als erwartet, war es ein schlechter Zug. Eine Funktion zur Bewertung einer Stellung wirst du ja vermutlich so oder so brauchen. Dann kannst du also auch grob bestimmen, in welchem Maß der Zug gut oder schlecht war. Um daraus einen verwertbaren Lerneffekt zu ziehen, müsstest du die Stellung und den gemachten Zug der KI und den fehlerhaften Gegenzug dann noch irgendwie kategorisieren: Gambit/Figurentausch (nicht) angenommen, defensiven Zug gemacht und Initiative abgegeben, Springer gezogen, obwohl Turm günstiger gewesen wäre, Brettmitte oder eigene Figuren nicht ausreichend gedeckt, … Das kann dann in die Bewertungen von Zügen einfließen, indem etwa die Gewichtung erhöht wird, mit der eine Stellung bewertet wird, die einen Turm attackiert oder so. Verhältnismäßig einfach wäre wohl so was: Gegner macht immer Fehler, wenn er Türme ziehen sollte. Also wird die Bewertung der gegnerischen Türme runtergestuft, sodass sich die KI eher um die Figuren kümmert, mit denen der Gegner gut ist. Hm, verhältnismäßig einfach ist dabei vermutlich gar nichts. |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Zitat:
.Zitat:
Kleine Endfrage: schwanke noch zwischen MySQL und MSSQL als DB System. Tendiere aber zu MSSQL wegen Stored Procedures und Triggermöglichkeiten (und gefühlte bessere Performance). Selbe Einschätzung? Danke Dir. mfg Wolf29
__________________ while (!asleep()) sheep++; Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen. | ||
| | |
| | ||||||
| Erfahrener Benutzer Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | @mermshausen: Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
![]() mfg Wolf29
__________________ while (!asleep()) sheep++; Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen. | |||||
| | |
| | |
| Erfahrener Benutzer | Oracle 11g oder wenn du dich an ein System geißeln willst MSSQL. MySQL ist in dem Bezug zwar ausreichend, aber nunja, warum nicht mal eine andere Dimension wagen, wenn man schon komplexere Algorytmik über die Datenbank laufen lassen will. ORDBMS bieten da noch weit mehr als SPs, alternativ kannst du auch DODs nutzen.
__________________ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Schach PGN Viewer | hans.karl2 | Beitragsarchiv | 0 | 20.08.2005 16:13 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| schach php, php schach, schach ajax php, html schachbrett php, html/php schach, schach als php, schach in php realisieren |