Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Language: Python 3.6.1 Interpreter: Anaconda 3.6.4 --- Program used: PyCharm --- Starter files: https://www.dropbox.com/s/33icse4txqwle80/a9_inputfiles.zip?dl=0 --- 100-LEVEL --- It's time to put all of your Python
Language: Python 3.6.1
Interpreter: Anaconda 3.6.4
--- Program used: PyCharm --- Starter files: https://www.dropbox.com/s/33icse4txqwle80/a9_inputfiles.zip?dl=0 ---
100-LEVEL
---
It's time to put all of your Python skills to work. For the first time we are giving you a non-trivial problem, but only describing the problem that needs to be solved, and giving you very little guidance on how to solve it. You are allowed to use any of the Python language features and problem solving methods that we have discussed in class or used on assignments or in labs in order to solve the problem. You will be graded not only for correctness.but also for making good choices about how you store data. how your organize your program, how well you document (comment) your program, and how well you test your program. Problem Description Pokemon are fantastic creatures that people can catch and train, and many Pokemon trainers aspire to catch as many as possible Imagine that you have caught so many Pokemon that you have decided to acquire your own farm to feed them. Your farm is an NaN plot of fruit trees, and there are potentially five different types of fruits that can grow on the farm firefruits, waterfruits, grassfruits, joltfruits and the very rare megafruit nitially, your farm is mostly empty, with just a few fruit trees placed here and there. However, each spring the fruit trees will spread to adjacent locations in the farm (using a process described further below). Each fall you will harvest the different types of fruit from all of the trees on your farm. Your task for this assignment is to write a program that will simulate the growth of your farm over time and report the total fruit yield by the time the farm is done growing Problem Details Initial conditions We will visualize the farm as an NEN grid of characters. where an underscore represents an empty space for a fruit tree, and a letter represents a fruit tree of the corresponding type (F for firefruit tree. W for waterfruit tree, etc.J. The initial conditions for the farm will come from a file so you will have to do some file input to set up your farm Be careful the file format for the input file will NOT look ike the visualzation of the farm (just described), but will instead be much more compact It will look Like this: 0,0 1,0 2,0 3,0 0,3 1,3 2,3 3,3 The first line of the file is a single integer indicating the dimensions of the farm tthe farm is always squarel. This is followed by exactly 4 more lines, one line for each type of basic fruit tree in this order. firefruit. waterfruit grassfruit, joltfruit On each line will be one or more sets of (row.columni coordinate pairs rep- resenting the intial locations of the fruit trees. The coordinate pairs on the same line are separated from each other by spaces and the row and column for each pair are separated by a comma. Below is a visual zation of the farm that is represented by the input file above. Make sure you understand how the input file matches up to the grid picture before going any furtherl Some might even say they gotta catch them al Visualization of the initial conditions of a 4x4 farm Spring Spreading Once you have loaded the initial farm, you will simulate the farm's behaviour over a period of multiple years. During the spring of each year, every fruit tree on the farm has the potential to spread to adjacent empty spaces Spaces that already contain a fruit tree will never change, only the empty ones. The rules for how the trees can spread are as follows If an empty space is . adjacent to only one type of tree then that tree type will spread to the space adjacent to ALL FOUR types of basic trees then a megafruit tree will grow in that space It's time to put all of your Python skills to work. For the first time we are giving you a non-trivial problem, but only describing the problem that needs to be solved, and giving you very little guidance on how to solve it. You are allowed to use any of the Python language features and problem solving methods that we have discussed in class or used on assignments or in labs in order to solve the problem. You will be graded not only for correctness.but also for making good choices about how you store data. how your organize your program, how well you document (comment) your program, and how well you test your program. Problem Description Pokemon are fantastic creatures that people can catch and train, and many Pokemon trainers aspire to catch as many as possible Imagine that you have caught so many Pokemon that you have decided to acquire your own farm to feed them. Your farm is an NaN plot of fruit trees, and there are potentially five different types of fruits that can grow on the farm firefruits, waterfruits, grassfruits, joltfruits and the very rare megafruit nitially, your farm is mostly empty, with just a few fruit trees placed here and there. However, each spring the fruit trees will spread to adjacent locations in the farm (using a process described further below). Each fall you will harvest the different types of fruit from all of the trees on your farm. Your task for this assignment is to write a program that will simulate the growth of your farm over time and report the total fruit yield by the time the farm is done growing Problem Details Initial conditions We will visualize the farm as an NEN grid of characters. where an underscore represents an empty space for a fruit tree, and a letter represents a fruit tree of the corresponding type (F for firefruit tree. W for waterfruit tree, etc.J. The initial conditions for the farm will come from a file so you will have to do some file input to set up your farm Be careful the file format for the input file will NOT look ike the visualzation of the farm (just described), but will instead be much more compact It will look Like this: 0,0 1,0 2,0 3,0 0,3 1,3 2,3 3,3 The first line of the file is a single integer indicating the dimensions of the farm tthe farm is always squarel. This is followed by exactly 4 more lines, one line for each type of basic fruit tree in this order. firefruit. waterfruit grassfruit, joltfruit On each line will be one or more sets of (row.columni coordinate pairs rep- resenting the intial locations of the fruit trees. The coordinate pairs on the same line are separated from each other by spaces and the row and column for each pair are separated by a comma. Below is a visual zation of the farm that is represented by the input file above. Make sure you understand how the input file matches up to the grid picture before going any furtherl Some might even say they gotta catch them al Visualization of the initial conditions of a 4x4 farm Spring Spreading Once you have loaded the initial farm, you will simulate the farm's behaviour over a period of multiple years. During the spring of each year, every fruit tree on the farm has the potential to spread to adjacent empty spaces Spaces that already contain a fruit tree will never change, only the empty ones. The rules for how the trees can spread are as follows If an empty space is . adjacent to only one type of tree then that tree type will spread to the space adjacent to ALL FOUR types of basic trees then a megafruit tree will grow in that spaceStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started