fix ramsch, finalise db format
This commit is contained in:
parent
b2f92e7d27
commit
1d5dcfeb93
1 changed files with 56 additions and 61 deletions
117
app/models.py
117
app/models.py
|
|
@ -11,6 +11,16 @@ AuditMixin will add automatic timestamp of created and modified by who
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def addExtras(result, nExtras, extrasTarif):
|
||||||
|
"""takes result array and adds/subtracts the extras and return modified results"""
|
||||||
|
newResult = []
|
||||||
|
for res in result:
|
||||||
|
if res > 0:
|
||||||
|
newResult.append(res+nExtras*extrasTarif)
|
||||||
|
else:
|
||||||
|
newResult.append(res-nExtras*extrasTarif)
|
||||||
|
return newResult
|
||||||
|
|
||||||
class Spieler(Model):
|
class Spieler(Model):
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
name = Column(String())
|
name = Column(String())
|
||||||
|
|
@ -50,11 +60,9 @@ class Spiel(Model):
|
||||||
# Hat der Spielr gewonnen?
|
# Hat der Spielr gewonnen?
|
||||||
gewonnen = Column(Boolean, nullable=True)
|
gewonnen = Column(Boolean, nullable=True)
|
||||||
# Wenn Ramsch gespielt wird
|
# Wenn Ramsch gespielt wird
|
||||||
durchmarsch = Column(Boolean)
|
durchmarsch_gewinner = Column(Integer(), nullable=True)
|
||||||
verlierer1 = Column(Boolean)
|
verlierer = Column(Integer(), nullable=True)
|
||||||
verlierer2 = Column(Boolean)
|
|
||||||
verlierer3 = Column(Boolean)
|
|
||||||
verlierer4 = Column(Boolean)
|
|
||||||
jungfrau1 = Column(Boolean())
|
jungfrau1 = Column(Boolean())
|
||||||
jungfrau2 = Column(Boolean())
|
jungfrau2 = Column(Boolean())
|
||||||
jungfrau3 = Column(Boolean())
|
jungfrau3 = Column(Boolean())
|
||||||
|
|
@ -63,6 +71,7 @@ class Spiel(Model):
|
||||||
|
|
||||||
# Bonus info
|
# Bonus info
|
||||||
farbe = Column(String())
|
farbe = Column(String())
|
||||||
|
kommentar = Column(String())
|
||||||
|
|
||||||
def spielwert(self):
|
def spielwert(self):
|
||||||
grundtarif = 20
|
grundtarif = 20
|
||||||
|
|
@ -74,73 +83,59 @@ class Spiel(Model):
|
||||||
if self.spieltyp == "Sauspiel":
|
if self.spieltyp == "Sauspiel":
|
||||||
spieler = set([self.spieler-1,self.mitspieler-1])
|
spieler = set([self.spieler-1,self.mitspieler-1])
|
||||||
nichtspieler = list(set([0,1,2,3])-spieler)
|
nichtspieler = list(set([0,1,2,3])-spieler)
|
||||||
|
sauspiel_total = grundtarif + self.schneider*extras+ self.laufende*extras
|
||||||
|
|
||||||
if self.gewonnen:
|
if self.gewonnen:
|
||||||
result[self.spieler-1] = grundtarif
|
result[self.spieler-1] = sauspiel_total
|
||||||
result[self.mitspieler-1] = grundtarif
|
result[self.mitspieler-1] = sauspiel_total
|
||||||
result[nichtspieler[0]] = -grundtarif
|
result[nichtspieler[0]] = -sauspiel_total
|
||||||
result[nichtspieler[1]] = -grundtarif
|
result[nichtspieler[1]] = -sauspiel_total
|
||||||
else:
|
else:
|
||||||
result[self.spieler-1] = -grundtarif
|
result[self.spieler-1] = -sauspiel_total
|
||||||
result[self.mitspieler-1] = -grundtarif
|
result[self.mitspieler-1] = -sauspiel_total
|
||||||
result[nichtspieler[0]] = grundtarif
|
result[nichtspieler[0]] = sauspiel_total
|
||||||
result[nichtspieler[1]] = grundtarif
|
result[nichtspieler[1]] = sauspiel_total
|
||||||
|
|
||||||
|
addExtras(result, self.schneider, extras)
|
||||||
|
addExtras(result, self.laufende, extras)
|
||||||
|
|
||||||
elif self.spieltyp == "Wenz" or self.spieltyp == "Solo":
|
elif self.spieltyp == "Wenz" or self.spieltyp == "Solo":
|
||||||
spieler = set([self.spieler-1])
|
spieler = set([self.spieler-1])
|
||||||
nichtspieler = list(set([0,1,2,3])-spieler)
|
nichtspieler = list(set([0,1,2,3])-spieler)
|
||||||
|
solo_total = solo + self.schneider*extras+ self.laufende*extras
|
||||||
if self.gewonnen:
|
if self.gewonnen:
|
||||||
result[self.spieler-1] = 3*solo
|
result[self.spieler-1] = 3*solo_total
|
||||||
result[nichtspieler[0]] = -solo
|
result[nichtspieler[0]] = -solo_total
|
||||||
result[nichtspieler[1]] = -solo
|
result[nichtspieler[1]] = -solo_total
|
||||||
result[nichtspieler[2]] = -solo
|
result[nichtspieler[2]] = -solo_total
|
||||||
else:
|
else:
|
||||||
result[self.spieler-1] = -3*solo
|
result[self.spieler-1] = -3*solo_total
|
||||||
result[nichtspieler[0]] = solo
|
result[nichtspieler[0]] = solo_total
|
||||||
result[nichtspieler[1]] = solo
|
result[nichtspieler[1]] = solo_total
|
||||||
result[nichtspieler[2]] = solo
|
result[nichtspieler[2]] = solo_total
|
||||||
|
|
||||||
elif self.spieltyp == "Ramsch":
|
elif self.spieltyp == "Ramsch":
|
||||||
|
|
||||||
if self.durchmarsch:
|
if self.durchmarsch_gewinner:
|
||||||
if self.verlierer1:
|
gewinner = set([self.durchmarsch_gewinner-1])
|
||||||
result[0] = -solo
|
nichtGewinner= list(set([0,1,2,3])-gewinner)
|
||||||
else:
|
|
||||||
result[0] = 3*solo
|
|
||||||
if self.verlierer2:
|
|
||||||
result[1] = -solo
|
|
||||||
else:
|
|
||||||
result[1] = 3*solo
|
|
||||||
if self.verlierer3:
|
|
||||||
result[2] = -solo
|
|
||||||
else:
|
|
||||||
result[2] = 3*solo
|
|
||||||
if self.verlierer4:
|
|
||||||
result[3] = -solo
|
|
||||||
else:
|
|
||||||
result[3] = 3*solo
|
|
||||||
else:
|
|
||||||
nGewinner = 0
|
|
||||||
if not self.verlierer1:
|
|
||||||
result[0] = grundtarif * (self.jungfrau1 + 1)
|
|
||||||
nGewinner += 1 + self.jungfrau1
|
|
||||||
if not self.verlierer2:
|
|
||||||
result[1] = grundtarif * (self.jungfrau2 + 1)
|
|
||||||
nGewinner += 1 + self.jungfrau2
|
|
||||||
if not self.verlierer3:
|
|
||||||
result[2] = grundtarif * (self.jungfrau3 + 1)
|
|
||||||
nGewinner += 1 + self.jungfrau3
|
|
||||||
if not self.verlierer4:
|
|
||||||
result[3] = grundtarif * (self.jungfrau4 + 1)
|
|
||||||
nGewinner += 1 + self.jungfrau4
|
|
||||||
|
|
||||||
if self.verlierer1:
|
result[self.durchmarsch_gewinner-1] = 3*solo
|
||||||
result[0] = -nGewinner*grundtarif
|
result[nichtGewinner[0]] = -solo
|
||||||
if self.verlierer2:
|
result[nichtGewinner[1]] = -solo
|
||||||
result[1] = -nGewinner*grundtarif
|
result[nichtGewinner[2]] = -solo
|
||||||
if self.verlierer3:
|
|
||||||
result[2] = -nGewinner*grundtarif
|
else:
|
||||||
if self.verlierer4:
|
verlierer = set([self.verlierer-1])
|
||||||
result[3] = -nGewinner*grundtarif
|
nichtVerlierer = list(set([0,1,2,3])-verlierer)
|
||||||
|
|
||||||
|
sum_verloren = 0
|
||||||
|
result[nichtVerlierer[0]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[0]+1))
|
||||||
|
result[nichtVerlierer[1]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[1]+1))
|
||||||
|
result[nichtVerlierer[2]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[2]+1))
|
||||||
|
|
||||||
|
result[self.verlierer-1] = - result[nichtVerlierer[0]] - result[nichtVerlierer[1]] -result[nichtVerlierer[2]]
|
||||||
|
|
||||||
result = [i * (self.schneider * extras+grundtarif) /grundtarif for i in result]
|
|
||||||
|
|
||||||
if self.leger1 or self.leger2 or self.leger3 or self.leger4:
|
if self.leger1 or self.leger2 or self.leger3 or self.leger4:
|
||||||
result = [2*i for i in result]
|
result = [2*i for i in result]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue