예제 #1
0
        private void ShowGameModeOptions(string gameModeName)
        {
            ConfigurationInformationTitles.Text = "Can Checker Beat The Queen" + Environment.NewLine +
                                                  "Can The Queen Move Over More Fields" + Environment.NewLine +
                                                  //"Should Checker Make The Best Move First" + Environment.NewLine +
                                                  "Can Checker Make A Reverse Beat" + Environment.NewLine +
                                                  "Color For Top Left Corner" + Environment.NewLine +
                                                  "Board Size";
            GameConfiguration pickedGameModeConfiguration = new GameConfiguration(GameModeConfigurations, gameModeName);

            ConfigurationInformationValues.Text =
                pickedGameModeConfiguration.CanCheckerBeatQueen().ToString() + Environment.NewLine +
                pickedGameModeConfiguration.CanQueenMoveOverMoreFields().ToString() + Environment.NewLine +
                //pickedGameModeConfiguration.ShouldCheckerMakeTheBestMoveFirst().ToString() + Environment.NewLine +
                pickedGameModeConfiguration.CanCheckerMakeReverseBeat().ToString() + Environment.NewLine +
                pickedGameModeConfiguration.GetColorForTopLeftCorner().ToString() + Environment.NewLine +
                pickedGameModeConfiguration.GetBoardSize().ToString() + "x" + pickedGameModeConfiguration.GetBoardSize().ToString();
        }
예제 #2
0
        public List <Point> GetPossibleMoves(Field field)
        {
            List <Point> possibleLocations = GetAllPossibleLocations(field);

            possibleLocations = LimitToBoard(possibleLocations);
            possibleLocations = LimitToNearestEnemies(field, possibleLocations);

            if (!field.PlacedChecker.IsQueen)
            {
                possibleLocations = LimitToDirection(possibleLocations, field);
            }
            if (!field.PlacedChecker.IsQueen || !GameConfiguration.CanQueenMoveOverMoreFields())
            {
                possibleLocations = LimitToMaxJumps(possibleLocations, field);
            }
            possibleLocations.AddRange(GetPossibleMovesOverEnemies(field));

            possibleLocations = LimitToBoard(possibleLocations);

            return(possibleLocations);
        }