public int GetGhostCount(FieldObject o, GhostAttribute gt)
        {
            int count = 0;

            if (o.Equals(FieldObject.P1))
            {
                foreach (Ghost g in gamestate.P1ghostList)
                {
                    if (g.Gt.Equals(gt))
                    {
                        count++;
                    }
                }
            }
            else if (o.Equals(FieldObject.P2))
            {
                foreach (Ghost g in gamestate.P2ghostList)
                {
                    if (g.Gt.Equals(gt))
                    {
                        count++;
                    }
                }
            }

            return(count);
        }
Example #2
0
        public override FieldObject Evaluate(RawRecord record)
        {
            FieldObject     checkObject = record[_checkFieldIndex];
            CollectionField arrayObject = record[_arrayFieldIndex] as CollectionField;

            if (arrayObject == null)
            {
                throw new GraphViewException("The second paramter of the WithInArray function must be located to a collection field");
            }
            if (checkObject == null)
            {
                return(new StringField("false", JsonDataType.Boolean));
            }

            foreach (FieldObject fieldObject in arrayObject.Collection)
            {
                if (fieldObject is Compose1Field)
                {
                    Compose1Field compose1Field = fieldObject as Compose1Field;
                    if (checkObject.Equals(compose1Field.Map[compose1Field.DefaultProjectionKey]))
                    {
                        return(new StringField("true", JsonDataType.Boolean));
                    }
                }
                else if (checkObject.Equals(fieldObject))
                {
                    return(new StringField("true", JsonDataType.Boolean));
                }
            }

            return(new StringField("false", JsonDataType.Boolean));
        }
        public Boolean IsGhostAtExit(FieldObject o)
        {
            //Ghostlistを検索し出口にいないかチェック
            if (o.Equals(FieldObject.P1))
            {
                foreach (Ghost g in gamestate.P1ghostList)
                {
                    if (g.P.Row == 0 && g.P.Col == 0 || g.P.Row == 0 && g.P.Col == 5)
                    {
                        gamestate.P2GhostGetList.Add(g);
                        gamestate.P1ghostList.Remove(g);

                        if (g.Gt.Equals((GhostAttribute.good)))
                        {
                            return(true);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
            else if (o.Equals(FieldObject.P2))
            {
                foreach (Ghost g in gamestate.P2ghostList)
                {
                    if (g.P.Row == 7 && g.P.Col == 0 || g.P.Row == 7 && g.P.Col == 5)
                    {
                        gamestate.P1GhostGetList.Add(g);
                        gamestate.P2ghostList.Remove(g);

                        if (g.Gt.Equals((GhostAttribute.good)))
                        {
                            return(true);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }

            return(false);
        }
Example #4
0
        /// <summary>
        /// 指定したプレイヤーのゴーストのポジションのリストを取得する
        /// </summary>
        /// <param name="player">
        /// Type:FieldObject P1 or P2
        /// </param>
        /// <returns>
        /// Type:List<Postion> ゴーストの位置のリスト
        /// </returns>
        public List <Position> GetGhostPositionList(FieldObject player)
        {
            List <Position> plist = new List <Position>();
            List <Ghost>    glist = new List <Ghost>();

            if (player.Equals(FieldObject.P1))
            {
                glist = gameState.P1ghostList;
            }
            else if (player.Equals(FieldObject.P2))
            {
                glist = gameState.P2ghostList;
            }



            foreach (Ghost g in glist)
            {
                plist.Add(g.P.Clone());
            }
            return(plist);
        }
Example #5
0
        public override FieldObject Evaluate(RawRecord record)
        {
            FieldObject checkObject = record[this.checkFieldIndex];

            if (checkObject == null)
            {
                return(new StringField("false", JsonDataType.Boolean));
            }

            CollectionField arrayObject = record[this.arrayFieldIndex] as CollectionField;

            if (arrayObject != null)
            {
                foreach (FieldObject fieldObject in arrayObject.Collection)
                {
                    if (fieldObject is CompositeField)
                    {
                        CompositeField compose1Field = fieldObject as CompositeField;
                        if (checkObject.Equals(compose1Field[compose1Field.DefaultProjectionKey]))
                        {
                            return(new StringField("true", JsonDataType.Boolean));
                        }
                    }
                    else if (checkObject.Equals(fieldObject))
                    {
                        return(new StringField("true", JsonDataType.Boolean));
                    }
                }

                return(new StringField("false", JsonDataType.Boolean));
            }

            return(checkObject.Equals(record[this.arrayFieldIndex])
                ? new StringField("true", JsonDataType.Boolean)
                : new StringField("false", JsonDataType.Boolean));
        }
Example #6
0
        /// <summary>
        /// 指定したプレイヤーの指定した属性のゴーストの数を取得する
        /// </summary>
        /// <param name="player">
        /// Type:FieldObject P1 or P2
        /// </param>
        /// <param name="ghostAttribute">
        /// Type:GhostAttribute good or evil
        /// </param>
        /// <returns>
        /// ゴーストの数
        /// </returns>
        public int GetGhostNum(FieldObject player, GhostAttribute ghostAttribute)
        {
            int          num   = 0;
            List <Ghost> glist = null;

            //
            if (player.Equals(FieldObject.P1))
            {
                glist = gameState.P1ghostList;
            }
            else if (player.Equals(FieldObject.P2))
            {
                glist = gameState.P2ghostList;
            }

            foreach (Ghost g in glist)
            {
                if (g.Gt.Equals(ghostAttribute))
                {
                    num++;
                }
            }
            return(num);
        }
Example #7
0
        public void FieldObject_AreEqual()
        {
            FieldObject fieldObject1 = new FieldObject
            {
                Enabled     = "1",
                FieldNumber = "123",
                FieldValue  = "TEST",
                Lock        = "0",
                Required    = "0"
            };
            FieldObject fieldObject2 = new FieldObject
            {
                Enabled     = "1",
                FieldNumber = "123",
                FieldValue  = "TEST",
                Lock        = "0",
                Required    = "0"
            };

            Assert.IsTrue(fieldObject1.Equals(fieldObject2));
            Assert.IsTrue(fieldObject1 == fieldObject2);
            Assert.IsFalse(fieldObject1 != fieldObject2);
        }