Develop a program that simulates fishing

Assignment Help Other Subject
Reference no: EM133150081

ITECH 1400 Foundations of Programming - Fishing Simulation

Introduction: In this assignment you are required to develop a program that simulates fishing: There are 6 fish species in the river which you may catch:

- Australian Bass (Macquaria Novemaculeata) - commonly less than 4 Kg; excellent eating, when less than 2.5 Kg.
- Short Finned Eel (Anguilla Australis)- commonly less than 3 Kg; a good eating fish.
- Eel Tailed Catfish (Tandanus Tandanus) - Up to 6.8 Kg; excellent eating, when less than 4 Kg.
- Gippsland Perch (Macquaria Colonorum)- commonly less than 10 Kg; excellent eating when up to 6 Kg.
- Two more species you should add to this list yourself. Search the internet for the necessary details.

Your program should be based on the following assumptions:
- Every second you catch a fish (perfect fishing).
- The chances (probabilities) to catch each of these six species are equal.
- Weights of fishes of the same species are distributed evenly and range from 0 to the Maximal Weight. The value of Maximal Weight for each of the species is given above. For example, Maximal Weight of Australian Bass is 4 Kg.
- Fishing starts with an empty basket which you should implement as a list. If you catch a fish with a weight greater than 500 g or less than the recommended excellent eating maximum, you add it to the basket. Otherwise, release it. For example, only instances of Australian Bass with the weights between 0.5 Kg and 2.5 Kg should be added to the basket.
- Stop fishing immediately as soon as the total weight of all the fishes in the basket exceeds 25 Kg.

To generate a random fish and weight, you are supposed to use the "randrange" function from the "random" package.
Fishes of different species must be implemented as objects of the corresponding classes.
For convenience, all weights appearing in the program body should be integers given in grams e.g. instead of 3 Kg you should use 3000g. However, when printing outputs on the screen you may use kilograms.

Question 2. Develop a module named fish_species (file "fish_species.py"). This module should contain definitions of the following six classes: AustralianBass, ShortFinnedEel, EelTailedCatfish, GippslandPerch + 2 more classes for the species you add yourself.

class AustralianBass should contain the following members:

- Variables (Constants):
- MAX_WEIGHT = 4000
- MAX_EATING_WEIGHT = 2500
- NAME = 'Australian Bass'
- LATIN_NAME = 'Macquaria Novemaculeata'
- The constructor should define and initialise a single attribute named "weight". The attribute weight must get an integer value between 0 and MAX_WEIGHT.
- A method named "is_good_eating": returns True if the fish's weight is between 500 g and excellent eating weight (2500 g for Australian Bass).
- An overridden (redefined) method " str " that returns a nice, readable string representation of a fish object. Here's an example:

Other fish classes should have similar, mutatis mutandis, implementations.

Question 3. Develop a module named "fishing" (file "fishing.py"). This module should import the module "fish_species", so you can use the class definitions from it. In addition, in this module you should define the following functions:

Function start_fishing().

The function simulates fishing process in the following way:
- Every second a random fish is "caught". I.e., every second the program randomly chooses one of the 6 fish species, then randomly generates a weight within valid range (between 0 and the species' MAX_WEIGHT), and then creates the corresponding fish object.
- If the created fish object is_good_eating, the object is added to the basket (implemented as a list). Otherwise, the fish is released, i.e., is not added to the basket.
- Once total weight of fishes in the basket exceeds 25 Kg (25000 g), the basket is returned (fishing ends).

- Fishing results should be printed on the screen, one line per second.
- Here's a sample output:

Note. To pause your function's execution for 1 second use time.sleep(1) function from the time package.

Function print_basket(basket).
The function prints its argument's (basket's) content on the screen as shown below:

Function plot_basket(basket).

The function plots a bar-chart that shows total weights of each of the species in the basket:

Note. In the examples above only four species of fishes are used. However, in your program you should have 6 species!

Functions save_basket(basket, file_name) and load_basket(file_name).

In this task you must:
- search Python documentation to find out how to use the pickle package in order to save Python objects to files and load the saved objects back to programs.
- save_basket(basket, file_name) - using pickle.dump saves the basket to a binary file with the specified name.
- load_basket(file_name) - using pickle.load loads a saved object (basket) from the specified file.

Attachment:- Fishing_Simulation.rar

Reference no: EM133150081

Questions Cloud

How much is the consolidated net income : Growth Corporation acquired an 70% interest in Expanded Company on January 1, 2022 for P245,000. How much is the consolidated net income
What is the adjusted inventory balance : December sales included P300,000 sales to employees which was net of a P200,000 total employee discount. What is the adjusted inventory balance
What is the equilibrium output of such knives : The long- run supply curve for a particular type of kitchen knife is a horizontal line at a price of $3 per knife. What is the equilibrium output of such knives
Compute the required monthly payment : The house you picked will necessitate you borrow $300,000. Compute the required monthly payment, and create an amortization table
Develop a program that simulates fishing : Develop a program that simulates fishing - Develop a module named fish_species (file "fish_species.py")
Forensic accounting and fraud examination : Discuss the five major categories of fraudulent disbursements. Determine two internal controls that might help to prevent disbursement frauds.
How much amortization of the discount is recorded : How much amortization of the discount is recorded on the bonds for the entire period from January 1, 2019, through December 31, 2024
Background on financial statement fraud : Discuss a brief background on the financial statement fraud. Why might senior management overstate or understate business performance?
What is the amount of compensating balance would be required : What is the amount of compensating balance would be required for a nominal interest rate of 12% to equal an effective interest rate of 14.40% on a P150,000

Reviews

Write a Review

Other Subject Questions & Answers

  Future generations to be able to pay for our spending

Identify three or more of these sources and discuss whether any of them provide a plan for future generations to be able to pay for our spending.

  What you feel is your biggest contribution to the profession

500-word statement describing myself as a RN following: What you feel is your biggest contribution to the profession of nursing to date?

  Describe homeland security entities to protect the homeland

Compare and contrast the intelligence methods and duties and responsibilities of the U.S. military, federal, state and local law enforcement.

  Retrospective analysis of personality

Reflect on your life history and discuss which aspects of your personality have changed over time and which aspects have stayed consistent. Based on your retrospective analysis, describe the roles of nature and nurture in shaping your personality...

  Contrast biological and behaviorist theories

Compare and contrast biological and behaviorist theories by explaining the strengths and limitations of each theory.

  Explain why it is important to have a curriculum in art

Explain why it is important to have a curriculum in art that accommodates diverse learners. You may use the ideas in the textbook as springboards.

  In what ways did the designer make use of gestalt theories

In what ways did the designer make use of Gestalt theories, constructivism, semiotics, and/or cognitive approaches to help the viewer derive meaning from the visual?

  Molecules at the water-surface interface

What if we could make different liquids have increased surface tension like water? Which liquids would you choose to increase their surface tension and why?

  Data centre consultancy project

Analysis of Data Centre Layout and Design of the rooms & other areas within the DC facility - Capacity Analysis of the existing DC Facility & Infrastructure

  Identify three different external societal factors

Large word-for-word quotes are not permitted. Direct quotes, if used need to be only a sentence or two long. Instead, most cited material needs to be paraphrased. For more information on properly citing sources in your assignments please refer to ..

  Examining the article on same-sex marriage

Examining either article on same-sex marriage (see Course Readings section of Blackboard), briefly reconstruct the argument of the author in its most basic form

  What steps and actions might be taken by the communities

The Department of Homeland Security's 2014 Quadrennial Homeland Security Review identifies six strategic challenges (found on page 28 of this document).

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd