Are we allowed to modify the hlt code


#1

Since we are uploading a .zip file that includes the hlt folder, if we modify it to better suit our needs, would our bot use our included hlt folder? (eg. I want to add a property to a ship, if I were to add it to the hlt folder, would me bot also be able to use that property when submitted?)


#2

I would assume you’re fine, and I do what you describe extensively in my code, and I did it last season too without ever getting DQ’d for it.


#3

Yes, you’re free to modify it however you want. Heck, you can throw away the hlt folder and write an implementation suitable for your own needs.


#4

It is indeed useful to do so. Just be aware of how state is regenerated on each frame.


#5

If you modify the hlt files is there a way to test the bot before upload. To my knowledge the local and online environments will only allow changing the myBot file


#6

It is fine to change the other files in your client distribution. What matters are the standard IO streams of your program that must conform to contract.

The file structure also is restrained and is language dependent. E.g. all source files must be in sub-folders of MyBot.cpp in C++ client.


#7

For Python at least, I uploaded a version which contained a module on the same folder level as MyBot.py and imported it, and the bot ran OK (well, logic was well off :p), so it seems like Python may be a little more relaxed.


#8

If you downloaded the starter kits, a halite game engine executable should have been included in the zip file, with “run_game.sh” (bash) and “run_game.bat” (windows) as examples for how you can run games locally.

You can execute the halite executable with a -h flag on the command line to see all the options for running it, or just use the run_game script. You can change the paths in that script to point to different bots, if you’d like to test your bot against previous versions or other example bots.