GR.Gambling.Blackjack.PseudoOptStrategy.Evaluate C# (CSharp) Method

Evaluate() private method

private Evaluate ( Game game ) : List
game Game
return List
        private List<ActionEv> Evaluate(Game game)
        {
            shell.StandardInput.WriteLine("h");
            for (int i = 0; i < 9; i++)
                shell.StandardInput.WriteLine(32 - counts[i]);
            shell.StandardInput.WriteLine(128 - counts[9]);

            shell.StandardInput.WriteLine(game.Upcard().PointValue);

            shell.StandardInput.WriteLine(game.PlayerHandSet.ActiveHand.Count);

            foreach (Card card in game.PlayerHandSet.ActiveHand)
                shell.StandardInput.WriteLine(card.PointValue);

            List<ActionEv> actions = new List<ActionEv>();

            if (game.IsValidAction(ActionType.Hit))
                actions.Add(Ev("h"));
            if (game.IsValidAction(ActionType.Stand))
                actions.Add(Ev("t"));
            if (game.IsValidAction(ActionType.Double))
                actions.Add(Ev("d"));
            if (game.IsValidAction(ActionType.Split))
                actions.Add(Ev("s"));
            if (game.IsValidAction(ActionType.Surrender))
                actions.Add(Ev("S"));

            shell.StandardInput.WriteLine("q");

            actions.Sort(delegate(ActionEv ae1, ActionEv ae2) { return ae2.Ev.CompareTo(ae1.Ev); });

            /*Console.WriteLine("Upcard: " + upcard + " Hand: " + hand);
            foreach (ActionEv ae in actions)
                Console.WriteLine(ae.Action + " " + ae.Ev);
            Console.ReadKey();*/

            return actions;
        }