現在ではリバース可能な場所にのみ置けるように以下のように設定しています。
BOOL COseroView::CanDropDown( int x, int y, int vect_x, int vect_y )
{
int put_stone;
if( m_FlagForWhite )put_stone = WHITE_STONE;
else put_stone = BLACK_STONE;
x += vect_x;
y += vect_y;
if( x < 0 || x >= MASU_NUM || y < 0 || y >= MASU_NUM )return( FALSE );
if( m_Board[x][y] == put_stone )return( FALSE );
if( m_Board[x][y] == BLANK )return( FALSE );
x += vect_x;
y += vect_y;
while( x >= 0 && x < MASU_NUM && y >= 0 && y < MASU_NUM )
{
if( m_Board[x][y] == BLANK )return( FALSE );
if( m_Board[x][y] == put_stone )return( TRUE );
x += vect_x;
y += vect_y;
}
return( FALSE );
}
BOOL COseroView::CanDropDown( int x, int y )
{
if( x >= MASU_NUM || y >= MASU_NUM )return( FALSE );
if( m_Board[x][y] != BLANK )return( FALSE );
if( CanDropDown( x, y, 1, 0 ) )return( TRUE ); //右
if( CanDropDown( x, y, 0, 1 ) )return( TRUE ); //下
if( CanDropDown( x, y, -1, 0 ) )return( TRUE ); //左
if( CanDropDown( x, y, 0, -1 ) )return( TRUE ); //上
if( CanDropDown( x, y, 1, 1 ) )return( TRUE ); //右下
if( CanDropDown( x, y, -1, -1 ) )return( TRUE ); //左上
if( CanDropDown( x, y, 1, -1 ) )return( TRUE ); //右上
if( CanDropDown( x, y, -1, 1 ) )return( TRUE ); //左下
return( FALSE );
}
これにリバースできる場所がない場合判定をしてゲームを終了したいのですがどうすればいいのかわかりません。