Merge branch 'master' of github.com:swinginbird/flippr-code

This commit is contained in:
Johannes Wendel
2019-10-30 21:39:27 +01:00
5 changed files with 124 additions and 1 deletions

21
cli/Bank.py Normal file
View File

@@ -0,0 +1,21 @@
class Bank(Target):
def __init__(self, targets):
self.targets = targets
self.__register_targets__()
def __target_hit__(self, target):
if all(target.is_hit for target in self.targets):
self.__all_targets_hit__()
def __all_targets_hit__(self):
self.__reset_all_targets__()
super.hit()
pass
def __reset_all_targets__(self):
for target in self.targets:
target.reset()
def __register_targets__(self):
for target in self.targets:
target.on(target.hit_key, self.__target_hit__)

15
cli/BankTarget.py Normal file
View File

@@ -0,0 +1,15 @@
from Target import Target
class BankTarget(Target):
def __init__(self, points):
super(points)
self.is_hit = False
def hit(self):
self.is_hit = True
super.hit()
#notify Bank
def reset(self):
self.is_hit = False

View File

@@ -46,4 +46,10 @@ class Networking:
self.get("/displays" + display + "/write_score/" + str(score)) self.get("/displays" + display + "/write_score/" + str(score))
def getInputEvent(self): def getInputEvent(self):
return self.input_socket.recvmsg(4096) header = ''
while chr(2) not in header:
header += self.input_socket.recv()
length = int(header[:-1])
return self.input_socket.recv(length)

71
cli/Main.puml Normal file
View File

@@ -0,0 +1,71 @@
@startuml
class Observable {
trigger(string event)
on(string event, function fun)
}
class FlippR
class Game
Game --* Cabinet : isAchievementStrategy ?
Game --* State : observes >
Game "1" --* "*" TargetStrategy
class TargetStrategy
Target "1" o-- "1" TargetStrategy : observe <
State o-- TargetStrategy : changes <
class State {
int ballsLeft
int currentBall
}
State --* BallState
class BallState {
int score
int globalMultiplier
addScore(int points)
}
class UpperPlayFieldTimer {
int timeLeft = 0
start()
stop()
}
BallState --* UpperPlayFieldTimer
class Cabinet {
}
Observable <|-- Cabinet
Cabinet "1" --* "*" Target
Observable <|-- Target
abstract class Target {
int points
string name
hit()
}
class AchievementTarget {
}
Target *-- AchievementTarget
Target <|-- AchievementTarget
class BankTarget {
bool isHit
hit()
reset()
}
Target <|-- BankTarget
class Bank
Target <|-- Bank
Bank "1" --* "1..*" BankTarget : observe >
@enduml

10
cli/Target.py Normal file
View File

@@ -0,0 +1,10 @@
class Target(Observable):
def __init__(self, points, name):
self.points = points
self.name = name
self.hit_key = "hit"
def hit(self):
#notify Observers
#notify Gamestate
self.trigger(self.hit_key, self)