コード例 #1
0
ファイル: CAIPlayer.cs プロジェクト: sunduk/freegostop
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
 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();
 }
コード例 #4
0
ファイル: CBrain.cs プロジェクト: zeroxy/freegostop
    /// <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]);
    }