Example #1
0
        private Func <object, string> GetConverterForType(Type propertyType)
        {
            if (propertyType.IsEnum)
            {
                return(o => ((Enum)o).GetDisplayName());
            }
            if (typeof(string).IsAssignableFrom(propertyType))
            {
                return(o => (string)o); //Prevent futher conversion
            }

            var enumerableArg = LambdaHelpers.GetEnumerableType(propertyType);

            if (enumerableArg != null)
            {
                return(LambdaHelpers.GetEnumerableConvertor(GetConverterForType(enumerableArg)));
            }

            if (typeof(IEnumerable).IsAssignableFrom(propertyType))
            {
                return(LambdaHelpers.GetEnumerableConvertor(item => item.ToString()));
            }
            return
                (DisplayFunctions.Where(
                     displayFunction => displayFunction.Key.IsAssignableFrom(propertyType))
                 .Select(kv => kv.Value)
                 .FirstOrDefault() ?? (arg => arg?.ToString()));
        }
Example #2
0
        public static void PlayGame(Chromosome chromo0, Chromosome chromo1)
        {
            var Game    = new Game();
            var players = new List <AiPlayer>()
            {
                new AiPlayer(chromo0, Game.GetPlayerByNumber(0), Game),
                new AiPlayer(chromo1, Game.GetPlayerByNumber(1), Game)
            };

            DisplayFunctions.DisplayBoard(Game.Board);

            int i = 0;

            while (!Game.Won)
            {
                var playerNum = i % 2;
                Console.WriteLine($"Turn: {Game.TurnNumber} --------------------------------");
                DisplayFunctions.DisplayUserHand(Game.GetPlayerByNumber(playerNum));
                var play = players[playerNum].DeterminePlay();
                play.PlayerNumber = playerNum;
                bool playResult = Game.MakePlay(play);
                if (playResult == false)
                {
                    Console.WriteLine("FAILED TO MAKE PLAY!!!");
                    break;
                }
                DisplayFunctions.DisplayPlay(Game.Plays[Game.TurnNumber - 1]);
                DisplayFunctions.DisplayBoard(Game.Board);

                i++;
            }

            DisplayFunctions.DisplayWinner(Game.WinningPlayer, Game.TurnNumber);
        }