{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "toc_visible": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lcYYupMlST4M", "outputId": "da4d844e-9fb8-4f9c-814d-76ae5f8a4516" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Starting the race over 200 km...\n", "\n", "Car A: Speed = 113 km/h, Fuel Consumption = 6.18 liters per 100 km, Time Taken = 1.77 hours\n", "Car B: Speed = 103 km/h, Fuel Consumption = 5.58 liters per 100 km, Time Taken = 1.94 hours\n", "Car C: Speed = 114 km/h, Fuel Consumption = 6.24 liters per 100 km, Time Taken = 1.75 hours\n", "\n", "Results:\n", "Fastest Car: Car C with 1.75 hours\n" ] } ], "source": [ "import random\n", "\n", "class Car:\n", " def __init__(self, name, base_fuel_consumption, base_speed):\n", " self.name = name # Name of the car\n", " self.base_fuel_consumption = base_fuel_consumption\n", " self.base_speed = base_speed\n", " self.speed = 0\n", " self.fuel_consumption = 0\n", "\n", " def set_random_speed_and_consumption(self):\n", " self.speed = random.randint(self.base_speed - 10, self.base_speed + 20)\n", " self.fuel_consumption = self.base_fuel_consumption * (1 + (self.speed - self.base_speed) / 100)\n", "\n", " def calculate_time(self, distance):\n", " if self.speed > 0:\n", " return distance / self.speed\n", "\n", "\n", "class CarCompetition:\n", " def __init__(self, distance):\n", " self.distance = distance\n", " self.cars = []\n", "\n", " def add_car(self, car):\n", " self.cars.append(car)\n", "\n", " def start_race(self):\n", " if len(self.cars) < 2:\n", " print(\"Not enough cars for a competition. Add more cars.\")\n", " return\n", "\n", " print(f\"Starting the race over {self.distance} km...\\n\")\n", " results=[]\n", "\n", " for car in self.cars:\n", " car.set_random_speed_and_consumption()\n", " time_taken = car.calculate_time(self.distance)\n", " results.append({\n", " \"car\": car.name,\n", " \"time_taken\": time_taken,\n", " \"fuel_consumption\": car.fuel_consumption\n", " })\n", " print(f\"{car.name}: Speed = {car.speed} km/h, Fuel Consumption = {car.fuel_consumption:.2f} liters per 100 km, Time Taken = {time_taken:.2f} hours\")\n", "\n", "\n", " winner_by_time = self.get_winner_by_time(results)\n", "\n", " print(\"\\nResults:\")\n", " print(f\"Fastest Car: {winner_by_time['car']} with {winner_by_time['time_taken']:.2f} hours\")\n", "\n", " def get_winner_by_time(self, results):\n", " fastest_car = None\n", " fastest_time = float('inf')\n", "\n", " for result in results:\n", " if result[\"time_taken\"] < fastest_time:\n", " fastest_time = result[\"time_taken\"]\n", " fastest_car = result\n", "\n", " return fastest_car\n", "\n", "# Example Usage\n", "car1 = Car(\"Car A\", base_fuel_consumption=6.0, base_speed=110)\n", "car2 = Car(\"Car B\", base_fuel_consumption=6.0, base_speed=110)\n", "car3 = Car(\"Car C\", base_fuel_consumption=6.0, base_speed=110)\n", "\n", "competition = CarCompetition(distance=200)\n", "competition.add_car(car1)\n", "competition.add_car(car2)\n", "competition.add_car(car3)\n", "\n", "competition.start_race()\n", "\n", "\n" ] }, { "cell_type": "markdown", "source": [ "Improve the previous competition:\n", "\n", "1. Set a limit on the fuel deposit of cars\n", "2. Calculate other charateristics that may make the competition interesting.\n", "\n" ], "metadata": { "id": "SiP44lNKaFuZ" } } ] }