A.I. in board games
Aron Lindberg, s042422
Technical University of Denmark
Informatics and Mathematical Modelling Thesis tutored by Thomas Bolander August 19, 2007
i
Abstract
In this thesis, a board game named Kolibrat is implemented in the Objective-C programming language and Apple Computers Cocoa API. Besides from documenting this work, the thesis focus on the development of artificial players.
ii
Resum´ e
I denne afhandling bliver et brætspil Kolibrat implementeret i programmerings sproget Objective-C og Apple Computers Cocoa API. Udover at dokumenterer dette arbejde fokuserer denne afhandling p˚ arbejdet med a udviklingen af kunstigt intelligente spillere.
iii
Contents
1 Preface 1.1 Preconditions . . . . 1.2 Aims and limitations 1.2.1 Limitations . 1.3 Structure of thesis . 1 2 3 3 4 5 5 6 6 6 6 6 7 8 9 11 16 16 18 19 20 20 20 23 25 27
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 Game Development 2.1 Concept design . . . . . . . . . 2.1.1 Graphical user interface 2.1.2 Game Controller . . . . 2.1.3 Game Engine . . . . . . 2.1.4 Players . . . . . . . . . 2.2 User Interface . . . . . . . . . . 2.2.1 Flow control . . . . . . 2.2.2 GUI implementation . . 2.3 Game Implementation . . . . . 2.3.1 Class details . . . . . . 2.3.2 Kolibrat flow diagrams . 2.3.3 C data structures . . . . 2.4 Testing . . . . . . . . . . . . . 2.4.1 Test summery . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . .
Bibliography: [1] Suhas Sreedhar. Checkers, solved!, 2007. URL http://spectrum. ieee.org/print/5379. [2] Claude E. Shannon. Programming a computer for playing chess. Philosophical Magazine, 41(314), March 1950. URL http: //archive.computerhistory.org/projects/chess/related_ materials/text/2-0%20and%202-1.Programming_a_computer_ for_playing_chess.shannon/2-0%20and%202-1.Programming_a_ computer_for_playing_chess.shannon.062303002.pdf. [3] Stuart J. Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Pearson Education, 2. edition, 2003. ISBN 0137903952. [4] Armand E. Prieditis. Machine discovery of effective admissible heuristics. Machine Learning, 12(1-3), August 1993. URL http: //dli.iiit.ac.in/ijcai/IJCAI-91-VOL2/PDF/017.pdf. 166