Shows total weights of each of the species in the basket

Assignment Help Other Subject
Reference no: EM133155503

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: EM133155503

Questions Cloud

Social network analysis and text analysis : Social network analysis and text analysis of work email traffic (who contacts whom, what is said) allows more accurate estimation of employee engagement
What is the socket of the client and server in packet : What is the socket of the client and server in packet 5 and What is the size of data in packet 6? Calculation required
What port number is used for dns : Using Wireshark to capture a DNS traffic for the domain name of federation edu au, and answer the given questions by examining the captured DNS packet
What ip address is associated with the domain name : What IP address is associated with the domain name and What port number is used for DNS - What is the source MAC address and destination MAC address in packet
Shows total weights of each of the species in the basket : Different species must be implemented as objects of the corresponding classes - For example, only instances of Australian Bass with the weights
What the investor after tax income from the cash dividend : Assume in Stage IV that an investor owns 350 shares and is in a 15 percent tax bracket. What will be the investor's after tax income from the cash dividend
How many shares were subscriptions issued by shrek on march : CR Share Subscription Receivable $648,000. For how many shares were subscriptions issued by Shrek on March 1, 2020
Discuss buying back stock : Discuss buying back stock and splitting shares as ways in which the rate of return of stocks is affected. What is the scientific evidence on these issues
What is the carrying value of stream investment : During 2005, cream company reported net income of 850,000 php and paid cash dividends of 160,000 php. What is the carrying value of stream's investment

Reviews

Write a Review

Other Subject Questions & Answers

  HIV and AIDS prevention versus diagnostics

Analyze the value, cost-effectiveness, and success of HIV/AIDS prevention strategies and education efforts, and make at least two (2) recommendations for improvement.

  Identify a classification system of themes or patterns

Identify a classification system (codes, colors, categories, etc.) of themes or patterns based upon what appears to be most illuminative. What themes or patterns emerged from your notes?

  What factors influence the turnover rate of employees

Assessment item - Research Proposal Presentation. What are the factors that influence the turnover rate of employees in the hospitality industry

  Methodology and extraneous variables

Write a 2 page paper addressing the sections below of the research proposal : Methodology and Extraneous Variables.

  Demonstrate integrity through application of relevant codes

Demonstrate integrity through the application of relevant codes of conduct and social responsibility within one's profession.

  Creative analysis of the selected project

Outstanding well written critical and creative analysis of the implications of policy issues on creative practice. That is you have clearly presented a well-articulated argument about the connection between policy for creative practice and how pr..

  How can instructional leaders use accountability data

How can instructional leaders use accountability data to effect positive change where previous efforts have failed? Justify your responses.

  Criminal defendants

Describe how the Sixth Amendment affects sentencing provisions implementing sentence enhancements against criminal defendants.

  Discuss a time when provided leadership and the outcome

Some advocacy strategies leaders use, Discuss a time when you provided leadership and the outcome. Was there anything that you would do differently?

  Chinese investment in africa

Write a one page outline on "Chinese investment in Africa".

  What types of on-campus drinking behaviors

What types of on-campus drinking behaviors put you at the highest risk for negative outcomes?

  Ethical and legal standards for testing

Using information in the APA (2000) and APA (2009) articles on responsibilities and rights of test takers and test users, discuss why it is important to have ethical and legal standards for testing.

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