Vlad-Shcherbina / icfpc2018-tbd

1 stars 0 forks source link

Everyone should try to write a solver. #27

Open fj128 opened 6 years ago

fj128 commented 6 years ago

At some point Vlad asked me if I am not tired of writing support code instead of actually writing a solver.

Yes, I am, and that's why I'm increasingly demoralized when writing support code too, because like I write it and then nobody writes solvers and I'm like, what was all this for?

But more importantly, here's a problem, if you never tried to write a solver for the Lightning division, something really simple, not only you'd never know that we actually need an emulator (#25), you'd also not know that spawning a bunch of bots to do things in parallel is pretty hard. That getting those bots to fuse afterwards is even harder. That even composing a sequence of commands that moves a bot from point A to point B is pretty damn hard, it's not complex but very complicated (in a demoralizing way), to the point where I went and added the *axis functions to Diff in both C++ and Python because at some point you gotta bury the dead stewardess so to speak.

So I think that it would have been nice if I and Vlad tried to write a stupidest possible solver each right after agreeing on the interfaces but before implementing them and identified all those pain points and got some solver_utils.py going with those utility functions implemented and a place for more to be implemented.