static void Main(string[] args) { string userName; string standLocation; float price; int quantityCups; bool gameCheck = false; double customerFloor; int customerFloorInt; int customerSelling; float sugarSalePrice; float lemonSalePrice; float iceSalePrice; float cupSalePrice; string supplierChoice; int lemonChoice; int iceChoice; int sugarChoice; int cupChoice; float supplyCosts = 0; Supplier selectedSupplier = new Supplier(); var timeOfDay = DateTime.Now.TimeOfDay; var hourOfDay = timeOfDay.Hours; bool timeOfDayCheck; int beginningOfDay = 5; int endOfDay = 20; if (hourOfDay >= beginningOfDay && hourOfDay <= endOfDay) { timeOfDayCheck = true; Console.WriteLine("It's light outside, you can sell lemonade."); } else { timeOfDayCheck = false; Console.WriteLine("It's dark outside, you can't sell lemonade. Come back later when it's light ouside."); Console.ReadLine(); } while(timeOfDayCheck == true) { Console.WriteLine("Welcome to the curb kid."); Console.WriteLine("You'll have to be tough to make it in this business"); Console.WriteLine("You've got one stand, an inventory of cups, lemons, sugar, ice,"); Console.WriteLine("and a lemonade thirsty public."); Console.WriteLine("Nothing comes free or easy, though, and you'll have to purchase and managed your inventory."); Console.WriteLine("You've got a list of suppliers that may offer different prices, and not all of them are located near by."); Console.WriteLine("You'll have to keep an eye on your inventory costs, and shipping times to be sure you're always supplied and always have cash."); Console.WriteLine("Your inventory items will also expire if they're too old."); Console.WriteLine(".. and you'll have to watch your suppliers bottomline."); Console.WriteLine("If they get too low on cash they're out of business, and you lose that supplier option."); Console.WriteLine("The price you set for your lemonade, and the weather will have an important influence on how many people will be willing to buy."); Console.WriteLine(" "); Console.WriteLine("... so if you think you're ready to make some cold hard lemonade cash enter your name, and let's get started:"); Console.Write("Name: "); userName = Console.ReadLine(); Console.Write("Where are you going to set up your stand? "); standLocation = Console.ReadLine(); Player player = new Player(userName, standLocation); //Create initial suppliers and prices for inventory list var supplierNum = new Random(); List<Supplier> supplierList = new List<Supplier> { }; int rInt = supplierNum.Next(2, 5); for (int i = 0; i < rInt; i ++ ) { Supplier supplier = new Supplier(); supplierList.Add(supplier); } //Day Generation while(gameCheck == false) { // Show stats for the day. Console.Clear(); Console.WriteLine("Day " + player.stand.days); Console.WriteLine("Welcome " + player.PlayerName + " Here are your stats"); Console.WriteLine("========================================================"); Console.WriteLine("Cash: " + player.stand.getCash()); Console.WriteLine("Lemons: " + player.stand.getLemonCount()); Console.WriteLine("Ice: " + player.stand.getIceCount()); Console.WriteLine("Sugar: " + player.stand.getSugarCount()); Console.WriteLine("Cups: " + player.stand.getCupCount()); Console.WriteLine(""); // Create New Weather for the day Weather weather = new Weather(); Console.WriteLine("Forecast: The temperature outside is " + weather.Temperature + " and it is "+ weather.Precipitation); Console.WriteLine(""); // Show Supplier prices for Supplies Console.WriteLine("Supplier Information"); for (int i = 0; i < rInt; i++) { lemonSalePrice = supplierList[i].getLemonPrice(); cupSalePrice = supplierList[i].getCupPrice(); sugarSalePrice = supplierList[i].getSugarPrice(); iceSalePrice = supplierList[i].getIcePrice(); Console.WriteLine("Name: " + supplierList[i].Name); Console.WriteLine("Sugar Price: " + sugarSalePrice); Console.WriteLine("Lemon Price: " + lemonSalePrice); Console.WriteLine("Ice Price: " + iceSalePrice); Console.WriteLine("Cup Price: " + cupSalePrice); Console.WriteLine(""); } Console.WriteLine("Which supplier would you like to buy from?"); foreach(Supplier supplier in supplierList) { Console.Write(supplier.Name + " | "); } supplierChoice = Console.ReadLine(); bool supplierCheck = false; while (supplierCheck == false) { foreach (Supplier supplier in supplierList) { if (supplier.Name == supplierChoice) { selectedSupplier = supplier; supplierCheck = true; break; } } if (supplierCheck == false) { Console.WriteLine("Supplier not found, please re-enter supplier name."); Console.WriteLine("Which supplier would you like to buy from?"); foreach (Supplier supplier in supplierList) { Console.Write(supplier.Name + " | "); } supplierChoice = Console.ReadLine(); } } //Sugar Purchase Console.WriteLine("How much sugar would you like?<cash on hand: " + player.stand.getCash() + ">"); float supplierSugarPrice = selectedSupplier.getSugarPrice(); string sugarCheckUser = Console.ReadLine(); bool sugarCheck = true; while (sugarCheck == true) { if (Int32.TryParse(sugarCheckUser, out sugarChoice)) { float sugarCost = supplierSugarPrice * sugarChoice; if (sugarChoice >= 0 && sugarCost <= player.stand.getCash()) { SugarOrder sugar = new SugarOrder(Convert.ToInt32(sugarChoice)); Shipment sugarShipment = selectedSupplier.createShipment(sugar); player.stand.addSugarShipment(sugarShipment); player.stand.withdrawCash(sugarCost); supplyCosts += sugarCost; sugarCheck = false; } else { Console.WriteLine("Incorrect Amount. How much sugar would you like?<cash on hand: " + player.stand.getCash() + ">"); sugarCheckUser = Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in format: #.##"); Console.WriteLine("How much sugar would you like?<cash on hand: " + player.stand.getCash() + ">"); sugarCheckUser = Console.ReadLine(); } } //Cup Purchase Console.WriteLine("How many cups would you like?<cash on hand: " + player.stand.getCash() + ">"); float supplierCupPrice = selectedSupplier.getCupPrice(); string cupCheckUser = Console.ReadLine(); bool cupCheck = true; while (cupCheck == true) { if (Int32.TryParse(cupCheckUser, out cupChoice)) { float cupCost = supplierCupPrice * cupChoice; if (cupChoice >= 0 && cupCost <= player.stand.getCash()) { CupsOrder cups = new CupsOrder(Convert.ToInt32(cupChoice)); Shipment cupShipment = selectedSupplier.createShipment(cups); player.stand.addCupShipment(cupShipment); player.stand.withdrawCash(cupCost); supplyCosts += cupCost; cupCheck = false; } else { Console.WriteLine("Incorrect Amount. How many cups would you like?<cash on hand: " + player.stand.getCash() + ">"); cupCheckUser = Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in format: #.##"); Console.WriteLine("How many cups would you like?<cash on hand: " + player.stand.getCash() + ">"); cupCheckUser = Console.ReadLine(); } } //Lemon Purchase Console.WriteLine("How many lemons would you like?<cash on hand: " + player.stand.getCash() + ">"); float supplierLemonPrice = selectedSupplier.getLemonPrice(); string lemonCheckUser = Console.ReadLine(); bool lemonCheck = true; while (lemonCheck == true) { if (Int32.TryParse(lemonCheckUser, out lemonChoice)) { float lemonCost = supplierLemonPrice * lemonChoice; if (lemonChoice >= 0 && lemonCost <= player.stand.getCash()) { LemonOrder lemons = new LemonOrder(Convert.ToInt32(lemonChoice)); Shipment lemonShipment = selectedSupplier.createShipment(lemons); player.stand.addLemonShipment(lemonShipment); player.stand.withdrawCash(lemonCost); supplyCosts += lemonCost; lemonCheck = false; } else { Console.WriteLine("Incorrect Amount. How many lemons would you like?<cash on hand: " + player.stand.getCash() + ">"); lemonCheckUser = Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in format: #.##"); Console.WriteLine("How many lemons would you like?<cash on hand: " + player.stand.getCash() + ">"); lemonCheckUser = Console.ReadLine(); } } //Ice Purchase Console.WriteLine("How much ice would you like?<cash on hand: " + player.stand.getCash() + ">"); float supplierIcePrice = selectedSupplier.getIcePrice(); string iceCheckUser = Console.ReadLine(); bool iceCheck = true; while (iceCheck == true) { if (Int32.TryParse(iceCheckUser, out iceChoice)) { float iceCost = supplierIcePrice * iceChoice; if (iceChoice >= 0 && iceCost <= player.stand.getCash()) { IceOrder ice = new IceOrder(Convert.ToInt32(iceChoice)); Shipment iceShipment = selectedSupplier.createShipment(ice); player.stand.addIceShipment(iceShipment); player.stand.withdrawCash(iceCost); supplyCosts += iceCost; iceCheck = false; } else { Console.WriteLine("Incorrect Amount. How much ice would you like?<cash on hand: " + player.stand.getCash() + ">"); iceCheckUser = Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in format: #.##"); Console.WriteLine("How much ice would you like?<cash on hand: " + player.stand.getCash() + ">"); iceCheckUser = Console.ReadLine(); } } //Create Lemonade Price Console.WriteLine("What price would you like to sell your lemonade?"); string priceString = Console.ReadLine(); bool priceCheck = true; float floatPrice; while (priceCheck == true) { if (Single.TryParse(priceString, out floatPrice)) { priceCheck = false; price = Convert.ToSingle(priceString); } else { Console.WriteLine("What price would you like to sell your lemonade?"); priceString = Console.ReadLine(); } } price = Convert.ToSingle(priceString); //Create Customers and whether they buy var customerNumber = new Random(); List<Customer> customerList = new List<Customer> { }; List<Customer> customerBuyList = new List<Customer> { }; customerFloor = Math.Floor(weather.DemandLevel); customerFloorInt = Convert.ToInt32(customerFloor); int customerInt = customerNumber.Next(0, customerFloorInt); for (int i = 0; i < customerInt; i++) { Customer customer = new Customer(weather,price,player,player.stand); customerList.Add(customer); } foreach(Customer customer in customerList) { var customerBuy = new Random(); var customerToBuy = customerBuy.Next(0, 100); if(customer.buyChance > customerToBuy) { customerBuyList.Add(customer); } } int minAllowed = player.stand.getMinimumAvailable(); customerSelling = customerBuyList.Count(); Console.WriteLine("How many cups of lemonade would you like to make? <" + minAllowed + "> Max"); string quantityStringCups = Console.ReadLine(); quantityCups = Convert.ToInt32(quantityStringCups); while (quantityCups > minAllowed) { Console.WriteLine("Can't make requested amount, please enter new amount."); Console.WriteLine("How many cups of lemonade would you like to make? <" + minAllowed + "> Max"); quantityCups = Convert.ToInt32(Console.ReadLine()); } int daySold = player.stand.calculateTotalSold(customerSelling); float dayTotal = player.stand.calculateTotal(customerSelling,price); // Update day and display summary player.stand.update(); foreach (Supplier supplier in supplierList) { supplier.update(); } Console.WriteLine("You sold " + daySold + " cups for a total of " + dayTotal + " dollars while spending " + supplyCosts + " on supplies."); Console.WriteLine("You have " + player.stand.getCash() + " remaining."); Console.ReadLine(); // check if game over gameCheck = player.stand.checkifZero(); } } }
//public Customer() //{ //} public Customer() { Customer customer = new Customer(); }