예제 #1
0
 public void AddNew()
 {
     PossiblePlayers.Add(new PlayerSelectorModel
     {
         IsAiPlayer           = false,
         DifficultyAdvancedAi = 0f,
     });
 }
예제 #2
0
 public void RemoveLatest()
 {
     if (PossiblePlayers.Count == 2)
     {
         return;
     }
     PossiblePlayers.RemoveAt(PossiblePlayers.Count - 1);
 }
예제 #3
0
        public void OnSubmit()
        {
            gameState.Players = PossiblePlayers.Select((p, i) => p.IsAiPlayer ? new AiPlayerMinMax(p.Name ?? $"Player {i + 1} (Computer)", p.DifficultyAdvancedAi) : new Human(p.Name ?? $"Player {i + 1}") as Player).ToList();
            Rules rules = gameState.RulesBuilder?.Players(gameState.Players.Count).Create() ?? Rules.Default;

            gameState.Game = new Game(rules, gameState.Players);
            navigationManager.NavigateTo("nim");
            // get move
            gameState.Game.Step();
        }
예제 #4
0
 public void OnInput(ChangeEventArgs e, int index)
 {
     PossiblePlayers[index].Name        = e.Value as string;
     PossiblePlayers[index].IsNameValid = IsNameUnique(e.Value as string);
     CanSubmit = !PossiblePlayers.Any(p => !p.IsNameValid);
 }
예제 #5
0
 bool IsNameUnique(string name) => PossiblePlayers.Count(p => p.Name == name) == 1;