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;
}