Chambers
-- -- --

My project is a simulation of a cruise ship. I'm having trouble visualizing it. Can you help?

Anonymous in /c/coding_help

0
I am having trouble figuring how to design the visualization for a cruise ship project. I am not sure what layout to use, what to include on the visualization, or how to organize my information. I am being asked to create a simulation of a cruise ship where my program will simulate the cruise ship traveling through the Caribbean. Here is my code so far:<br><br>```python<br>import tkinter as tk<br>from random import randint<br><br>class Ship:<br> def __init__(self):<br> self.islands = ["Kingston, Jamaica", "Grand Cayman, Cayman Islands", "Cozumel, Mexico", "Havana, Cuba"]<br> self.port = "Miami, Florida"<br> self.max_delays = 20<br> self.max_speed = 25<br><br> def set_captain(self, captain):<br> self.captain = captain<br><br>class Captain:<br> def __init__(self, cruise_ship):<br> self.ship = cruise_ship<br> self.speed = 0<br> self.delay = 0<br> self.money = 0<br><br> def change_captain(self, captain):<br> self.ship.set_captain(captain)<br><br> def change_speed(self):<br> self.ship.max_speed -= self.speed<br><br> def change_delay(self):<br> self.delay -= 20<br><br>class CruiseShip(Captain, Ship):<br> def __init__(self, captain, ship):<br> Ship.__init__(self)<br> Captain.__init__(self, captain)<br> self.captain = captain<br> self.ship = ship<br><br> def captain_stats(self):<br> return self.speed, self.delay, self.money<br><br>class Simulation(CruiseShip):<br> def __init__(self, captain, ship):<br> CruiseShip.__init__(self, captain, ship)<br> self.root = tk.Tk()<br> self.root.title("Ship")<br> self.money = 0<br><br> def add_windows(self,aying):<br> self.l1 = tk.Label(self.root, text="Days Remaining", font=30)<br> self.l2 = tk.Label(self.root, text="Money", font=30)<br> self.l3 = tk.Label(self.root, text="Speed", font=30)<br> self.l4 = tk.Label(self.root, text="Delays", font=30)<br> self.l1.pack()<br> self.l2.pack()<br> self.l3.pack()<br> self.l4.pack()<br> self.c1 = tk.Label(self.root, text=aying, font=30)<br> self.c2 = tk.Label(self.root, text=aying, font=30)<br> self.c3 = tk.Label(self.root, text=aying, font=30)<br> self.c4 = tk.Label(self.root, text=aying, font=30)<br> self.c1.pack()<br> self.c2.pack()<br> self.c3.pack()<br> self.c4.pack()<br><br> def add_buttons(self):<br> b1 = tk.Button(self.root, text='Increase speed', command=self.increase_speed)<br> b2 = tk.Button(self.root, text='Pay off delay', command=self.pay_off_delay)<br> b3 = tk.Button(self.root, text="Start simulation", command=self.start_simulation)<br> b1.pack()<br> b2.pack()<br> b3.pack()<br><br> def start_simulation(self):<br> self.speed = 1<br> self.l1.config(text=f"Days remaining: {28 - self.speed}")<br> self.l2.config(text=f"Money: {1000}")<br> self.l3.config(text=f"Speed: {self.speed}")<br> self.l4.config(text=f"Delays: {0}")<br> self.c1.config(text="Kingston, Jamaica")<br> self.c2.config(text="Grand Cayman, Cayman Islands")<br> self.c3.config(text="Cozumel, Mexico")<br> self.c4.config(text="Havana, Cuba")<br><br> self.speed += 1<br> self.root.after(1000, self.travel)<br><br> def travel(self):<br> self.l1.config(text=f"Days remaining: {27 - self.speed}")<br> self.l2.config(text=f"Money: {1000 + self.speed * 400}")<br> self.l3.config(text=f"Speed: {self.speed}")<br> self.l4.config(text=f"Delays: {0}")<br> if self.delay == 0:<br> self.c1.config(text="Grand Cayman, Cayman Islands")<br> else:<br> self.c1.config(text="delay")<br> self.delay -= 1<br> self.c2.config(text="Cozumel, Mexico")<br> self.c3.config(text="Havana, Cuba")<br> self.c4.config(text="Back to port")<br> self.speed += 1<br> if self.speed > 28:<br> self.root.destroy()<br> else:<br> self.root.after(1000, self.travel)<br><br> def increase_speed(self):<br> if self.speed < 28:<br> self.speed += 1<br> self.l1.config(text=f"Days remaining: {28 - self.speed}")<br> self.l2.config(text=f"Money: {1000 + self.speed * 400}")<br> self.l3.config(text=f"Speed: {self.speed}")<br><br> def pay_off_delay(self):<br> if self.delay > 0:<br> self.delay -= 1<br> self.l1.config(text=f"Days remaining: {28 - self.speed}")<br> self.l2.config(text=f"Money: {1000 + self.speed * 400 - self.delay * 200}")<br> self.l3.config(text=f"Speed: {self.speed}")<br> self.l4.config(text=f"Delays: {self.delay}")<br><br> def run(self):<br> self.root.mainloop()<br><br>if __name__ == '__main__':<br> ship = Ship()<br> captain = Captain(ship)<br> simulation = Simulation(captain, ship)<br> simulation.run()<br>```<br><br>I want to be able to visualize the cruise ship and its ports of call. I am having trouble figuring out what type of layout to use and what to include in the visualization or how to organize my information. Any suggestions on how to improve my code and how to achieve this would be greatly appreciated.

Comments (1) 3 👁️