Criss-Cross bugs and competition experience


#1

Hi all. When Criss-Cross was announced I was excited to see the start of another competition and was very eager to start devising and implementing my approach. However, when I came to translate my approach to code in the early days of the competition I hit upon some very frustrating transpiler bugs. I posted an issue to Github, but with my motivation drained I decided to put my entry on hold and return later in the hope that some of these issues would be fixed during the competition.

I have made a few attempts to return to Criss-Cross over the past few weeks, but I have spent more time fighting with the transpiler than actually devising or implementing my strategy. It is particularly frustrating since I do not remember having such difficulty when playing in the previous competition for Greed, which was an overall pleasant experience.

For this reason I have decided to abandon my entry into Criss-Cross. I will be interested to read about the strategies of the winning players, but unfortunately I won’t be one of them (which the current top players might be pleased to hear ;)). If the CodeCombat team is able to address the problems with the transpiler very soon I would consider a comeback, but with the majority of the competition time now over, it may be too late. Hopefully these issues can be fixed before a future tournament.

In any case, good luck to all players, and may the best coder win.

For reference, the issues I filed on Github:



#2

Sorry about these bugs, WizardDude. Matt is working on this stuff right now, but we aren’t sure whether we will be able to get it fully working in time. It’s always two steps forward, one step back with the API protection, and also with the non-JS parsing and transpiling. Very frustratingly difficult.

I wonder if the reason that you saw a lot more issues with this one was just that there is a lot more use of API-provided data structures here than in Greed, where most data structures were created by the player.


#3

Hi Nick, sorry for leaving this for so long!

As far as API provided data structures went, I was largely keeping my interaction with them to a minimum, so that wasn’t really the issue for me.

Originally I had thought these bugs were a regression in the transpiler but, looking over my Greed code, it seems very possible that they were always there and I simply didn’t encounter them.

I guess the reason they were so much more obvious during Criss-Cross was because I wanted to implement more complex algorithms that contained a lot of internal state. In my Greed solution there was not an awful lot of internal state, with most of the required information coming directly from the playing field.

Of course, I could have implemented my solution in a purely functional style, not modifying already created objects, but at the time I think I felt quite defeated by the transpiler and didn’t know what other issues I might encounter.

I can only imagine the pain you guys have with trying to get API protection right… the idea of a javascript transpiler in general is pretty crazy to me and to be honest I’m impressed that it works as well as it does! :slight_smile: