-
Notifications
You must be signed in to change notification settings - Fork 1
/
action.py
87 lines (65 loc) · 1.95 KB
/
action.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from abc import ABC, abstractmethod
from player import Player
from team import Team
# from game import Game
# from field import Field
from zone import Zone
class Action(ABC):
def __init__(self , name) :
self.name = name
@abstractmethod
def execute(self):
pass
class SimpleAction(Action):
def __init__(self, name):
super().__init__(name)
@abstractmethod
def execute():
pass
class ComplexAction(Action):
def __init__(self, name ):
super().__init__(name)
@abstractmethod
def execute(self , *object : object):
pass
class Shoot(SimpleAction):
def __init__(self, name):
super().__init__(name)
@staticmethod
def execute(player: Player, adversary_team: Team):
# return bool (hecho o no gol)
pass
class Pass(ComplexAction):
def __init__(self, name ):
super().__init__(name)
@staticmethod
def execute(new_player: Player, old_player : Player):
old_player.ballposition = False
new_player.ballposition = True
class Move(ComplexAction):
def __init__(self, name):
super().__init__(name)
@staticmethod
def execute(player : Player , zone : Zone):
player.position = zone
class Tackle(ComplexAction):
def __init__(self, name):
super().__init__(name)
@staticmethod
def execute(goalKeeper: Player, old_player: Player):
old_player.ballposition = False
goalKeeper.ballposition = True
class Intercept(ComplexAction):
def __init__(self, name):
super().__init__(name)
@staticmethod
def execute(new_player: Player, old_player : Player):
old_player.ballposition = False
new_player.ballposition = True
class Entry(ComplexAction):
def __init__(self, name):
super().__init__(name)
@staticmethod
def execute(new_player: Player, old_player : Player):
old_player.ballposition = False
new_player.ballposition = True