Fishing simulation - simulates fishing process

Assignment Help Python Programming
Reference no: EM133158248

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

Questions Cloud

Explain how the hr dept would handle the issue : Select 3 laws that guide the HR team and insert the following.
How does the federal government encourage employees : How does the federal government encourage employees to save for retirement in Canada?
Introduction of cross-functional teams : 1. Discuss the nature of obstacles you will encounter in implementing this new structure. Which do you think will be the most important obstacles to overcome?
Determine the pv payback period in years : The hurdle rate for accepting new capital investment projects is 4%, after-tax. At a discount rate of 4%, determine the PV payback period, in years
Fishing simulation - simulates fishing process : 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
What will be the net book value of the equipment by the end : The equipment was purchased for $120,000 and its expected residual value is zero. What will be the net book value of the equipment by the end of December 2020
Operating a successful supply chain : A global supply chain involves various departments within a firm and external partners to manage the end-to-end processes relating to selling the firm's product
Performance management role-play-manager brief : Performance Management role-play - Manager's brief - Sarah People describe you as driven; a fair description given that you work incredibly hard. Success is imp
Genardo cleaning case scenario : Genardo Cleaning is a small but so far successful family-owned business serving a small district on Ontario, Canada. They have 4 locations. Each location has a

Reviews

Write a Review

Python Programming Questions & Answers

  Creates a mortgage object using the entered values

Creates a Mortgage object using the entered values and Identify and use the correct syntax of a common programming language

  Data cleansing and integration assignment

Data Cleansing and Integration Assignment Help and Solution Auditing and Cleansing the Job dataset and Integrating the Job datasets

  Calculate the distance an object falls over time

You need a function that calculates the distance an object falls over time. Prompts the user to enter the falling time in seconds.

  Write a python program that computes the summation

Find a particular number in a random list - Implement a linear search algorithm, but this time, if you find the number in the list, return the index

  Determine the minimum spanning tree

Draw the above transport network showing weights between the nodes and Create an algorithm that will determine the minimum spanning tree.

  CITS1401 Computational Thinking with Python Assignment

CITS1401 Computational Thinking with Python Assignment help and solution, Assessment help - University of Western Australia - Construct a Python program

  Simulate the monty hall problem

In this problem, we will be writing pieces to simulate the Monty hall problem. Monty Hall was the host of "Let's Make a Deal" in the 1960's and 70's.

  4COM1037 Programming Assignment

4COM1037 Programming Assignment Help and Solution - University of Hertfordshire, UK - Assessment Writing Service - Basic Game Development in Python

  Write a small Python script that asks the user for a name

Write a small Python script that asks the user for a name, and then prints the name 10 times and calculate the cost of a single pizza order

  Draw a diagram of the stack frame

Describe how your input alters the execution path of the program - Draw a diagram of the stack frame for the 'unsafe' function after the call to strcpy()

  Topic of effective and ethical communication

Design an algorithm and use it to write a Python program that reads the contents of the data file into a list. The program should then loop, to allow a user to check various numbers against those stored in the list.

  Write an automatic grading program

B657 Assignment - Image Processing and Recognition Basics. Write an automatic grading program that will work as well as possible

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