refresh ded80ada673478789e2cf32be211118c33bb1dbf
[tagua/yd.git] / src / variants / shogi / pawn.cpp
blob5c3776b8eeaeb86ffa02ba9dd336a266217da0d4
1 /*
2 Copyright (c) 2007 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2007 Maurizio Monge <maurizio.monge@kdemail.net>
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 2 of the License, or
8 (at your option) any later version.
9 */
11 #include "pawn.h"
12 #include <core/behaviour.h>
13 #include <core/move.h>
14 #include <core/pathinfo.h>
15 #include <core/state.h>
16 #include <core/board.h>
17 #include <core/taguacast.h>
19 namespace Shogi {
21 Pawn::Pawn() { }
23 QString Pawn::name() const { return "pawn"; }
25 bool Pawn::canMove(const Piece& piece, const Piece&,
26 Move& move, const IState* state) const {
27 const IBehaviour* behaviour = state->behaviour();
28 if (!behaviour) return false;
30 return move.delta() == behaviour->direction(piece.color());
33 int Pawn::index() const { return 10; }
35 Pawn* Pawn::self() {
36 static Pawn s_instance;
37 return &s_instance;