Пример #1
0
bool legal_evasion_exist(const board_t * board, const attack_t * attack) {

   list_t list[1]; // dummy

   ASSERT(board!=NULL);
   ASSERT(attack!=NULL);

   return gen_evasions(list,board,attack,true,true);
}
Пример #2
0
void gen_pseudo_evasions(list_t * list, const board_t * board, const attack_t * attack) {

   ASSERT(list!=NULL);
   ASSERT(board!=NULL);
   ASSERT(attack!=NULL);

   gen_evasions(list,board,attack,false,false);

   // debug

   ASSERT(list_is_ok(list));
}
Пример #3
0
void gen_legal_moves(list_t * list) {

   attack_t attack[1];

   ASSERT(list!=NULL);
   

   attack_set(attack);

   if (ATTACK_IN_CHECK(attack)) {
      gen_evasions(list,attack);
   } else 
   {
      gen_moves(list);
      list_filter(list,&pseudo_is_legal,true);
   }

   
}