1/*******************************************************************
2 *
3 * Copyright 2013 Denis Kuplyakov <dener.kup@gmail.com>
4 *
5 * This file is part of the KDE project "KReversi"
6 *
7 * KReversi is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
10 * any later version.
11 *
12 * KReversi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with KReversi; see the file COPYING. If not, write to
19 * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 *
22 ********************************************************************/
23
24#include <kreversihumanplayer.h>
25
26KReversiHumanPlayer::KReversiHumanPlayer(ChipColor color, QString name):
27 KReversiPlayer(color, name, true, true)
28{
29}
30
31void KReversiHumanPlayer::prepare(KReversiGame* game)
32{
33 // ready to start
34 m_game = game;
35 m_state = WAITING;
36
37 emit ready();
38}
39
40void KReversiHumanPlayer::takeTurn()
41{
42 m_state = THINKING;
43}
44
45void KReversiHumanPlayer::skipTurn()
46{
47 m_state = WAITING; // waiting for opponent move
48}
49
50void KReversiHumanPlayer::gameOver()
51{
52 m_state = UNKNOWN; // game ended
53}
54
55void KReversiHumanPlayer::onUICellClick(KReversiPos pos)
56{
57 if (m_state != THINKING) {
58 // it is not our turn ignore it
59 return;
60 }
61
62 m_state = WAITING;
63 emit makeMove(KReversiMove(m_color, pos));
64}
65