Releases: software-challenge/player_python
v1.0.2
What's Changed
-
update(script): shell script to work on the system
-
add(package builder): feature which will build and zip a package for the contest
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Many thanks to @YoEnte and @RubyKanima for their contribution.
What's Changed
-
Classes and attributes:
- Added
Coordinate
super class - Added
TeamEnum
enumeration class - Added
team_enum
attribute toMove
class - Added
Penguin
class - Added
penguin
andfish
attributes to theField
class - Removed color and added
name
,fish
,penguins
,moves
attributes in theTeam
class - Added
first_team
,second_team
attribute toGameState
class - Removed the
Fish
class - Adapted the methods of
GameState
to the new classes - Moved
opponent
fromTeam
toGameState
- Added
-
Renamed and remade existing elements:
- Remade
pretty_print
for a more concise look - Adapted methods of
Board
- Remade
get_teams_penguins
which returnsList[Penguin]
now - Reworked the
NetworkSocket
class - Reworked the
XmlProtocolInterface
class - Reworked
GameClient
- Remade
-
Fixed bugs and issues:
- Fixed an issue with move that it no longer changes the original board
- Fixed a problem with
_get_possible_moves
- Fixed a problem with
current_team_from_turn
- Fixed a problem with
perform_move
- Fixed several issues that caused crashes in socha
- Fixed a problem where it wouldn't connect to the server in auto-reconnect
- Fixed several issues that prevented the correct simulation and storing of game states in penguin
- Fixed an issue where the protocol tag doesn't get sent if auto reconnect in
XmlProtocolInterface
- Fixed an issue where the client doesn't reconnect with auto-reconnect in
NetworkSocket
-
Other changes:
- Added auto-reconnect feature to starter
- Changed license to MIT
- Extended history list in
GameClient
- Added some logging in
GameClient
- Added a doc that lists all changes from previous version, that can be found here.
Full Changelog: v1.0.0...v1.0.1
v1.0.0
v0.9.9
What's Changed
- implement the survive feature
It is now possible to let the client run when the game is over and the server closes its connection. This is very practical if the client is to play several games in succession. The test server is recommended for this, as it works without a UI and you do not have to start the game manually each time.
If this feature wants to be used, then this method must be implemented from IClientHandler
and reconnect to the server and join a game.
def while_disconnected(self, player_client):
player_client.connect_to_server()
player_client.join_game()
It should also be noted that the starter requires the argument survive=True
so that the client is not terminated when the servers closes the connection.
Starter(logic=Logic(), survive=True)
Full Changelog: v0.9.8...v0.9.9
v0.9.8
Please consider using Python 3.11 as this version has improved its performance and error messages.
What's Changed
- remove the
Coordinate
-Class with all its corresponding methods - fix an import error in
player_client
Full Changelog: v0.9.7...v0.9.8
v0.9.7
What's Changed
- Solve a problem that prevented the method
on_game_over
not getting executed. - Splitt the
Coordinate
-Class intoCartesianCoordinate
andHexCoordinate
. - Expansion of the logging function. There is now a verbose option.
Full Changelog: v0.9.6...v0.9.7
v0.9.6
Please make sure to check that you have the current version with
pip freeze
What's Changed
- Remove the method
get_most_fish_moves
as this is an extended logic which is not permitted as students should develop methods like this themselves. - Resolve a bug that prevented the client from moving if the client was the starting player and the opponent did not repond fast enough.
Full Changelog: v0.9.5...v0.9.6
v0.9.5
v0.9.4
What's Changed
- The README contains now a description on how to use venvs
- The repo now contains a start script for the contest system
- The start arguments have been reworked. Please type
python <Your Logic>.py --help
to get any help. - The client now stores all historic game states.