our rep to solve icfpc2015 hex game
JavaScript Objective-C Scala HTML Shell Python Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
helper/ICFPHelper
problems
solution
submission
submission_sources
task
.gitignore
POWER.md
PROCESS.md
README.md

README.md

Read our dairy on medium

https://medium.com/@stanfy/cthulhu-fhtagn-d07e076368bf

Pics and our thoughts during contest. At this moment Stanfy+ team is on 122 place :( Could be better :)

Dependencies

Program needs node.js server.

You can download it from https://nodejs.org/

or we have added script inside Makefile that should download it automatically.

play_icfp2015 is command line js file, that post result to console.

Output

Program writes debug into to std:err and result to std:out. https://twitter.com/ICFPContest2015/status/630667692370886656

Code base

If you're interested, you can find sources in such languages:

  • obj-c (command line tool and iPhone app). Used to post results on lightning round
  • scala. We started from scala, but then moved to obj-c :)
  • python. First visualizator was written on python
  • node.js/javascript. Last tool and we used most. Visualizer, brain, estimator, a*, cli - everything is written on javascript. To play with visualizer, please, start "npm start" and open "localhost:3000" in browser.

pic

Solving problems

  1. Program makes simple loop among all seeds. For each seed algo is the same.
  2. "Brain" is our engine. It controlls all steps and decides what to do (play hex-tris or post cats to twitter :))
  3. Everything starts when new unit appears. "Estimator" finds top 10 best positions for it to move next. Estimator uses bunch of coefficients to select positions. It tries to "fill holes" and to create full-lines.
  4. Then A* algo finds way to best positions.
  5. Unit moves to position that is reachable.
  6. It continues until no reachable positions found for last unit.
  7. Command interpretator transforms commands into letters, trying to use power phrases.
  8. And output json is generated :)

Videos

Algo solving map 19 https://www.youtube.com/watch?v=CKe1RYMj_Rw&feature=youtu.be

"Optimized" aka drunk A* algo solving problem 24 https://www.youtube.com/watch?v=-2EmujTho6Q

Commits visualization https://www.youtube.com/watch?v=KrCUs4naT3M&feature=youtu.be

It was awesome and fun

Stanfy+ team <3 you and we're waiting for next year. Hope to perform better that this time.

TEAM

Kilew, Vixentael, Fix, Alex Voronov, Lampapos, Silver

Moral support:

Bexcite, Vandalko