Skip to content

Commit 12bb7f9

Browse files
committed
Added First Steps in OOP - Exercise
1 parent a74479b commit 12bb7f9

File tree

10 files changed

+156
-0
lines changed

10 files changed

+156
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Shop:
2+
3+
def __init__(self, name, items):
4+
self.name = name
5+
self.items = items
6+
7+
def get_items_count(self):
8+
return len(self.items)
9+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Hero:
2+
3+
def __init__(self, name, health):
4+
self.name = name
5+
self.health = health
6+
7+
def defend(self, damage):
8+
if self.health - damage <= 0:
9+
self.health = 0
10+
return f"{self.name} was defeated"
11+
self.health -= damage
12+
13+
def heal(self, amount):
14+
self.health += amount
15+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Employee:
2+
3+
def __init__(self, id, first_name, last_name, salary):
4+
self.id = id
5+
self.first_name = first_name
6+
self.last_name = last_name
7+
self.salary = salary
8+
9+
def get_full_name(self):
10+
return f"{self.first_name} {self.last_name}"
11+
12+
def get_annual_salary(self):
13+
return self.salary * 12
14+
15+
def raise_salary(self, amount):
16+
self.salary += amount
17+
return self.salary
18+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Cup:
2+
3+
def __init__(self, size, quantity):
4+
self.size = size
5+
self.quantity = quantity
6+
7+
def fill(self, amount):
8+
if self.quantity + amount <= self.size:
9+
self.quantity += amount
10+
11+
def status(self):
12+
return self.size - self.quantity
13+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Flower:
2+
3+
def __init__(self, name, water_requirements):
4+
self.name = name
5+
self.water_requirements = water_requirements
6+
self.is_happy = False
7+
8+
def water(self, quantity):
9+
if quantity >= self.water_requirements:
10+
self.is_happy = True
11+
12+
def status(self):
13+
return f"{self.name} is{' ' if self.is_happy else ' not '}happy"
14+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class SteamUser:
2+
3+
def __init__(self, username, games):
4+
self.username = username
5+
self.games = games
6+
self.played_hours = 0
7+
8+
def play(self, game, hours):
9+
if game in self.games:
10+
self.played_hours += hours
11+
return f"{self.username} is playing {game}"
12+
return f"{game} is not in library"
13+
14+
def buy_game(self, game):
15+
if game not in self.games:
16+
self.games.append(game)
17+
return f"{self.username} bought {game}"
18+
return f"{game} is already in your library"
19+
20+
def status(self):
21+
return f"{self.username} has {len(self.games)} games. Total play time: {self.played_hours}"
22+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Programmer:
2+
3+
def __init__(self, name, language, skills):
4+
self.name = name
5+
self.language = language
6+
self.skills = skills
7+
8+
def watch_course(self, course, language, skills):
9+
if language == self.language:
10+
self.skills += skills
11+
return f"{self.name} watched {course}"
12+
return f"{self.name} does not know {language}"
13+
14+
def change_language(self, new_language, skills_needed):
15+
curr_lang = self.language
16+
if self.language != new_language and self.skills >= skills_needed:
17+
self.language = new_language
18+
return f"{self.name} switched from {curr_lang} to {new_language}"
19+
20+
elif self.skills >= skills_needed:
21+
return f"{self.name} already knows {new_language}"
22+
23+
return f"{self.name} needs {skills_needed - self.skills} more skills"
24+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Pokemon:
2+
3+
def __init__(self, name, health):
4+
self.name = name
5+
self.health = health
6+
7+
def pokemon_details(self):
8+
return f"{self.name} with health {self.health}"
9+
10+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from pokemon import Pokemon
2+
3+
4+
class Trainer:
5+
def __init__(self, name=None):
6+
self.name = name
7+
self.pokemons = []
8+
9+
def add_pokemon(self, pokemon):
10+
if pokemon.name not in [x.name for x in self.pokemons]:
11+
self.pokemons.append(pokemon)
12+
return f"Caught {pokemon.pokemon_details()}"
13+
return "This pokemon is already caught"
14+
15+
def release_pokemon(self, pokemon_name):
16+
for pos, name in enumerate(self.pokemons):
17+
18+
if pokemon_name == name.name:
19+
del self.pokemons[pos]
20+
return f"You have released {pokemon_name}"
21+
22+
return "Pokemon is not caught"
23+
24+
def trainer_data(self):
25+
result = f"Pokemon Trainer {self.name}\nPokemon count {len(self.pokemons)}\n"
26+
27+
for info in self.pokemons:
28+
result += f"- {info.pokemon_details()}\n"
29+
30+
return result
31+

0 commit comments

Comments
 (0)