lab.cpp/Chess/dep/Pieces/Fou.cpp

42 lines
866 B
C++

// #include "Fou.h"
Fou::Fou(int x, int y) : Piece(FOU, x, y) {
}
// ABSTRACT
bool Fou::can(int x, int y){
bool inDiag = abs( _x-x ) == abs( _y-y );
// Si deplacement pas en diagonale, on retourne faux
if( !inDiag ) return false;
// On verifie que la diagonale est degagee
int xstep = ( x-_x ) / abs( x-_x );
int ystep = ( y-_y ) / abs( y-_y );
return true;
}
/*bool Fou::can(ChessContext *c, int x, int y){
bool inDiag = abs( _x-x ) == abs( _y-y );
// Si deplacement pas en diagonale, on retourne faux
if( !inDiag ) return false;
// On verifie que la diagonale est degagee
int xstep = ( x-_x ) / abs( x-_x );
int ystep = ( y-_y ) / abs( y-_y );
for( int i = _x+xstep, j = _y+ystep ; i != x && j != y ; i+=xstep, j+=ystep )
if( c->_p1->at(i, j) != NULL ) return false;
return true;
}*/
char Fou::getchar(){
return 'F';
}