People vs mootwo in Championship 48.1.1 Hex, Havannah

22 replies. Last post: 2020-06-26

Reply to this topic Return to forum

People vs mootwo in Championship 48.1.1
  • Arek Kulczycki at 2020-04-29

    Hey players!

    Maybe we all can share our games vs mootwo and do analysis together so that we maybe get 1 win among all games?

    I think this will be fair to all players if we all agree to collaborate. Doesn't matter who of us takes a win, but we will have 9 chances instead of just 1 :)

    I was inspired by Twixt community who collaborated to win vs bot. Starting a new Hex game just for this would not work with current situation where people do not actively participate in the forum. However, given that the bot is already intruding and we will have to play vs it… Who's in? :)

  • kspttw at 2020-04-29

    It's a general good idea to spend some time on analysis, and playing against a good player (like a good bot) seems a good opportunity to do that.

    I'm willing to join common analysis, not necessarily (but possible) during the championship.

    Although next season I will play at 2nd division.

  • lazyplayer ★ at 2020-04-29

    I would like to join but we need a tool to share and store the analysis. We need a tool to store the TREES…

    In fact now that I think about it, the concept is simple. The website store a tree, with a win/lose/unknown attribute at each leaf. Every player can join the effort and expand one leaf of his choice. When one leaf is expanded, new leaves are found below it, and the player has to assign a win/losing/unknown attribute to each new leaves. The tool will automatically backpropagate.

    The tool also has to handle transpositions of course. And perhaps it should store some statistics regarding number of times each move has been followed before expansion.

  • David J Bush ★ at 2020-06-19

    Heh maybe someone (meaning not me) could examine Alan Hensel's code for his Twixt analysis site (accessible from any size 24 Twixt game,) which does store trees, as well as all text commentary, in interactive form, and make something similar for Hex.

  • Arek Kulczycki at 2020-06-20

    I have made a beta version tool, but have no opportunity to really test it.

    It's hosted on a free server on heroku, so feel free to check it out (the first load takes around 30 seconds, when the free server goes to sleep)

    I will develop it further when I get some feedback from else people. I have little motivation to examine it on my own alone.

    I think it's not quite intuitive, but it can store actual games as well as position results. Moreover one can put stones on the board freely for analysis when enter

  • Florian Jamain ★ at 2020-06-20

    We have all the stuff there:

    no ?

  • Arek Kulczycki at 2020-06-20

    No, the point is to store positions and have suggestions for moves that were previously played (win or loss or unsolved)

    Also my vision was to store positions during actual play with another person

  • Florian Jamain ★ at 2020-06-21

    I mean it could be a good basis and maybe it is possible to improve this one?

  • Arek Kulczycki at 2020-06-21

    It only has a clickable board so my project is rather way ahead already.

  • Tom Ace ★ at 2020-06-21

    I started writing a tool also.  I wasn't going to announce it until it was more complete but now that Arek Kulczycki has announced his tool I will show what I have so far.  A demonstration version is at

    It lets you play a tree of moves.  It works roughly like jhex and has backward/forward navigation.  Buttons let you mark leaf nodes in the tree as advantageous to white or black.  Positions that aren't leaf nodes (i.e. which have children in the tree) are displayed with advantage derived by minimax of their children.  Just try it out; I tried to make it intuitive to use.

    I am partway through writing code to save to a server (and the server-side code that goes with it) but that is not in this demo.

    I discovered today that it doesn't work in Internet Explorer.  I didn't know that IE doesn't support ES6 classes.  It works in Chrome and Firefox.

  • Arek Kulczycki at 2020-06-22

    @Tom, the problem that I have been struggling with is to recognise the same position when it is achieved in a different order. Have you been thinking about it yourself?

    I mean, it's important that when a position is marked as “white win” then it's  also “white win” regardless of the order. Maybe it's not that important for analysis of a single game when one cannot undo the moves, but I was too perfectionist and wanted more :)

  • Arek Kulczycki at 2020-06-22

    @Tom, btw good job on the tool, looks great :)

  • Tom Ace ★ at 2020-06-22

    @Arek, yes I have planned for recognizing a position that can arise in multiple ways.  Lazyplayer said that the tool should handle transpositions and it seemed worth doing (even though transpositions in Hex occur less frequently than in, say, chess).

    I represent positions with 2 bits per hex cell:  00=empty, 01=black, 10= white, 11=(unused).  16 cells of data pack into a 32-bit word.  (Javascript stores them as floating point but does support bitwise and shift operations as if they were 32 bit integers.)  The 169 cells on a 13x13 board fit into 11 words.

    That encoding allows a quick determination of whether a position is an immediate child of another (differs by exactly one additional move).  The function in my Javascript code named 'delta' determines if one position is a child of another, and if so it returns which move they differ by.

    When a client downloads an existing game tree from a server, it just gets a list of positions.  Client-side code calculates all the ways in which positions in the list are children of other positions in the list.   When someone uses the client to play additional moves, my plan is to upload just the new positions to the server.  There's no need to include child/parent linkage data (or even move names) as part of data uploaded or downloaded.  This keeps data transfer simple.

    I still have work to do on the user interface to support multiple parents for any given position.  Right now there's a back button (left-pointing arrow) that works fine when there is only one parent.  I need to add features to display multiple parents and allow user-selected navigation backward to any of them.

    Of course there are other ways to do all this.  This is just the approach I chose.

    Arek:  thanks for the kind words on my work so far!  Yours looks pretty far along in development–good work.

    Comments and suggestions from anyone are welcome.

  • Arek Kulczycki at 2020-06-22

    Wow, than I even more so have to say great job Tom!

    I have focused much more on allowing two players to play a game and store positions along the way, so I put most time in websocket real time communication.

    Technical aspects of child-parent issue I have left aside. I store positions alphabetically ordered, losing the order in which a game was actually played. Then I just recognise if one position collection is a subset of another.

  • David J Bush ★ at 2020-06-22

    Yes fantastic work Tom!

    Do you use a hash table to store positions in, to avoid transposition collisions? Or is it fast enough to go through a list of 11-word positions that have been encountered so far?

    BTW the page works for me with Chrome but not with Firefox. Details available.

  • Tom Ace ★ at 2020-06-22

    David:  thanks!  Yes, I use a hash table.

    I would like to fix whatever problem you encounter with it in Firefox.  Please let me know what you're seeing (with Javascript console window messages if any).  My email address is on my contact page at

  • David J Bush ★ at 2020-06-24

    Tom fixed my problem on Firefox! I hope it still works everywhere else :-)

  • Arek Kulczycki at 2020-06-26

    It's on, if anybody is up for cooperation.

    I would not like to be accused of chesting though, so if any of you is against cooperation then just leave a comment here please!

  • David J Bush ★ at 2020-06-26

    I'm not sure what you mean Arek, but Hex is a two player game. Cooperating against any human during the game, especially a rated game, is not ethical. Against a bot, well, I guess it's up to the bot's author. The Twixt analysis site prevents comments during a game. We found a workaround in our Twixtbot versus the world game.

  • David J Bush ★ at 2020-06-26

    Here's a feature request. I haven't mentioned this to Board Game Arena, but how about the ability to load completed BGA Hex games as well as Little Golem games? They have an on-site capability to replay finished games one move at a time, but no interactive analysis, no examination of alternate lines. The grid sizes there are currently 6, 11, 14, and 15. I could ask the BGA staff for information that would facilitate the process of allowing your site to access and download completed games. No data scraping should be necessary.

  • HappyHippo ★ at 2020-06-26

    Let me know if you do get that info, I'd be interested in downloading the completed games.

  • Arek Kulczycki at 2020-06-26

    I meant cheAting ofcourse not cheSting if that was a reason for misunderstanding.

    I don't see cooperation vs bot as any less ethical than the fact of bot playing in such tournament itself.

    The whole thread here is about cooperating vs the bot. The point is that we should cooperate in all games vs mootwo, not just for 1 player. In practice we will all lose anyway.

Return to forum

Reply to this topic