示例#1
0
/** r�ckgabe zu bool?! **/
TSingleField CSpiel::set_stone(const CTurn* turn){
	#ifdef _DEBUG
		if (turn == 0) error_exit("turn ist nullpointer!", 20); //debug
	#endif

	int playernumber = turn->get_playernumber();
	CStone* stone = CSpiel::m_player[playernumber].get_stone(turn->get_stone_number());
	stone->mirror_rotate_to(turn->get_mirror_count(), turn->get_rotate_count());
	return set_stone(stone, playernumber, turn->get_y(), turn->get_x());
}
示例#2
0
int mini(char *br, char min_player, char max_player, int depth, int nrounds)
{
     int alfa = INT_MAX;
     int node = 0;

     for (int i = 0; i < NUM_ALL; ++i) {
        if (set_stone(br, max_player, i)) {
           if (depth >= max_depth || game_winner(br, min_player, max_player) != NO_MATCH) {
              node = -evaluate(br, min_player, max_player);
           } else {
              node = max(br, max_player, min_player, depth + 1, nrounds);
           }
           *(br + i) = ' ';
           if (node < alfa) {
              alfa = node;
           }
        }
     }
     return alfa;
}
示例#3
0
void CSpiel::follow_situation(int vorher_playernumber, const CSpiel* vorher_situation, const CTurn* turn) {
	memcpy(m_game_field, vorher_situation->get_field_pointer(), CSpiel::m_field_size_x * CSpiel::m_field_size_y);
	memcpy(m_player,vorher_situation->m_player,sizeof(m_player));
	set_stone(turn);
}