Final AI tweaks.
[NALCG.git] / src / ais / daniel / _main.cpp.old
blob02f06e35171a93f6c4c08181962509d2164af69f
1 /*#include "AI.h"
3 bool isAnswerLegal(std::string *answer, std::vector<std::string> *moves) {
4   for (int i = 0; i < moves->size(); ++i) {
5     if (*answer == moves->at(i)) {
6       return true;
7     }
8     if (answer->size() > 5) {
9       switch(answer->at(5)) {
10       case 'Q':
11       case 'R':
12       case 'B':
13       case 'N':
14         if (answer->substr(0,5) == moves->at(i)) {
15           return true;
16         }
17       default:
18         break;
19       }
20     }
21   }
22   return false;
25 int main() {
26   int value;
27   MovementGenerator mg;
28   Position p(&mg);
29   AIDaniel ai(&p);
30   std::string input;
31   std::vector<std::string> *moves;
32   p.print();
33   moves = p.getLegalMoves();
34   while (true) {
35     std::cout << "Legal moves:" << std::endl;
36     for (int i = 0; i < moves->size(); ++i) {
37       std::cout << moves->at(i) << ", ";
38     }
39     input = "";
40     while (!(input == "Q" || isAnswerLegal(&input, moves))) {
41       std::cout << std::endl << "Enter move: ";
42       std::cin >> input;
43       if (!(input == "Q" || isAnswerLegal(&input, moves))) {
44         std::cout << "That move is not a valid move. Try again." << std::endl;
45       }
46     }
47     if (input == "Q") {
48       break;
49     }
50     ai.makeMove(input);
51     ai.getNextMove();
52     p.print();
53     moves = p.getLegalMoves();
54     if (value == std::numeric_limits<int>::min()) {
55       std::cout << "The white player has been defeated." << std::endl;
56       break;
57     }
58     else if (value == std::numeric_limits<int>::max()) {
59       std::cout << "The black player has been defeated." << std::endl;
60       break;
61     }
62     else if (moves->empty()) {
63       std::cout << "Stalemate." << std::endl;
64       break;
65     }
66   }
67   return 0;
68 }*/