当前位置: 首页>>代码示例>>C#>>正文


C# IVertex.IsFreeToBuildCampus方法代码示例

本文整理汇总了C#中IVertex.IsFreeToBuildCampus方法的典型用法代码示例。如果您正苦于以下问题:C# IVertex.IsFreeToBuildCampus方法的具体用法?C# IVertex.IsFreeToBuildCampus怎么用?C# IVertex.IsFreeToBuildCampus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IVertex的用法示例。


在下文中一共展示了IVertex.IsFreeToBuildCampus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetVertexScore

 private double GetVertexScore(IGame game, IVertex vertex)
 {
     if (!vertex.IsFreeToBuildCampus())
     {
         return 0.0;
     }
     // current production chance for uni
     var productionChances = new DegreeCount { game.CurrentIUniversity.ProductionChances };
     foreach (IHexagon hex in vertex.Adjacent.Hexagons)
     {
         productionChances[hex.Degree] += GameConstants.DiceRollNumber2Chance[hex.ProductionNumber];
     }
     double score = 0.0;
     if (game.CurrentPhase == GamePhase.Setup2)
     {
         int hasDegreeNumber = productionChances.Values.Count(v => v != 0);
         if (hasDegreeNumber == GameConstants.RealDegrees.Length)
         {
             score += _gameEvaluation.Scores.ProductionMultiplier * 3;
         }
         else if (hasDegreeNumber == GameConstants.RealDegrees.Length - 1)
         {
             score += _gameEvaluation.Scores.ProductionMultiplier;
         }
     }
     var productionScores = new Dictionary<DegreeType, double>();
     foreach (DegreeType degree in productionChances.Keys)
     {
         productionScores[degree] =
             productionChances[degree] * _gameEvaluation.Scores.ProductionMultiplier;
     }
     if (game.CurrentPhase == GamePhase.Setup1)
     {
         // amplify the production scores for a certain degree
         foreach (DegreeType degree in productionChances.Keys)
         {
             productionScores[degree] *= game.Scarcity[degree]*_gameEvaluation.Scores.SetupDegreeModifier[degree];
         }
     }
     else // Setup2
     {
         foreach (DegreeType degree in productionChances.Keys)
         {
             productionScores[degree] *= _gameEvaluation.Scores.DegreeModifier[degree];
         }
         // site score
         if (vertex.TradingSite != null)
         {
             var specialSite = vertex.TradingSite as ISpecialTradingSite;
             if (specialSite != null)
             {
                 score += productionChances[specialSite.TradeOutDegree]*
                          _gameEvaluation.Scores.SpecialSiteMultiplier;
             }
             else // normal site
             {
                 score += _gameEvaluation.Scores.NormalSite;
             }
         }
     }
     score += productionScores.Values.Sum();
     return score;
 }
开发者ID:MingStar,项目名称:SimUniversity,代码行数:63,代码来源:SetupPlayer.cs


注:本文中的IVertex.IsFreeToBuildCampus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。