Subversion Repositories Games.Chess Giants

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
99 pmbaty 1
/*
2
    Texel - A UCI chess engine.
3
    Copyright (C) 2012,2014  Peter Ă–sterlund, peterosterlund2@gmail.com
4
 
5
    This program is free software: you can redistribute it and/or modify
6
    it under the terms of the GNU General Public License as published by
7
    the Free Software Foundation, either version 3 of the License, or
8
    (at your option) any later version.
9
 
10
    This program is distributed in the hope that it will be useful,
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    GNU General Public License for more details.
14
 
15
    You should have received a copy of the GNU General Public License
16
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
 
19
/*
20
 * texel.cpp
21
 *
22
 *  Created on: Feb 25, 2012
23
 *      Author: petero
24
 */
25
 
26
#include "computerPlayer.hpp"
27
#include "humanPlayer.hpp"
28
#include "tuigame.hpp"
29
#include "treeLogger.hpp"
30
#include "uciprotocol.hpp"
31
#include "numa.hpp"
32
 
33
#include <memory>
34
 
35
/**
36
 * Texel chess engine main function.
37
 */
38
int main(int argc, char* argv[]) {
39
    ComputerPlayer::initEngine();
40
    if ((argc == 2) && (std::string(argv[1]) == "txt")) {
41
        std::shared_ptr<Player> whitePlayer = std::make_shared<HumanPlayer>();
42
        std::shared_ptr<ComputerPlayer> blackPlayer = std::make_shared<ComputerPlayer>();
43
        blackPlayer->setTTLogSize(21);
44
        TUIGame game(whitePlayer, blackPlayer);
45
        game.play();
46
    } else if ((argc == 3) && (std::string(argv[1]) == "tree")) {
47
        TreeLoggerReader::main(argv[2]);
48
    } else {
49
        if ((argc == 2) && (std::string(argv[1]) == "-nonuma"))
50
            Numa::instance().disable();
51
        UCIProtocol::main(false);
52
    }
53
}