public CAIPlayer(CLocalServer local_server) { this.local_server = local_server; this.brain = new CBrain(); this.hand_cards = new List<CCard>(); this.floor_card_manager = new CFloorCardManager(); reset(); this.packet_handler = new Dictionary<PROTOCOL, PacketFn>(); this.packet_handler.Add(PROTOCOL.LOCAL_SERVER_STARTED, ON_LOCAL_SERVER_STARTED); this.packet_handler.Add(PROTOCOL.BEGIN_CARD_INFO, ON_BEGIN_CARD_INFO); this.packet_handler.Add(PROTOCOL.START_TURN, ON_START_TURN); this.packet_handler.Add(PROTOCOL.SELECT_CARD_ACK, ON_SELECT_CARD_ACK); this.packet_handler.Add(PROTOCOL.FLIP_DECK_CARD_ACK, ON_FLIP_DECK_CARD_ACK); this.packet_handler.Add(PROTOCOL.TURN_RESULT, ON_TURN_RESULT); this.packet_handler.Add(PROTOCOL.ASK_GO_OR_STOP, ON_ASK_GO_OR_STOP); this.packet_handler.Add(PROTOCOL.ASK_KOOKJIN_TO_PEE, ON_ASK_KOOKJIN_TO_PEE); this.packet_handler.Add(PROTOCOL.GAME_RESULT, ON_GAME_RESULT); }
public CAIPlayer(CLocalServer local_server) { this.local_server = local_server; this.brain = new CBrain(); this.hand_cards = new List <CCard>(); this.floor_card_manager = new CFloorCardManager(); reset(); this.packet_handler = new Dictionary <PROTOCOL, PacketFn>(); this.packet_handler.Add(PROTOCOL.LOCAL_SERVER_STARTED, ON_LOCAL_SERVER_STARTED); this.packet_handler.Add(PROTOCOL.BEGIN_CARD_INFO, ON_BEGIN_CARD_INFO); this.packet_handler.Add(PROTOCOL.START_TURN, ON_START_TURN); this.packet_handler.Add(PROTOCOL.SELECT_CARD_ACK, ON_SELECT_CARD_ACK); this.packet_handler.Add(PROTOCOL.FLIP_DECK_CARD_ACK, ON_FLIP_DECK_CARD_ACK); this.packet_handler.Add(PROTOCOL.TURN_RESULT, ON_TURN_RESULT); this.packet_handler.Add(PROTOCOL.ASK_GO_OR_STOP, ON_ASK_GO_OR_STOP); this.packet_handler.Add(PROTOCOL.ASK_KOOKJIN_TO_PEE, ON_ASK_KOOKJIN_TO_PEE); this.packet_handler.Add(PROTOCOL.GAME_RESULT, ON_GAME_RESULT); }
public CGostopEngine() { this.first_player_index = 0; this.floor_manager = new CFloorCardManager(); this.card_manager = new CCardManager(); this.player_agents = new List <CPlayerAgent>(); this.distributed_floor_cards = new List <CCard>(); this.distributed_players_cards = new List <List <CCard> >(); this.cards_to_give_player = new List <CCard>(); this.cards_to_floor = new List <CCard>(); this.other_cards_to_player = new Dictionary <byte, List <CCard> >(); this.current_player_index = 0; this.flipped_card_event_type = new List <CARD_EVENT_TYPE>(); this.bomb_cards_from_player = new List <CCard>(); this.target_cards_to_choice = new List <CCard>(); this.shaking_cards = new List <CCard>(); this.card_queue = new Queue <CCard>(); clear_turn_data(); }
/// <summary> /// 낼 카드 선택. /// 먹을 수 있는 카드 중에서 제일 높은 점수를 얻을 수 있는 경우를 선택한다. /// 점수가 같을 경우 피, 광, 띠, 열끗 순으로 선택 한다. /// </summary> /// <returns></returns> public byte choice_card_to_put( List <CCard> hand_cards, List <CCard> bottom_cards, CFloorCardManager floor_card_manager) { List <byte> same_card_indexes = new List <byte>(); for (byte i = 0; i < hand_cards.Count; ++i) { byte same_number = floor_card_manager.get_same_number_card_count(hand_cards[i].number); if (same_number >= 1) { same_card_indexes.Add(i); } } if (same_card_indexes.Count <= 0) { return(0); } UnityEngine.Debug.Log("[AI] " + same_card_indexes[0]); return(same_card_indexes[0]); }