コード例 #1
0
        /// <summary>
        /// 項目Kの番号を、項目名に翻訳。
        /// </summary>
        /// <param name="k"></param>
        /// <returns></returns>
        public static string K_To_Label(int k)
        {
            StringBuilder sb = new StringBuilder();

            if (0 <= k && k < ConstShogi.BAN_SIZE)
            {
                sb.Append("(");
                sb.Append(k);
                sb.Append(")");
                sb.Append(FeatureVectorImpl.Handle_To_Label(k));
            }
            else//エラー
            {
                sb.Append("エラー_k=[");
                sb.Append(k);
                sb.Append("]");
            }

            return(sb.ToString());
        }
コード例 #2
0
        /// <summary>
        /// 項目Pの番号を、項目名に翻訳。
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static string P_To_Label(int p)
        {
            StringBuilder sb = new StringBuilder();

            if (0 <= p && p < FeatureVectorImpl.CHOSA_KOMOKU_P)
            {
                sb.Append("(");
                sb.Append(p);
                sb.Append(")");

                /// Pの1224種類の調査項目☆
                ///                         (内訳
                ///                                 ※まず、先手の駒
                ///                                 歩1~81・香1~81・桂1~81・銀1~81・金1~81・飛1~81・角1~81、  ※81マス上の自分の駒
                ///                                 歩0~18・香0~4・桂0~4・銀0~4・金0~4・飛0~2・角0~2、        ※自分の持ち駒
                ///
                ///                                 ※次に、後手の駒
                ///                                 歩1~81・香1~81・桂1~81・銀1~81・金1~81・飛1~81・角1~81、 ※81マス上の相手の駒
                ///                                 歩0~18・香0~4・桂0~4・銀0~4・金0~4・飛0~2・角0~2、        ※相手の持ち駒
                ///                         )

                // 逆順に並べているので注意
                if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKaku <= p)//角0~2
                {
                    sb.Append("敵持角");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKaku);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiHi__ <= p)//飛0~2
                {
                    sb.Append("敵持飛");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiHi__);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKin_ <= p)//金0~4
                {
                    sb.Append("敵持金");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKin_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiGin_ <= p)//銀0~4
                {
                    sb.Append("敵持銀");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiGin_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKei_ <= p)//桂0~4
                {
                    sb.Append("敵持桂");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKei_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKyo_ <= p)//香0~4
                {
                    sb.Append("敵持香");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiKyo_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiFu__ <= p)//歩0~18
                {
                    sb.Append("敵持歩");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.MotiFu__);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kaku <= p)//角1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kaku));
                    sb.Append("敵角");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Hi__ <= p)//飛1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Hi__));
                    sb.Append("敵飛");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Oh__ <= p)//玉1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Oh__));
                    sb.Append("敵王");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kin_ <= p)//金1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kin_));
                    sb.Append("敵金");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Gin_ <= p)//銀1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Gin_));
                    sb.Append("敵銀");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kei_ <= p)//桂1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kei_));
                    sb.Append("敵桂");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kyo_ <= p)//香1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Kyo_));
                    sb.Append("敵香");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Fu__ <= p)//歩1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER2 + Const_NikomaKankeiP_ParamIx.Ban_Fu__));
                    sb.Append("敵歩");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKaku <= p)//角0~2
                {
                    sb.Append("自持角");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKaku);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiHi__ <= p)//飛0~2
                {
                    sb.Append("自持飛");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiHi__);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKin_ <= p)//金0~4
                {
                    sb.Append("自持金");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKin_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiGin_ <= p)//銀0~4
                {
                    sb.Append("自持銀");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiGin_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKei_ <= p)//桂0~4
                {
                    sb.Append("自持桂");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKei_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKyo_ <= p)//香0~4
                {
                    sb.Append("自持香");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiKyo_);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiFu__ <= p)//歩0~18
                {
                    sb.Append("自持歩");
                    sb.Append(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.MotiFu__);
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kaku <= p)//角1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kaku));
                    sb.Append("自角");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Hi__ <= p)//飛1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Hi__));
                    sb.Append("自飛");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Oh__ <= p)//玉1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Oh__));
                    sb.Append("自玉");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kin_ <= p)//金1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kin_));
                    sb.Append("自金");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Gin_ <= p)//銀1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Gin_));
                    sb.Append("自銀");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kei_ <= p)//桂1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kei_));
                    sb.Append("自桂");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kyo_ <= p)//香1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Kyo_));
                    sb.Append("自香");
                }
                else if (Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Fu__ <= p)//歩1~81
                {
                    sb.Append(FeatureVectorImpl.Handle_To_Label(p - Const_NikomaKankeiP_ParamIx.PLAYER1 + Const_NikomaKankeiP_ParamIx.Ban_Fu__));
                    sb.Append("自歩");
                }
                else// エラー
                {
                    sb.Append("エラー_p=[");
                    sb.Append(p);
                    sb.Append("]");
                }
            }
            else// エラー
            {
                sb.Append("エラー_p=[");
                sb.Append(p);
                sb.Append("]");
            }

            return(sb.ToString());
        }