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); }
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); }
/// <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); }
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)); }
/// <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); }
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); }