Add method converting pl statistics to those that can be used in dt
This commit is contained in:
parent
1f99669d29
commit
f0af76520b
@ -1,4 +1,5 @@
|
|||||||
from src.AI.DecisionTrees.projectSpecificClasses.PlayerStatsValue import PlayerStatsValue
|
from src.AI.DecisionTrees.projectSpecificClasses.PlayerStatsValue import PlayerStatsValue
|
||||||
|
from src.entities.Statistics import Statistics
|
||||||
|
|
||||||
|
|
||||||
class DTPlayerStats:
|
class DTPlayerStats:
|
||||||
@ -10,3 +11,47 @@ class DTPlayerStats:
|
|||||||
self.staminaAmount = staminaAmount
|
self.staminaAmount = staminaAmount
|
||||||
self.thirstAmount = thirstAmount
|
self.thirstAmount = thirstAmount
|
||||||
self.hungerAmount = hungerAmount
|
self.hungerAmount = hungerAmount
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def dtStatsFromPlayerStats(playerStatistics: Statistics):
|
||||||
|
"""
|
||||||
|
This method converts player statistics to object representing statistics that can be used in decision tree.
|
||||||
|
|
||||||
|
:param playerStatistics:
|
||||||
|
"""
|
||||||
|
|
||||||
|
hunger = playerStatistics.hunger / 100 # 100 is max value
|
||||||
|
thirst = playerStatistics.thirst / 100
|
||||||
|
stamina = playerStatistics.stamina / 100
|
||||||
|
|
||||||
|
hungerAmount = None
|
||||||
|
if hunger <= 0.25:
|
||||||
|
hungerAmount = PlayerStatsValue.ZERO_TO_QUARTER
|
||||||
|
elif 0.25 < hunger < 0.5:
|
||||||
|
hungerAmount = PlayerStatsValue.QUARTER_TO_HALF
|
||||||
|
elif 0.5 <= hunger < 0.75:
|
||||||
|
hungerAmount = PlayerStatsValue.HALF_TO_THREE_QUARTERS
|
||||||
|
else: # 0.75 <= hunger <= 1
|
||||||
|
hungerAmount = PlayerStatsValue.THREE_QUARTERS_TO_FULL
|
||||||
|
|
||||||
|
thirstAmount = None
|
||||||
|
if thirst <= 0.25:
|
||||||
|
thirstAmount = PlayerStatsValue.ZERO_TO_QUARTER
|
||||||
|
elif 0.25 < thirst < 0.5:
|
||||||
|
thirstAmount = PlayerStatsValue.QUARTER_TO_HALF
|
||||||
|
elif 0.5 <= thirst < 0.75:
|
||||||
|
thirstAmount = PlayerStatsValue.HALF_TO_THREE_QUARTERS
|
||||||
|
else: # 0.75 <= thirst <= 1
|
||||||
|
thirstAmount = PlayerStatsValue.THREE_QUARTERS_TO_FULL
|
||||||
|
|
||||||
|
staminaAmount = None
|
||||||
|
if stamina <= 0.25:
|
||||||
|
staminaAmount = PlayerStatsValue.ZERO_TO_QUARTER
|
||||||
|
elif 0.25 < stamina < 0.5:
|
||||||
|
staminaAmount = PlayerStatsValue.QUARTER_TO_HALF
|
||||||
|
elif 0.5 <= stamina < 0.75:
|
||||||
|
staminaAmount = PlayerStatsValue.HALF_TO_THREE_QUARTERS
|
||||||
|
else: # 0.75 <= stamina <= 1
|
||||||
|
staminaAmount = PlayerStatsValue.THREE_QUARTERS_TO_FULL
|
||||||
|
|
||||||
|
return DTPlayerStats(hungerAmount, thirstAmount, staminaAmount)
|
||||||
|
Loading…
Reference in New Issue
Block a user