forked from SVIG/python-bootcamp
update
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
class Simulation(ABC):
|
||||
@abstractmethod
|
||||
def start(self):
|
||||
"Start the simulated object."
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def tick(self) -> bool:
|
||||
"""
|
||||
Simulate one clock tick.
|
||||
Returns:
|
||||
bool: True if the simulation could advance one clock tick, or False if the object is expired.
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_uses(self):
|
||||
"""
|
||||
Return the uses of the simulated object. These are verb strings which are passed to the `use()` method.
|
||||
Returns:
|
||||
tuple: A dict of key-value pairs, where the keys are strings of
|
||||
verbs to be passed to `use`, and the values are strings explaining
|
||||
what the verb does in English.
|
||||
"""
|
||||
@abstractmethod
|
||||
def use(self, *args, **kwargs):
|
||||
"""
|
||||
Use the simulated object.
|
||||
Args:
|
||||
args (tuple): A tuple of verbs to be used on the object.
|
||||
kwargs (dict): A dictionary of key-value pairs of arguments to the verb(s).
|
||||
Returns:
|
||||
True if the action succeeded, False if the action did not succeed and the object needs to be expired.
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def stop(self):
|
||||
"Stop the simulated object."
|
||||
pass
|
||||
Reference in New Issue
Block a user