本文整理汇总了C#中WorldState.GetProperties方法的典型用法代码示例。如果您正苦于以下问题:C# WorldState.GetProperties方法的具体用法?C# WorldState.GetProperties怎么用?C# WorldState.GetProperties使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldState
的用法示例。
在下文中一共展示了WorldState.GetProperties方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Contains
//check if the worldstate contains the same properties as the worldstate ws (can still contain other as well)
public bool Contains(WorldState ws)
{
Dictionary<string, WorldStateValue> wsProperties = ws.GetProperties();
foreach(KeyValuePair<string, WorldStateValue> pair in wsProperties)
{
if(properties.ContainsKey(pair.Key)) //if both contains the same property key
{
if(properties[pair.Key].propertyValues["bool"].Equals(pair.Value.propertyValues["bool"])) //if they both also have the same value
{
continue;
}
else
{
return false;
}
}
else
{
return false;
}
}
return true;
}
示例2: SetCurrentWorldstate
//update the current worldState for a clan
public void SetCurrentWorldstate(string clan, WorldState ws)
{
WorldState currentWorldState = (WorldState)GetFact(clan, "currentWorldState")[0].GetFactValue();
RemoveFact(clan, "currentWorldState", new WorkingMemoryValue(currentWorldState));
WorldState tempWorldState = new WorldState ();
foreach(KeyValuePair<string, WorldStateValue> newState in ws.GetProperties())
{
foreach (KeyValuePair<string, WorldStateValue> oldState in currentWorldState.GetProperties())
{
if(oldState.Key == newState.Key)
{
tempWorldState.SetProperty(newState.Key, newState.Value);
} else{
tempWorldState.SetProperty(oldState.Key, oldState.Value);
}
}
}
SetFact(clan, "currentWorldState", new WorkingMemoryValue(tempWorldState));
}
示例3: GetSuitableActions
//return the list with actions suitable for a certain goal
public List<Action> GetSuitableActions(WorldState postCon)
{
List<Action> actionList = new List<Action>();
bool okayToAddAction;
foreach (Action action in actionsList){
okayToAddAction = false;
foreach(KeyValuePair<string, WorldStateValue> pair in postCon.GetProperties())
{
if(action.ContainsPostCondition(pair.Key, !(bool)pair.Value.propertyValues["bool"]))
{
okayToAddAction = false;
break;
}
else if(action.ContainsPostCondition(pair.Key, (bool)pair.Value.propertyValues["bool"]) /*&& action.getAgentTypes().Contains(currentAgent)*/){
okayToAddAction = true;
} else {
okayToAddAction = false;
break;
}
}
if(okayToAddAction == true){
actionList.Add(action);
}
}
return actionList;
}