//Debug
        private void debugPiecesInfo(Pieces piece)
        {
            /*
             * Debug.Log("my Kind is");
             * Debug.Log(piece.GetKind());
             * Debug.Log("my pieceId is");
             * Debug.Log(piece.GetPieceId());
             * Debug.Log("onTheFace");
             * Debug.Log(piece.GetFaceId());
             */
            if (piece.GetKind().ToString().Equals("Pawn"))
            {
                int frontFaceId = frontFaceIdCheck(GameManager.ManagerStore.fieldManager, piece);

                /*
                 * Debug.Log("frontface");
                 * Debug.Log(frontFaceId);
                 */
            }
            if (piece.GetKind().ToString().Equals("King"))
            {
                List <int> CircleList = circleFaceIdCheck(GameManager.ManagerStore.fieldManager, piece);
                foreach (int frontFaceId in CircleList)
                {
                    Debug.Log(frontFaceId);
                }
            }
            Debug.Log(" ------ ");
        }
        /* for reward
         *  private void String2String(FieldManager field,Pieces piece,int string2string)
         *  private void confirmFace(FieldManager field, int faceId, PlayerBase cp, PlayerBase player)
         */



        //investigate the targetPiece whetever it look to sameface from faceId
        //return value
        private int lookingToSameFace(int purposeFaceId, int targetFaceId)
        {
            Pieces piece = faceIdtoPieces(targetFaceId);
            int    unit  = 0;
            int    value = 1;

            if (MyTroop(piece))
            {
                unit = 1;
            }
            else
            {
                unit = -1;
            }
            if (piece.GetKind().ToString().Equals("King"))
            {
                return(0);
            }
            else if (frontFaceIdCheck(GameManager.ManagerStore.fieldManager, piece) == purposeFaceId)
            {
                Debug.Log("purposePieceId");
                Debug.Log(faceIdtoPieces(purposeFaceId).GetPieceId());
                Debug.Log("guardPiece");
                Debug.Log(piece.GetPieceId());
                return(value * unit);
            }
            else
            {
                return(0);
            }
        }
        public static List <int> GetVisibleFaces(this Pieces pieces)
        {
            if (pieces.GetKind() == PieceKind.King)
            {
                if (pieces.GetShape() == 4)
                {
                    return(new List <int> {
                        0, 1, 2, 3
                    });
                }
                else if (pieces.GetShape() == 6)
                {
                    return(new List <int> {
                        0, 1, 2, 3, 4, 5
                    });
                }
                else
                {
                    return(new List <int> {
                        0, 1, 2, 3, 4, 5, 6, 7, 8, 9
                    });
                }
            }
            else if (pieces.GetKind() == PieceKind.Pawn)
            {
                if (pieces.GetShape() == 4)
                {
                    return(new List <int> {
                        0, 1, 3
                    });
                }
                else if (pieces.GetShape() == 6)
                {
                    return(new List <int> {
                        0, 1, 5
                    });
                }
                else
                {
                    return(new List <int> {
                        0, 1, 9
                    });
                }
            }
            else if (pieces.GetKind() == PieceKind.Queen)
            {
                if (pieces.GetShape() == 4)
                {
                    return(new List <int> {
                        0, 1, 3, 4
                    });
                }
                else if (pieces.GetShape() == 6)
                {
                    return(new List <int> {
                        0, 1, 5, 6
                    });
                }
                else
                {
                    return(new List <int> {
                        0, 1, 9, 10
                    });
                }
            }

            return(new List <int>());
        }
        // return circle faceId
        private List <int> circleFaceIdCheck(FieldManager field, Pieces piece)
        {
            //何角形のますにいるかをint型で返す
            int        faceShape         = piece.GetShape();
            List <int> circleFaceIdCheck = new List <int>();
            //辞書型配列で受け取る
            Dictionary <int, List <int> > MovableRange = GameManager.ManagerStore.piecesManager.GetMoveRange(piece.GetKind());
            //辞書型配列で受け取った稼働範囲からforeachでそれぞれ検証
            List <int> movableFaces = MovableRange[faceShape];

            foreach (int movableFace in movableFaces)
            {
                //候補の面の相対idを絶対idに変換
                circleFaceIdCheck.Add(field.ConvertRelative2AbsId(piece.GetFaceId(), movableFace, piece.GetForwardDirection()));
            }
            return(circleFaceIdCheck);
        }