附註:Intro -- Title -- Copyright -- Dedication -- Foreword -- Content of This Book -- Making Smarter Games -- To the Future -- Acknowledgments -- About the Author -- Contents at a Glance -- Contents -- Introduction -- Part One Windows Programming -- CHAPTER 1 In the Beginning, There Was a Word, and the Word Was Windows -- And Then Came Word, and Excel, andâ#x80;¦ -- A Little Bit of History -- Windows 1.0 -- Windows 2.0 -- Windows 3.0/3.1 -- Windows 95 -- Windows 98 Onward -- Hello World! -- Your First Windows Program -- Hungarian Notation:What 's That About? -- Your First Window -- Registering Your Window -- Creating the Window -- The Windows Message Pump -- The Windows Procedure -- The WM_CREATE Message -- The WM_PAINT Message -- The WM_DESTROY Message -- What about the Rest? -- Keyboard Input -- Virtual Key Codes -- Tah Dah! -- CHAPTER 2 Further Adventures with Windows Programming -- The Windows GDI -- Device Contexts -- So How Do You Get a Handle? -- Tools of the Trade: Pens, Brushes, Colors, Lines, and Shapes -- Creating Custom Pens -- Brushes -- CreateSolidBrush -- CreateHatchBrush -- CreatePatternBrush -- Shapes -- Rectangle -- Ellipse -- Polygon -- Text -- TextOut -- DrawText -- Adding Color and Transparency -- A Real-Time Message Pump -- How to Create a Back Buffer -- That Sounds Great,but How Do You Do It? -- Okay, I Have My Back Buffer, Now How Do I Use It? -- Keeping It Tidy -- Using Resources -- Icons -- Cursors -- Menus -- Adding Functionality to Your Menu -- Dialog Boxes -- A Simple Dialog Box -- Now for Something More Useful -- Getting the Timing Right -- At Last! -- Part Two Genetic Algorithms -- CHAPTER 3 An Introduction to Genetic Algorithms -- The Birds and the Bees -- A Quick Lesson in Binary Numbers -- Evolution Inside Your Computer -- What's Roulette Wheel Selection? -- What's the Crossover Rate? -- What's the Mutation Rate? -- Phew!.
Helping Bob Home -- Encoding the Chromosome -- Epoch -- Choosing the Parameter Values -- The Operator Functions -- Roulette Wheel Selection Revisited -- Crossover Revisited -- Mutation Revisited -- Running the Pathfinder Program -- Stuff to Try -- CHAPTER 4 Permutation Encoding and the Traveling Salesman Problem -- The Traveling Salesman Problem -- Traps to Avoid -- The CmapTSP, SGenome, and CgaTSP Declarations -- CmapTSP -- SGenome -- CgaTSP -- The Permutation Crossover Operator (PMX) -- The Exchange Mutation Operator (EM) -- Deciding on a Fitness Function -- Selection -- Putting It All Together -- The #defines -- Summary -- Stuff to Try -- CHAPTER 5 Building a Better Genetic Algorithm -- Alternative Operators for the TSP -- Alternative Permutation Mutation Operators -- Scramble Mutation (SM) -- Displacement Mutation (DM) -- Insertion Mutation (IM) -- Inversion Mutation (IVM) -- Displaced Inversion Mutation (DIVM) -- Alternative Permutation Crossover Operators -- Order-Based Crossover (OBX) -- Position-Based Crossover (PBX) -- The Tools of the Trade -- Selection Techniques -- Elitism -- Steady State Selection -- Fitness Proportionate Selection -- Roulette Wheel Selection -- Stochastic Universal Sampling -- Tournament Selection -- Scaling Techniques -- Rank Scaling -- Sigma Scaling -- Boltzmann Scaling -- Alternative Crossover Operators -- Single-Point Crossover -- Two-Point Crossover -- Multi-Point Crossover -- Niching Techniques -- Summing Up -- Stuff to Try -- CHAPTER 6 Moon Landings Made Easy -- Creating and Manipulating Vector Graphics -- Points, Vertices, and Vertex Buffers -- Transforming Vertices -- Translation -- Scaling -- Rotation -- Putting It All Together -- Matrix Magic -- Okay, but What Exactly Is a Matrix? -- How to Multiply Two Matrices Together -- The Identity Matrix -- Using Matrices to Transform Vertices -- Translation -- Scaling.
Rotation -- Now for the Magic Part -- What's a Vector? -- Adding and Subtracting Vectors -- Calculating the Magnitude of a Vector -- Multiplying Vectors -- Normalizing Vectors -- Resolving Vectors -- The Magical Marvelous Dot Product -- The SVector2D Helper Utilities -- What a Clever Chap That Newton Fellow Was -- Time -- Length -- Mass -- Force -- Motion-Velocity -- Motion-Acceleration -- Feel the Force, Luke -- Gravity -- The Lunar Lander Project-Manned -- The CController Class Definition -- The CLander Class Definition -- The UpdateShip Function -- A Genetic Algorithm Controlled Lander -- Encoding the Genome -- Crossover and Mutation Operators -- The Fitness Function -- The Update Function -- Running the Program -- Summary -- Stuff to Try -- Part Three Neural Networks -- CHAPTER 7 Neural Networks in Plain English -- Introduction to Neural Networks -- A Biological Neural Network-The Brain -- The Digital Version -- Now for Some Math -- Okay, I Know What a Neuron Is, but What Do I Do with It? -- The Smart Minesweeper Project -- Choosing the Outputs -- Choosing the Inputs -- How Many Hidden Neurons? -- CNeuralNet.h -- SNeuron -- SNeuronLayer -- CNeuralNet -- CNeuralNet::CreateNet -- CNeuralNet::Update -- Encoding the Networks -- The Genetic Algorithm -- The CMinesweeper Class -- The CMinesweeper::Update Function -- The CController Class -- The CController::Update Method -- Running the Program -- A Couple of Performance Improvements -- Improvement Number One -- Improvement Number Two -- Last Words -- Stuff to Try -- CHAPTER 8 Giving Your Bot Senses -- Obstacle Avoidance -- Sensing the Environment -- The Fitness Function -- Giving Your Bots a Memory -- The Fitness Function -- Summary -- Stuff to Try -- CHAPTER 9 A Supervised Training Approach -- The XOR Function -- How Does Backpropagation Work? -- Adjusting the Weights for the Output Layer.
Adjusting the Weights for the Hidden Layer/s -- An Example -- Changes to the CNeuralNet Code -- RecognizeIt-Mouse Gesture Recognition -- Representing a Gesture with Vectors -- Training the Network -- Recording and Transforming the Mouse Data -- Adding New Gestures -- The CController Class -- Some Useful Tips and Techniques -- Adding Momentum -- Overfitting -- The Softmax Activation Function -- Applications of Supervised Learning -- A Modern Fable -- Stuff to Try -- CHAPTER 10 Real-Time Evolution -- Brainy Aliens -- Implementation -- Roswell Revisited: An Alien Brain Autopsy -- Alien Evolution -- The CController::Update Method -- Running the Program -- Stuff to Try -- CHAPTER 11 Evolving Neural Network Topology -- The Competing Conventions Problem -- Direct Encoding -- GENITOR -- Binary Matrix Encoding -- Some Related Problems -- Node-Based Encoding -- Path-Based Encoding -- Indirect Encoding -- Grammar-Based Encoding -- Bi-Dimensional Growth Encoding -- NEAT -- The NEAT Genome -- SLinkGene -- SNeuronGene -- CGenome -- Operators and Innovations -- CGenome::AddLink -- How Innovations Help in the Design of a Valid Crossover Operator -- Speciation -- Testing for Compatibility -- The CSpecies Class -- The Cga Epoch Method -- Converting the Genome into a Phenotype -- The SLink Structure -- The SNeuron Structure -- Putting the Bits Together -- The CNeuralNet Class -- Running the Demo Program -- Summary -- Stuff to Try -- Part Four Appendixes -- APPENDIX A Web Resources -- URLs -- www.gameai.com -- www.ai-depot.com -- www.generation5.org -- www.citeseer.com -- www.gamedev.net -- www.ai-junkie.com -- www.google.com -- Newsgroups -- APPENDIX B Bibliography and Recommended Reading -- Technical Books -- Papers -- Thought-Provoking Books -- Bloody-Good SF Novels! -- APPENDIX C What's on the CD -- Support -- Epilogue -- Index -- A -- B -- C -- D -- E -- F -- G.
H -- I -- J -- K -- L -- M -- N -- O -- P -- Q -- R -- S -- T -- U -- V -- W -- X -- Y.
Includes bibliographical references and index.