resumed work; adjusted player string generation

This commit is contained in:
Sakimori 2022-07-30 19:26:33 -07:00
parent 8622dc5b1e
commit 3ceaf97f23
4 changed files with 26 additions and 7 deletions

View file

@ -11,7 +11,7 @@
<OutputPath>.</OutputPath> <OutputPath>.</OutputPath>
<Name>SimHoc</Name> <Name>SimHoc</Name>
<RootNamespace>SimHoc</RootNamespace> <RootNamespace>SimHoc</RootNamespace>
<InterpreterId>MSBuild|Hockey|$(MSBuildProjectFullPath)</InterpreterId> <InterpreterId>MSBuild|hockey10|$(MSBuildProjectFullPath)</InterpreterId>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -50,6 +50,15 @@
<Compile Include="SimHoc.py" /> <Compile Include="SimHoc.py" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Interpreter Include=".env\hockey10\">
<Id>hockey10</Id>
<Version>3.10</Version>
<Description>hockey10 (Python 3.10 (64-bit))</Description>
<InterpreterPath>Scripts\python.exe</InterpreterPath>
<WindowsInterpreterPath>Scripts\pythonw.exe</WindowsInterpreterPath>
<PathEnvironmentVariable>PYTHONPATH</PathEnvironmentVariable>
<Architecture>X64</Architecture>
</Interpreter>
<Interpreter Include="Hockey\"> <Interpreter Include="Hockey\">
<Id>Hockey</Id> <Id>Hockey</Id>
<Version>3.8</Version> <Version>3.8</Version>

View file

@ -123,7 +123,8 @@ class Game(object):
self.positionInPossession = SkaterPosition(random.sample([0, 1, 1, 3, 3, 4],1)[0]) #wingers are less likely to recieve the faceoff than defensemen self.positionInPossession = SkaterPosition(random.sample([0, 1, 1, 3, 3, 4],1)[0]) #wingers are less likely to recieve the faceoff than defensemen
self.playStopped = False self.playStopped = False
winningPlayer = self.skatersInPossession()[SkaterPosition.C.value] winningPlayer = self.skatersInPossession()[SkaterPosition.C.value]
eventString = f"{self.clockToMinutesSeconds()} - {self.teamInPossession.shortname} {str(winningPlayer)} wins faceoff." receivingPlayer = self.skatersInPossession()[self.positionInPossession.value]
eventString = f"{self.clockToMinutesSeconds()} - {self.teamInPossession.shortname} {str(winningPlayer)} wins faceoff to {str(receivingPlayer)}"
self.eventLog.append(eventString) self.eventLog.append(eventString)
self.eventLogVerbose.append(eventString) self.eventLogVerbose.append(eventString)
self.clock -= random.randint(2,5) self.clock -= random.randint(2,5)
@ -132,7 +133,7 @@ class Game(object):
def saveMadeStop(self, shootingPlayer, shotType): def saveMadeStop(self, shootingPlayer, shotType):
"""Stops play due to a save made by a goalie, and sets the faceoff dot to be used.""" """Stops play due to a save made by a goalie, and sets the faceoff dot to be used."""
self.playStopped = True self.playStopped = True
eventText = f"{self.clockToMinutesSeconds()} - {str(self.defendingGoalie)} saves shot from {str(shootingPlayer), stops play.}" eventText = f"{self.clockToMinutesSeconds()} - {str(self.defendingGoalie)} saves shot from {str(shootingPlayer)}, stops play."
self.eventLog.append(eventText) self.eventLog.append(eventText)
self.eventLogVerbose.append(eventText) self.eventLogVerbose.append(eventText)
options = [FaceoffDot.AwayZoneLeft, FaceoffDot.AwayZoneRight] if self.homeAttacking() else [FaceoffDot.HomeZoneLeft, FaceoffDot.HomeZoneRight] options = [FaceoffDot.AwayZoneLeft, FaceoffDot.AwayZoneRight] if self.homeAttacking() else [FaceoffDot.HomeZoneLeft, FaceoffDot.HomeZoneRight]

View file

@ -127,4 +127,4 @@ class TestGame(object):
self.Game.playStopped = True self.Game.playStopped = True
foResult = self.Game.event() #this doesnt return anything but it's nice to know what it's for I guess foResult = self.Game.event() #this doesnt return anything but it's nice to know what it's for I guess
lines = self.Game.eventLogOut() lines = self.Game.eventLogOut()
pass print(lines)

View file

@ -10,7 +10,7 @@ class Player(object):
def __init__(self, name:str, number:int=0): def __init__(self, name:str, number:int=0):
if name is None: if name is None:
self.attributes = [] self.attributes = []
elif len(name) > 30: elif len(name) > 20:
raise CreationError("Player name too long.") raise CreationError("Player name too long.")
elif number < 0 or number > 99: elif number < 0 or number > 99:
raise CreationError("Player number not valid.") raise CreationError("Player number not valid.")
@ -18,6 +18,8 @@ class Player(object):
self.name = name self.name = name
self.attributes = self.loadAttributes() self.attributes = self.loadAttributes()
self.number = number self.number = number
scoutLevel = 0 #how well scouted opposing team is; not changing
confidenceStage = 0 #how well the player can judge enemy skill; builds over game
def loadAttributes(self): def loadAttributes(self):
"""Generates attributes based on name, or loads from database if present.""" """Generates attributes based on name, or loads from database if present."""
@ -62,10 +64,16 @@ class Player(object):
def initials(self): def initials(self):
names = self.name.split() names = self.name.split()
outString = "" outString = ""
if len(names) >= 2:
for name in names: for name in names:
outString += f"{name[0]}." outString += f"{name[0]}."
else:
outString = f"{self.name[:3]}."
return outString return outString
def predictOpposingAction(self, opposingSkater):
raise NotImplementedError()
def chooseAtkAction(self): def chooseAtkAction(self):
raise NotImplementedError() raise NotImplementedError()
@ -81,6 +89,7 @@ class Goalie(Player):
"""A hockey player that *is* a goalie.""" """A hockey player that *is* a goalie."""
pass pass
class AtkAction(Enum): class AtkAction(Enum):
SkateB = 0 SkateB = 0
SkateF = 1 SkateF = 1