Links für einfache Spiel-algorithmen
Las ich diese Frage und ich erinnere mich der Wikipedia-Liste von algorithmen. Ich weiß, dass Wikipedia eine Liste von Open-Source-Spiele auch, aber was ich will, ist ein links-für einfache Spiel-algorithmen, auch wenn geschrieben in pseudocode.
Als "einfache" Spiele, ich meine Spiele wie Sudoku, Bejeweled, Solitaire, Minesweeper, Labyrinth, Schlangen, Gorillas, Schach, Tetris, etc.
Bonus für C# source code 🙂
- Redest du über KI-algorithmen, um diese Spiele zu spielen?
- Das ist sehr breit. Betrachten Sie die Konzentration auf algorithmen für ein Spiel pro Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meisten spielen algorithmen sind einfach such-algorithmen. In der Tat könnte man sagen, dass AI ist suchen.
Für Sudoku, Tanz-links ist ein guter Algorithmus. Alternativ ist es gelöst sehr prägnant im Prolog.
Für Schach, beginnen Sie mit Minimax, dann versuchen Minimax mit alpha-beta-pruning.
Minesweeper ist NP-vollständig. Es gibt keine bekannten zuverlässigen und schnelle algorithmen.
Als die anderen haben ziemlich viel angedeutet, die Vorstellung von einem 'Algorithmus' für ein Spiel nicht wirklich fit, außer etwas trivial und nicht besonders Spiel-wie Leben. Ein Algorithmus ist ein Verfahren um eine Menge von Daten in einer bekannten Art und Weise zu produzieren, die eine bestimmte Ausgabe der Daten, die typischerweise in irgendeine Art von Zeit/Komplexität gebunden. Spiele passen nicht diese einfachen Kriterien - Sie sind so etwas wie Simulationen, wo Sie immer wieder verändern den Zustand von Objekten basiert auf der Eingabe, bis die Spiel-spezifischen Bedingungen erreicht werden. Als solche sind Sie fast alle Folgen der input->updaten->Anzeige-Schleife mit maßgeschneiderten Spiel-Logik in der update-Phase. Einzelne Teile des Spiels, die zweifellos umgesetzt in Bezug auf die einfache und bekannte algorithmen, aber das Spiel-Programm selbst ist wirklich nur der Simulations-Schleife und die Logik innerhalb.
Sie können nicht viel einfacher als Conway ' s Spiel des Lebens. Es gibt nur vier Regeln:
Kann es leicht in einer beliebigen Sprache implementiert, erfordert zero Spieler, und produziert einige interessante Muster.
Was über algorithmen, nicht für die Spiele, aber für relativ komplexe Aufgaben in Ihnen. Zum Beispiel, in Bejeweled, haben Sie eine 8x8-Gitter, gefüllt mit Juwelen in einer der 7 Farben. Zu jeder Zeit gibt es etwa 8 Steine je Farbe. Nachdem sich ein Benutzer bewegt sich ein Juwel, ein Spiel erstellen, mindestens drei Juwelen (alle gleiche Farbe) verschwindet vom Bildschirm, und drei neue fallen auf dem Bildschirm. Wie stellen Sie sicher, dass es immer mindestens einen Treffer auf dem Display? Wie stellen Sie sicher, dass die Spiele voraussichtlich erscheinen auf dem Bildschirm, und nicht nur oben?
Ereignis dachte, die Spiele, die du oben erwähnt IST einfach, ich glaube nicht, dass der Algorithmus für diese Spiele nicht. (Wirklich nichts für ungut :))
Hier ist der Algorithmus, der für die meisten Spiele:
Sobald das Spiel initialisiert ist...
Hoffe, das hilft.