KI-Algorithmen verstehen, Python-Skills erweitern und Spiele programmieren - alles in einem Buch. Anhand von 10 Klassikern wie Eliza, TicTacToe und PacMan führt Pyhton-Dozent Jens Gaulke Sie in die faszinierende Welt der Künstlichen Intelligenz ein. Lernen Sie, wie Sie 2D-Spiele mit pygame entwickeln und implementieren Sie die KI für clevere Gegner direkt dort. Mit Q-Learning, Alpha-Beta-Pruning und Co. entwickeln Sie dabei Skills, die weit über die Arcade-Welt hinaus nützlich sind. Mit vielen Codebeispielen auch zum Herunterladen, Übungen und Vertiefunsideen ideal für alle, die einen Hands-on-Zugang lieben und sich in Sachen KI und Python weiterentwickeln möchten.
Aus dem Inhalt:
- Einen Chatbot mit GUI entwickeln
- Einführung in Pygame
- Q-Learning am Beispiel von TicTacToe
- Constraint Satisfaction für eigene Sudokus
- Austauschbare KIs für Reversi
- KI-Gegner in Maze Madness und Maze-Man
- Level-Design für Maze- und Platformer-Spiele
- Maus, GamePad und Co. abfragen
- Wichtige Entwurfsmuster und Best Practices
- Zustandsautomaten für komplexe Gegner
- Dynamisch generierte Spielwelten
- Exklusiv für das Buch entwickelte Spiele
Inhaltsverzeichnis
Danksagung . . . 19
Materialien zum Buch . . . 21
1. Einleitung . . . 23
1. 1 . . . Ich freue mich, dass Sie dabei sind . . . 24
1. 2 . . . Was erwartet Sie in diesem Buch? . . . 24
1. 3 . . . Abgrenzung zu modernen KI-Technologien . . . 25
1. 4 . . . Was genau ist in diesem Buch zu finden? . . . 27
1. 5 . . . Ist dieses Buch für Sie geeignet? . . . 34
1. 6 . . . Das Ziel dieses Buches . . . 37
1. 7 . . . Wenn ich weiter gesehen habe . . . . . . 38
2. Software . . . 41
2. 1 . . . Alternative 1: Installation von Python . . . 42
2. 2 . . . Alternative 2: Installation von Anaconda . . . 44
2. 3 . . . Installation von Pygame . . . 45
2. 4 . . . Installation von Visual Studio Code . . . 46
2. 5 . . . Erste Schritte mit Visual Studio Code . . . 48
2. 6 . . . Extensions installieren und nutzen . . . 50
2. 7 . . . JupyterLab installieren . . . 52
3. Hi! I' m Eliza . . . 55
3. 1 . . . Was ist Eliza? . . . 56
3. 2 . . . Was ist ein Turing-Test? . . . 57
3. 3 . . . Woher kommt der Name Eliza? . . . 59
3. 4 . . . Das MVC-Entwurfsmuster . . . 60
3. 5 . . . Ablauflogik von Eliza . . . 62
3. 6 . . . Implementierung von Eliza . . . 64
3. 7 . . . Ausblick . . . 94
3. 8 . . . Literatur und Quellenangaben . . . 94
4. Eliza revamped . . . 95
4. 1 . . . Was ist Pygame? . . . 96
4. 2 . . . Pygame installieren . . . 97
4. 3 . . . Architektur einer Pygame-Anwendung . . . 98
4. 4 . . . Pygame trifft Eliza . . . 105
4. 5 . . . Elizas Struktur . . . 138
4. 6 . . . Zusammenfassung . . . 140
4. 7 . . . Ausblick . . . 141
4. 8 . . . Literatur- und Quellenangaben . . . 141
5. Nim . . . 143
5. 1 . . . Ordnerstrukturen für größere Projekte . . . 144
5. 2 . . . Backtracking und Rekursion . . . 146
5. 3 . . . Strategie und Mathematik hinter Nim . . . 158
5. 4 . . . Der Minimax-Algorithmus . . . 159
5. 5 . . . Implementierung von Minimax am Beispiel von Nim . . . 166
5. 6 . . . Der komplette Quelltext . . . 174
5. 7 . . . Ausblick . . . 177
5. 8 . . . Literatur und Quellenangaben . . . 178
6. Nim unleashed . . . 179
6. 1 . . . Projektstruktur anlegen . . . 180
6. 2 . . . Nim nach PyGame migrieren . . . 184
6. 3 . . . Ich krieg Zustände . . . . . . 211
6. 4 . . . Eine Optimierung für die GUI-Komponenten . . . 214
6. 5 . . . Ausblick . . . 216
6. 6 . . . Literatur und Quellenangaben . . . 216
7. Tic-Tac-Toe . . . 217
7. 1 . . . Projektstruktur anlegen . . . 218
7. 2 . . . Das Board und die Regeln . . . 218
7. 3 . . . Die drei KIs . . . 221
7. 4 . . . Die GUI erstellen . . . 235
7. 5 . . . Die Control-Klasse . . . 247
7. 6 . . . Ausblick . . . 254
8. Tic-Tac-Q . . . 255
8. 1 . . . Q-Learning . . . 256
8. 2 . . . Swampy Fields . . . 262
8. 3 . . . Q-Learning in Tic-Tac-Toe . . . 270
8. 4 . . . Ausblick . . . 282
8. 5 . . . Literatur und Quellenangaben . . . 282
9. Black & White . . . 283
9. 1 . . . Projektstruktur anlegen . . . 285
9. 2 . . . Das Board und die Regeln . . . 286
9. 3 . . . Alpha-Beta Pruning . . . 301
9. 4 . . . Die KI . . . 304
9. 5 . . . Die GUI erstellen . . . 317
9. 6 . . . Animationen und Daumenkinos . . . 325
9. 7 . . . Die Control-Klasse . . . 331
9. 8 . . . Ausblick . . . 338
9. 9 . . . Literatur und Quellenangaben . . . 339
10. Black & White: Denken und Steuern . . . 341
10. 1 . . . State Charts . . . 342
10. 2 . . . Beispiele für State Charts . . . 344
10. 3 . . . Ein Menüsystem . . . 358
10. 4 . . . Optimierung des Alpha-Beta Prunings . . . 379
10. 5 . . . Ausblick . . . 400
11. Von Sudoku zu intelligenten Lösungen . . . 401
11. 1 . . . Was ist ein CSP? . . . 402
11. 2 . . . Warum Sudoku? . . . 403
11. 3 . . . Was ist ein Sudoku? . . . 404
11. 4 . . . Sudokus erzeugen . . . 414
11. 5 . . . Schrödingers Sudoku -- Aspekte der Quantenmechanik . . . 428
11. 6 . . . Sudokus lösen . . . 432
11. 7 . . . Wo ist das Projekt? . . . 439
11. 8 . . . Sound und Musik . . . 440
11. 9 . . . Export als PDF, PNG, PPT . . . 444
11. 10 . . . Ausblick . . . 445
11. 11 . . . Literatur und Quellenangaben . . . 446
12. Maze Madness . . . 447
12. 1 . . . Irrgärten erzeugen . . . 448
12. 2 . . . Das Spielkonzept von Maze Madness . . . 457
12. 3 . . . Steuerung des Spiels . . . 459
12. 4 . . . Grafiken . . . 467
12. 5 . . . Gold einbinden . . . 471
12. 6 . . . Die Geister . . . 473
12. 7 . . . Selina V2. 0 . . . 480
12. 8 . . . Erweiterungen an Maze und MazeCell . . . 485
12. 9 . . . Die Geister V2. 0 . . . 487
12. 10 . . . Das finale Gameplay . . . 490
12. 11 . . . Wo ist das Projekt? . . . 494
12. 12 . . . Ausblick . . . 494
12. 13 . . . Literatur und Quellenangaben . . . 495
13. Die Geister, die ich rief . . . 497
13. 1 . . . Urheberrecht . . . 498
13. 2 . . . Maze Man . . . 499
13. 3 . . . Prozedurale Irrgärten . . . 499
13. 4 . . . Die Logik der Gegner . . . 518
13. 5 . . . Der Spieler . . . 531
13. 6 . . . Wie geht es nun weiter? . . . 531
13. 7 . . . Ausblick . . . 532
13. 8 . . . Literatur und Quellenangaben . . . 533
14. Tut' s Treasure . . . 535
14. 1 . . . Urheberrecht . . . 537
14. 2 . . . Ideen für unser Spiel . . . 539
14. 3 . . . WFC -- Wave Function Collapse . . . 540
14. 4 . . . Ist WFC künstliche Intelligenz? . . . 545
14. 5 . . . Mit WFC zu Platformer-Leveln . . . 546
14. 6 . . . Der WFC-Code . . . 550
14. 7 . . . Wegesuche mit A* . . . 562
14. 8 . . . A* Im Irrgarten . . . 564
14. 9 . . . Überblick über das Spiel . . . 575
14. 10 . . . Ausblick . . . 607
14. 11 . . . Literatur und Quellenangaben . . . 608
15. Spektiven . . . 609
15. 1 . . . Retro-Spektive . . . 610
15. 2 . . . Per-Spektive . . . 612
15. 3 . . . Pro-Spektive . . . 612
15. 4 . . . Intro-Spektive . . . 613
15. 5 . . . Das Ende einer Reise -- die Freude bleibt . . . 614
Index . . . 615