public Move GetMove(IRuleBook rules, IGame game)
        {
            var isValid = false;

            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            while (!isValid)
            {
                Console.Write($"Enter a move for player {game.PlayerToMove} [0..6]");
                var input = Console.ReadLine();
                isValid = int.TryParse(input, out var x);
                if (isValid)
                {
                    isValid = rules.LegalMoves.Any(m => m.X == x);
                }
                if (isValid)
                {
                    return(new Move(x));
                }
                Console.Error.WriteLine($"{input} is not a valid move!");
            }

            throw new InvalidOperationException();
        }
 public WeatherDressCodeSequencingService(IRuleBook ruleBook)
 {
     _ruleBook = ruleBook;
     _weatherDrivenDressCodeData = WeatherDrivenDressCodeData.Instance;
 }
Ejemplo n.º 3
0
 public ConnectXGameState(IRuleBook rules, IGame game)
 {
     mRules = rules;
     mGame  = game;
 }