robfitzgerald/csci5582-chess-endgame
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
README Resubmission of AI Project 1 ----------------------------- --Installation Instructions-- ----------------------------- This project is written in C++11. A standard makefile has been provided, as well as a binary compiled in Mac OS X Terminal, which may run on most Linux distributions. To Compile, enter a command line at the project directory, and run: $ make which should result in the compilation: g++ -c -g -std=c++11 Board.cpp g++ -c -g -std=c++11 moves.cpp g++ -c -g -std=c++11 search.cpp g++ -c -g -std=c++11 main.cpp g++ -o rreti Board.o moves.o search.o main.o -lm then, you can run the program by typing: $ ./rreti this will output the program usage instructions: Usage: ./rreti <turns> <m> <n> where <turns> is how many turns to generate, (1 turn contains moves for both opponents) <m> and <n> specify the range of turns to print the search tree (optional) examples are provided in the output examples file. ------------------------------------- --Addressing the Problem Statement:-- ------------------------------------- This section takes the form: <project requirement> <location in code> Do not continue branches after a King is lost. search.cpp _search() lines 22-25 Utilize evaluation function which is a sum of values of White pieces minus sum of values of Black pieces. search.cpp simpleHeuristic() lines 63-77 Assign values of this function to the terminal states and apply minimax search algorithm with alpha-beta cut-offs. search.cpp _search() lines 46-57 Introduce a priority function to evaluate priority of moves for inclusion in the search tree. Better priority function should lead to more cut-offs. moves.cpp generateMoves() lines 38-44 For the output use the following notation: 1. Kh8-g8, Ph5-h4 2. Kg8-g7, Ph4-h3 and so on. moves.cpp getChessNotation() lines 223-232 All the moves included on the search tree should be counted. search.cpp _search() line 21 Your program should print a complete search subtree beginning from move number M to move number N, where numbers M and N are input parameters. search.cpp printTree() lines 173-183 Print sample subtrees for different pairs M, N. The depth of each move in your trees should be reflected by the left margin. The deeper move is in your tree the greater its margin is. Print the total number of moves included in the search tree. Print optimal subtree resulted from your search. It should be a solution to the problem. Verify if searches with different depth limit yield a solution to the problem. If your trees are represented by graphs and your moves included on the tree could be demonstrated by the dynamic pictures of movement of pieces over the chess board you will get extra credit. for comments on finding a solution and examples, see output examples.txt ---------------------------------------
About
Project 1. Due 09/21/15 Write a program for solving R. Reti endgame employing minimax search algorithm . The programming language is of your choice. Students who do not play chess can find chess rules on the Internet .
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published