Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
Developing Games That Learn

Inside the book

Sample Chapters Table of Contents Index Introduction

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

Developing Games That Learn
Leonard Dorfman and Narendra K. Ghosh

1996 | 300 pages
ISBN: 135696178
  $34.95 Softbound print book Out of print (?)

Table of Contents

Dedications v
About the authors xii
Introduction xiii
 
1What is objective artificial intelligence? 1
1.1A brief model of human consciousness 2
1.2A brief model of program consciousness 4
1.3Additional complications 5
1.4Objective artificial intelligence 6
Program instinct 7
Program learning 7
Program consciousness 7
1.5OAI suitability query 7
Is there any benefit from demonstrating humanlike performance? 8
What do you want the program to learn? 8
What is the nature of the demonstrated learning's quantifiable results? 9
1.6OAI implementation overview 9
Problem statement 10, OAI analysis 11, OAI design 11
1.7Summary 12
 
2Case study - Tic Tac Toe 13
2.1Suitability query 14
2.2OAI implementation overview of Tic Tac Toe 14
Problem statement 14
Analysis 14
Analysis discussion 15
Design 15
Design discussion 15
2.3Tic Tac Toe version 1 16
2.4Tic Tac Toe version 2 29
2.5Tic Tac Toe version 3 31
2.6Summary 48
 
3Drop Four case study overview and analysis 49
3.1Four-in-a-row genre games 50
3.2Drop Four case study 51
3.3Drop Four's OAI suitability query 51
Is there any aspect of the program which will benefit from humanlike performance? 51
What do you want your program to learn? 52
What is the nature of Drop Four's demonstrable learning? 52
3.4OAI implementation overview of Drop Four 52
Drop Four problem statement 52
Drop Four analysis (branch 1) 53
Drop Four analysis (branch 2) 53
Analysis discussion 53
Analyzing Drop Four program instinct 54
3.5Summary 59
 
4OAI design of Drop Four 61
4.1Transition from analysis to design 61
Design-branch 1 61
Design-branch 2 62
4.2Historical notes 62
Analyzing Drop Four program learning-move list data 63
Reality intervenes 65
Analyzing Drop Four program learning-memory markers 66
Reality intervenes 66
A return to marker analysis 67
4.3Selecting programming environment and tools 67
Designing Drop Four game play features 68
Designing move selection sequence 68
Designing Drop Four program instinct 69
Designing Drop Four program learning 70
4.4Summary 71
 
5Drop Four's DOS platform move selection 73
5.1Define statements and function map 73
5.2In the beginning 80
5.3Summary 99
 
6Drop Four program instinct: Basic concepts mediating move generation 101
6.1The coffin[] array 102
6.2The init_coffin() function 105
6.3The create_coffin(turn) function 105
6.4The create_coffin_o(opponent) function 108
6.5The create_win_board() function 110
6.6The coffin_pattern(turn) function 111
6.7The coffin_corner( UCHAR turn ) function 113
6.8Summary 114
 
7Drop Four program instinct: Move decision scheme 115
7.1The get_computer_move_first(...) function 115
7.2Summary 143
 
8Drop Four program instinct: Ply searching 145
8.1Ply search data and functions 145
8.2Initializing ghost boards 148
8.3Relocating data between ghost boards 148
8.4Getting the number of pieces in a ghost column 149
8.5Determining double wins on ghost boards 150
8.6Determining wins on ghost boards 151
8.7Searching for winning positions in ghost boards 152
8.8Can Dr. Plopper win on the next move? 154
8.9Will Dr. Plopper have to block a human win? 155
8.10Can Dr. Plopper set up a forced win in two moves? 157
8.11Dr. Plopper stops a two-move win setup for the human 159
8.12Dr. Plopper blocks a two-ply fork by human 161
8.13Summary 163
 
9Drop Four program instinct: Primitive pattern-matching 165
9.1Program instinct: non-ply positional moves 166
9.2Program instinct: opening book positional moves 167
9.3Program instinct: opening book defensive moves 171
9.4Program instinct: opening book offensive moves 191
9.5Summary 199
 
10Drop Four program instinct: Advanced positional move generation 201
10.1In search of a general board position evaluation algorithm 201
10.2Searching for three-filled patterns on the board 202
10.3Searching for three-filled patterns on ghost1 203
10.4Returning a move which creates three-filled patterns 203
10.5General position evaluation 205
10.6Summary 227
 
11Drop Four program learning: Analyzing a loss 229
11.1Adding a move to the move list 229
11.2First-move analysis 231
11.3Level-two analysis opponent_type_move(...) support function 233
11.4Second move analysis 234
11.5Second move computer analysis 235
11.6Offensive first move analysis 236
11.7Offensive second move analysis 237
11.8Offensive second move computer analysis 238
11.9Implementation of marker disruption via first_pat_analysis(...) 239
11.10Adding a three-filled marker record and mirror to the program subconscious 250
11.11Summary 252
 
12Drop Four program learning: Implementation 253
12.1Finding winning patterns 253
12.2Learning is demonstrated via first_move_check(...) 256
12.3Learning is demonstrated via second_move_check(...) 258
12.4Learning is demonstrated via first_human_win(...) 259
12.5Learning is demonstrated via second_human_win(...) 260
12.6Learning is demonstrated via off_first_human_win(...) 262
12.7Learning is demonstrated via off_second_human_win(...) 263
12.8The off_first_move_check(...) function 265
12.9The off_second_move_check(...) function 266
12.10Summary 267
 
13Transferring the program subconscious to and from disk and RAM 269
13.1Transferring the program subconscious from hard disk to RAM 269
13.2Transferring the program subconscious from RAM to hard disk 272
13.3Summary 273
 
Epilogue 275
Index 277

DESCRIPTION

If you've ever wondered how to empower your software with the ability to learn from experience, this book is for you. Developing Games That Learn shows in detail how to implement single-trial learning, illustrating its approach in board games Tic Tac Toe and a more complex game called Drop Four. The authors discuss the learning algorithms and present the source code that implements them.

The program learning techniques are presented in sufficient detail to be useful for practical software design. They are particularly suited to computer game development, but can also be used in other areas. This book provides valuable guidance for programmers, project leaders, and game designers.

Existing approaches to program learning are often of the "dumb" type-the program simply learns not to repeat any sequence that led to failure. Authors Dorfman and Ghosh take a more powerful path: for each example of failure, their method first finds the point of no return-the point after which the game was certain to be lost. Then that point is prevented from being reached via any of a number of different (but equivalent) paths, not just the single path actually played, thus accelerating the learning.

If you are interested in using these techniques in applications other than games, the authors discuss ways to do that.

ABOUT THE AUTHORS...

Leonard Dorfman, Ph.D., is the author of 22 computer science books, concentrating on C, C++, and Assembly language, a black comic novel, and four commercial software products. He has a strong background in educational research, and interest in psychology, philosophy, and Buddhist studies. He's a teacher and writer, and keeps shop at MultiGrain Solutions, a software development company.

Narendra K. Ghosh is currently obtaining a degree in computer science from Harvard University. He worked cooperatively with Len in developing Objective Artificial Intelligence and the learning algorithms, and in implementing the code used in the demonstration programs.

Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.