private IGameState PlayDevelopmentCard(IGameState state, IGameActions actions) { Console.WriteLine("Which development card do you wish to play:"); Console.WriteLine("0) None"); int i = 1; var cards = new Dictionary <int, DevelopmentCard>(); foreach (var c in state.GetOwnDevelopmentCards().Where(c => c != DevelopmentCard.VictoryPoint)) { Console.WriteLine(i + ") " + c); cards.Add(i, c); i++; } int selection = int.Parse(Console.ReadLine() ?? "0"); if (selection == 0) { return(null); } Console.WriteLine("You played the card " + cards[selection]); hasPlayedDevCard = true; switch (cards[selection]) { case DevelopmentCard.Knight: return(actions.PlayKnight()); case DevelopmentCard.Monopoly: Console.WriteLine("Choose the resource type to get monopoly on"); return(actions.PlayMonopoly(selectResource())); case DevelopmentCard.RoadBuilding: Console.WriteLine("Decide where to build the two roads"); var road1 = getRoadPosition(); var road2 = getRoadPosition(); return(actions.PlayRoadBuilding(road1, road2)); case DevelopmentCard.YearOfPlenty: Console.WriteLine("Choose which two resources you want to draw"); return(actions.PlayYearOfPlenty(selectResource(), selectResource())); } return(null); }
private IGameState PlayDevelopmentCard(IGameState state, IGameActions actions) { Console.WriteLine("Which development card do you wish to play:"); Console.WriteLine("0) None"); int i = 1; var cards = new Dictionary<int, DevelopmentCard>(); foreach (var c in state.GetOwnDevelopmentCards().Where(c => c != DevelopmentCard.VictoryPoint)) { Console.WriteLine(i + ") " + c); cards.Add(i, c); i++; } int selection = int.Parse(Console.ReadLine() ?? "0"); if (selection == 0) return null; Console.WriteLine("You played the card " + cards[selection]); hasPlayedDevCard = true; switch (cards[selection]) { case DevelopmentCard.Knight: return actions.PlayKnight(); case DevelopmentCard.Monopoly: Console.WriteLine("Choose the resource type to get monopoly on"); return actions.PlayMonopoly(selectResource()); case DevelopmentCard.RoadBuilding: Console.WriteLine("Decide where to build the two roads"); var road1 = getRoadPosition(); var road2 = getRoadPosition(); return actions.PlayRoadBuilding(road1, road2); case DevelopmentCard.YearOfPlenty: Console.WriteLine("Choose which two resources you want to draw"); return actions.PlayYearOfPlenty(selectResource(), selectResource()); } return null; }