using System; using System.Collections.Immutable; using System.Linq; namespace Game { class Program { /// /// Defines the set of companies that will be simulated in the game. /// private readonly static ImmutableArray Companies = ImmutableArray.CreateRange(new[] { new Company("INT. BALLISTIC MISSILES", "IBM", sharePrice:100), new Company("RED CROSS OF AMERICA", "RCA", sharePrice:85 ), new Company("LICHTENSTEIN, BUMRAP & JOKE", "LBJ", sharePrice:150), new Company("AMERICAN BANKRUPT CO.", "ABC", sharePrice:140), new Company("CENSURED BOOKS STORE", "CBS", sharePrice:110) }); static void Main() { var assets = new Assets { Cash = 10000.0, Portfolio = ImmutableArray.CreateRange(Enumerable.Repeat(0, Companies.Length)) }; var previousDay = default(TradingDay); Controller.StartGame(); foreach (var day in StockMarket.Simulate(Companies)) { if (previousDay is null) View.ShowCompanies(day.Companies); else View.ShowTradeResults(day, previousDay, assets); View.ShowAssets(assets, day.Companies); if (previousDay is not null && !Controller.GetYesOrNo(View.PromptContinue)) break; assets = Controller.UpdateAssets(assets, day.Companies); previousDay = day; } View.ShowFarewell(); } } }