For this project, we will be creating the game Wildlife Island. Your main objective is to replicate the behaviors and features found in my version.
While building, think about how to use classes to organize your code. Consider how LINQ can simplify data processing. Think of the game not just as an end product, but as a canvas for implementing and understanding these core concepts.
Objective:
You are the manager of a newly formed wildlife island. Your task is to grow and maintain a diverse collection of animals while ensuring their well-being and managing your resources effectively.
Main Features:
-
Resources & Finances:
-
Manage an inventory of animal feed.
-
Maintain a financial balance: Gain income (through showcasing) and spend money (buying feed).
-
-
Begin Game Scenarios:
-
When players start a new game, assign them a random assortment of
animals that add up to 100 points. This way each game is unique based on
the random assortment of animals.
-
Animals are divided into 5 tiers. A tier 5 animal is worth 50 points. A tier
4 animal is worth 40 points, etc.
-
For example:
-
1 x Tier 5 animal (50 points) + 5 x Tier 1 animals (50 points) = 100 points
-
2 x Tier 4 animals (80 points) + 1 x Tier 2 animals (20 points) = 100 points
-
-
Players should start off with $2000 and 200 lbs of feed.
-
-
Time Cycle:
-
Gameplay is to survive 10 days.
-
Each day, animals will consume feed and generate income.
-
Players can make decisions to buy feed daily.
4. End Game Scenarios:
1. The game concludes when feed runs out before 10 days.
5. Animal:
1. Based on the data below, each animal has the following attributes:
6. Feed:
1. 2. 3.
4. 5.
Name
Cost
DailyFoodConsumption - How many lbs of food they eat
every day
Daily income - How much money they generate every day
Tier - Tier animal they are
-
Generate a
trend so that it randomly increases or decreases somewhere between +$15 and -$15 relative to the previous price.1. Example:
1. If current price is $75, the next price should beanywhere between $60 and $90.
2. If current price is $50, the next price should beanywhere between $35 and $65.
-
Ensures market price stays within set boundaries.
-
Minimum price is $3 / lbs.
-
Maximum price is $100 / lbs
-
-
Imagine the feed price of Day 0 is $30. This means Day 1 (the start of the
game), should be anywhere between $15 and $45.
-
Display the max number of feed a player can buy based on the money
they have in UI.
new price every day based on the previous one. Make it a
-
Player can only purchase what they can afford. If feed is $10 / lb and the player has $15, they cannot purchase more than 1 lb of food.
-
Ask for confirmation.
7. UI:
-
Every user input should have a default option. The example below has the default option of "Go to Next Day"
-
For example:
1. Options:1. Buy Feed
2. Go to Next Day
Your action (Press Enter for Next Day):
Coding Requirements:
Use this code to populate your Animals
public static List AvailableAnimals = new List
{
// Tier 1
new Animal { Name = "Rabbit", Cost = 50, DailyFoodConsumption = 2, DailyIncome = 5, Tier = 1 },
new Animal { Name = "Turtle", Cost = 70, DailyFoodConsumption = 1, DailyIncome = 4, Tier = 1 },
new Animal { Name = "Chicken", Cost = 100, DailyFoodConsumption = 3, DailyIncome = 8, Tier = 1 },
new Animal { Name = "Duck", Cost = 110, DailyFoodConsumption = 3, DailyIncome = 10, Tier = 1 },
new Animal { Name = "Lemur", Cost = 120, DailyFoodConsumption = 4, DailyIncome = 12, Tier = 1 },
new Animal { Name = "Monkey", Cost = 350, DailyFoodConsumption = 7, DailyIncome = 22, Tier = 1 },
// Tier 2
new Animal { Name = "Goat", Cost = 200, DailyFoodConsumption = 5, DailyIncome = 15, Tier = 2 },
new Animal { Name = "Sheep", Cost = 250, DailyFoodConsumption = 6, DailyIncome = 20, Tier = 2 },
new Animal { Name = "Pig", Cost = 300, DailyFoodConsumption = 8, DailyIncome = 25, Tier = 2 },
new Animal { Name = "Donkey", Cost = 400, DailyFoodConsumption = 9, DailyIncome = 28, Tier = 2 },
new Animal { Name = "Raccoon", Cost = 400, DailyFoodConsumption = 7, DailyIncome = 26, Tier = 2 },
new Animal { Name = "Fox", Cost = 500, DailyFoodConsumption = 9, DailyIncome = 29, Tier = 2 },
// Tier 3
new Animal { Name = "Cow", Cost = 500, DailyFoodConsumption = 10, DailyIncome = 30, Tier = 3 },
new Animal { Name = "Koala", Cost = 550, DailyFoodConsumption = 11, DailyIncome = 33, Tier = 3 },
new Animal { Name = "Kangaroo", Cost = 550, DailyFoodConsumption = 11, DailyIncome = 38, Tier = 3 },
new Animal { Name = "Horse", Cost = 600, DailyFoodConsumption = 12, DailyIncome = 35, Tier = 3 },
new Animal { Name = "Deer", Cost = 600, DailyFoodConsumption = 12, DailyIncome = 38, Tier = 3 },
new Animal { Name = "Buffalo", Cost = 700, DailyFoodConsumption = 14, DailyIncome = 40, Tier = 3 },
// Tier 4
new Animal { Name = "Zebra", Cost = 650, DailyFoodConsumption = 13, DailyIncome = 39, Tier = 4 },
new Animal { Name = "Camel", Cost = 650, DailyFoodConsumption = 15, DailyIncome = 40, Tier = 4 },
new Animal { Name = "Panda", Cost = 850, DailyFoodConsumption = 14, DailyIncome = 40, Tier = 4 },
new Animal { Name = "Hippo", Cost = 850, DailyFoodConsumption = 18, DailyIncome = 44, Tier = 4 },
new Animal { Name = "Giraffe", Cost = 800, DailyFoodConsumption = 17, DailyIncome = 42, Tier = 4 },
new Animal { Name = "Bear", Cost = 950, DailyFoodConsumption = 16, DailyIncome = 43, Tier = 4 },
// Tier 5
new Animal { Name = "Wolf", Cost = 900, DailyFoodConsumption = 15, DailyIncome = 41, Tier = 5 },
new Animal { Name = "Cheetah", Cost = 1000, DailyFoodConsumption = 15, DailyIncome = 45, Tier = 5 },
new Animal { Name = "Elephant", Cost = 1000, DailyFoodConsumption = 20, DailyIncome = 50, Tier = 5 },
new Animal { Name = "Rhino", Cost = 1100, DailyFoodConsumption = 19, DailyIncome = 46, Tier = 5 },
new Animal { Name = "Lion", Cost = 1200, DailyFoodConsumption = 18, DailyIncome = 48, Tier = 5 },
new Animal { Name = "Ostrich", Cost = 450, DailyFoodConsumption = 8, DailyIncome = 20, Tier = 5 }
};
Grading Criteria
Wildlife Island |
||
Criteria |
Ratings |
Pts |
This criterion is linked to a Learning Outcome Does it compile? |
5 pts Full Mar ks 0 pts No Mar ks |
5 pts |
This criterion is linked to a Learning Outcome Animal Do players get a random assortment of animals that add up to 100 points based on tiers? Does the player's money increase and feed decrease every day? |
50 pts pts Ful No lM Ma ar rks ks |
5 pts |
This criterion is linked to a Learning Outcome Feed Does feed market price change every day? |
50 pp ts t s F uN ll o MM aa |
5 pts |
Does it list the maximum number of lbs of feed the player can purchase?
Does it validate a player can't purchase more feed than they have money?
This criterion is linked to a Learning Outcome
Game Over
If the player runs out of money or feed, does the game end?
Does it tell the player relevant information in the UI?
After completing a game, can the player restart/exit the game?