type="text/css" />

game(s) against RoRoRo extreme TZAAR, DVONN, LYNGK

46 replies. Last post: 2010-07-31

Reply to this topic Return to forum

game(s) against RoRoRo extreme
  • XanderN at 2007-09-18

    my game: http://www.littlegolem.net/jsp/game/game.jsp?gid=768775&nmove=82

    It was quite hard work, but I managed to beat RoRoRo extreme, although at times my brain was probably getting as warm as RoRoRo's processor.

    Why did I win ?

    - I was a bit lucky to end up with my favorite type of starting position with all reds near the edge, which is excellent for an agressive player like me.

    - RoRoRo was not 'aware' of the dangers of this type of setting and wasted the first 3 moves near the center of the board, while I gained control of the separations.

    - Going for both separations at once, while not actually making either of then until the final end was probably what gave me the edge, since this makes it hard for a computer program to recognize what went wrong.

    Maybe if Jan can find a bit of time, he can let his program figure out where RoRoRo really went wrong.

    Any comments from anyone ?

  • FatPhil at 2007-09-18

    I think it was partly lost due to placement. I made some last-minute changes to the placement algorithm, which possibly hindered the bot a bit. I think I need to reduce the value of edge pieces. I also need to reduce the value of dvonns at edges. Maybe a special case for when the first dvonn is tucked into the corner, the second dvonn shouldn't be placed right in the opposite side. (Or simply have a bottle-bottom value value function.)

    I also think that one of the changes that I've been thinking of, which would de-value isolated blocks of my own pieces, and thus help avoid useless islands, would improve his play. That's a non-trivial change.

    Well played, Xander. Thanks for volunteering. It's clear that RoRoRo needs a better algorithm rather than more CPU power.

  • XanderN at 2007-09-18

    I dont think RoRoRo's stones were badly placed at all. Only the red stones were not placed well for a program that does not have the blink of an eye overview of the board. The best strategy for RoRoRo to place reds is:

    - not at the edge

    - maximizing the spread of stones

    For RoRoRo playing white, I would place the stone at B2,C2,D2 or one of the 3 mirred versions of these positions. For 2nd (playing black) or 3rd red (playing white), I would just find the position on the board which is a non-edge position with a maximum distance to the one or two reds already on the board.

    This will greatly reduce the chance of a game being won in this manner.

  • Jan's program (W:297,L:86,D:6) at 2007-09-19

    My program has signed up for the current montly cup. Tell me again, how much (cpu)time may I use per move?

  • ypercube at 2007-09-19

    I missed it :)

  • XanderN at 2007-09-19

    Then at least I give you the chance to play me ;-)

  • Jan's program (W:297,L:86,D:6) at 2007-09-19

    I will wait at the end of the setup fase until we agreed upon a time-per-move ,and untill RoRoRo has been configured accordingly.

  • FatPhil at 2007-09-19

    @yper, and others. I'm considering offering the feature that in non-rating games, the opponent can select what level of AI s/he plays against. In ratings games, I'm considering similar where the opponent can only select an _above_ normal level.

    (RoRoRo will already play non-rated GWG games with a limited dictionary, for example, and I have no problem with having it play at several different levels, at the opponent's behest. It's not there for its own glory, it's there for the enjoyment of others.)

  • Jan's program (W:297,L:86,D:6) at 2007-09-20

    That would be a great feature! Perhaps I will look into making an automated interface too. This feels like the same fun I had with my othello program playing automatically online in the late 90's:)

  • Jan's program (W:297,L:86,D:6) at 2007-09-20

    Let me know *when* I can continue the game we've already setup. The setup seems to be reasonable for both parties. Me in person would rather be RoRoRo in that game:)

  • FatPhil at 2008-01-17

    Jan's Program just volunteered to play RoRoRo at skill level 11! Here are the times taken by each of the moves (on a P3/700):

    $ grep -h -e 'dvonn played game #827402/' rororolog /dev/nullPLAY OK - dvonn played game #827402/2 move hb, Placing Dvonn randomly (t=0.418475866317749)PLAY OK - dvonn played game #827402/4 move ha, Placing piece heuristically (t=0.42631983757019)[... blah blah blah, it never says anything interesting when placing ...]PLAY OK - dvonn played game #827402/48 move ie, Placing piece heuristically (t=0.437613964080811)PLAY OK - dvonn played game #827402/50 move cabb, Match value 0.326, time=433.477236032486 message '[auto] (dvonn) Using skill level 11.' (t=433.965515851974)PLAY OK - dvonn played game #827402/52 move faga, Match value 0.192, time=456.429337978363 (t=457.171679019928)PLAY OK - dvonn played game #827402/54 move fbec, Match value 0.326, time=489.962063074112 message 'Match value 0.326, time=489.962063074112' (t=490.450544834137)PLAY OK - dvonn played game #827402/56 move fcfd, Match value 0.262, time=445.008613109589 message 'Match value 0.262, time=445.008613109589' (t=445.816741943359)PLAY OK - dvonn played game #827402/58 move fdhb, Match value 0.383, time=331.510068893433 message 'Match value 0.383, time=331.510068893433' (t=332.287309885025)PLAY OK - dvonn played game #827402/60 move hbeb, Match value 0.537, time=248.721141815186 message 'Match value 0.537, time=248.721141815186' (t=249.597072124481)PLAY OK - dvonn played game #827402/62 move becd, Match value 0.537, time=84.87082695961 message 'Match value 0.537, time=84.87082695961' (t=85.534991979599)PLAY OK - dvonn played game #827402/64 move jaib, Match value 0.479, time=120.723354101181 message 'Match value 0.479, time=120.723354101181' (t=121.455982923508)PLAY OK - dvonn played game #827402/66 move eadb, Match value 0.457, time=112.951298952103 message 'Match value 0.457, time=112.951298952103' (t=113.627365112305)PLAY OK - dvonn played game #827402/68 move kbkc, Match value 0.295, time=116.330921888351 message 'Match value 0.295, time=116.330921888351' (t=117.014544010162)PLAY OK - dvonn played game #827402/70 move hege, Match value 0.262, time=434.623522043228 message 'Match value 0.262, time=434.623522043228' (t=435.374298095703)PLAY OK - dvonn played game #827402/72 move deed, Match value 0.326, time=346.219800949097 message 'Match value 0.326, time=346.219800949097' (t=347.537770986557)PLAY OK - dvonn played game #827402/74 move dcdb, Match value 0.949, time=17.5610008239746 message 'Match value 0.949, time=17.5610008239746' (t=18.0057489871979)PLAY OK - dvonn played game #827402/76 move gagc, Match value 0.949, time=0.095933198928833 message 'Match value 0.949, time=0.095933198928833' (t=0.544394016265869)PLAY OK - dvonn played game #827402/78 move dbgb, Match value 0.949, time=0.0128140449523926 message 'Match value 0.949, time=0.0128140449523926' (t=0.462589025497437)

    The nice thing about those times is that they don't demonstrate the same level of over-running that skill level 7 (the default) displays. In theory the ratio between the average times should be 4^(11-7)=256, and ~400s is about right. Level 7 however will occasionally just go mad and take 25s on a move, which is why it appears stronger in the ratings than it should be. However, level 11 does not display this ever-running (thank goodness - it would take hours!).

    Jan - can you give a figure for approximate CPU usage for either each move or the total game?

    One interesting thing about the game is that there were times when both bots spotted something that the other bot didn't, and swang the game massively in their favour.

  • XanderN at 2008-01-17

    I think it would be really nice to see at which time each program would have picked a different move than the other program. Especially move 75 I don't understand at all. Maybe Jan's program at that time had calculated through to the end and decided any move would have been losing, but I for certain would have picked D5D4 there… Maybe Jan would like to comment on this move ?

  • FatPhil at 2008-01-17

    One move earlier:

    #827402 dvonn.mc.2008.jan.1.10 against Jan's program (W:254,L:78,D:5) (2116) [0]#827402/74 DvonnBot is in state stage=1 whoami=1 grid=0 w1 0 0 b2 w2 0 0 0 0 @1@ b2 b7@ 0 @1@ 0 w3 0 0 0 w1 0 b1 b2 0 w2 \w3 0 w1 b2 w2 0 b2 b1 b2 0 0 w2 w1 0 0 0 w3 0 0 0 w4 0 0DVONN game 827402 using sitches '-l=11' rather than '-7'External Bot in 17.5610008239746s ran command /home/phil/projects/games/Dvonn/dvonna.p3 -l=11 b play 0 w1 0 0 b2 w2 0 0 0\ 0 @1@ b2 b7@ 0 @1@ 0 w3 0 0 0 w1 0 b1 b2 0 w2 w3 0 w1 b2 w2 0 b2 b1 b2 0 0 w2 w1 0 0 0 w3 0 0 0 w4 0 0     0  W1   0   0  B2  W2   0   0   0   0  @1@ B2  B7@  0  @1@  0  W3   0   0 0  W1   0  B1  B2   0  W2  W3   0  W1  B2  W2   0  B2  B1  B2   0   0  W2  W1   0     0   0  W3   0   0   0  W4   0   0Want 41943040 evaluations over 9 plies. (went to 1 assuming fanout of 6.2).[0] Simply, doing all 23 moves at depth 1 (to 0:9) with 6184163.9 fanoutSelected=d3d4 Score=200NEXT: w play  0  W1   0   0  B2  W2   0   0   0   0  @1@ B3  B7@  0  @1@  0  W3   0   0   0  W1   0   0  B2   0  W2  W3   0  W1  B2  W2   0  B2  B1  B2   0   0  W2  W1   0   0   0  W3   0   0   0  W4   0   0[leaf>=9] 7101059

    Score=200 means “I think I can see to the end, and I win by 2”

    As Jan's Program lost by 2, it probably played perfectly.

    The old version of RoRoRo (skill level 11) would have picked:

    [0:0] move d5c4 score from 0 to -2 (2223673 evals)[0:1] move i2h2 score from 0 to -4 (1639817 evals)[0:2] move c1c4 score from -1 to -2 (1985347 evals)[0:3] move g1g5 score from 1 to -2 (1782467 evals)[0:4] move b3c4 score from -2 to -12 (1567483 evals)[0:5] move j3k3 score from -4 to -2 (2324665 evals)[0:6] move j3i2 score from -4 to -2 (2333489 evals)Selected=d5c4 Score=-2

    The current version of RoRoRo (skill level 11) would have picked:

    Selected=j3i2 Score=-200
  • Jan's program (W:297,L:86,D:6) at 2008-01-26

    Phil, perhaphs you can include the messages i gave durng the game with evaluations?

  • Jan's program (W:297,L:86,D:6) at 2008-01-26

    My program used no time for the setup since it is hard wired. It used +/- 1 minute on an AMD6400+ (single threaded) per move i the midgame. When i felt it was losig i gave it the order to solve at move 73. which was solved exact and already losing and RoRoRo didn't make any mistake anymore.

  • FatPhil at 2008-01-27

    Alas I purged the logs a couple of days ago, so don't have easy access to your program's messages. The ~0.4s per move when placing is misleading, as that includes the ~0.4s it takes to fetch and parse the page.

  • RoRoRo the Bot at 2008-04-07

    Hoorah for Paavo, who has volunteered to play at a higher skill level

    in a tournament game:

    #865292 dvonn.mc.2007.oct.3.1 against Paavo Pirinen (2083) [0]#865292/3 DvonnBot is in state stage=0 whoami=0 grid=0 0 0 0 0 0 0 0 0 0 0 @1@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 @1@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0My borders=0, his=0, open=24 - weighting them to 0.672161440284194no need for master to respond to skill level 9, already have response=[auto] (dvonn) Using skill level 9.PLAY OK - dvonn played game #865292/3 move kc, Placing Dvonn randomlymessage '[auto] (dvonn) Using skill level 9.' (t=0.417)

    Now your message at move 5 makes more sense, Paavo - Phil doesn't get to

    see any messages for which I have automatic responses, so didn't know

    what you'd just asked for!

    Does Xander also fancy a tougher game? [`_']

  • RoRoRo the Bot at 2008-04-10

    Post-mortem for dvonn game 865292, RoRoRo the Bot vs. Paavo Pirinen 2:0

    [49] -l=9 move=e5f5 val=18 time=16.85465192794[51] -l=9 move=k5k4 val=17 time=27.392129898071[53] -l=9 move=d1e1 val=18 time=30.922234058380[55] -l=9 move=k4i4 val=17 time=33.01427006721[57] -l=9 move=g5f4 val=11 time=25.515416145324[59] -l=9 move=c1d2 val=5 time=36.631074905395[61] -l=9 move=f1f2 val=4 time=17.633368968963[63] -l=9 move=j2i2 val=4 time=6.6755180358886[65] -l=9 move=f5f3 val=10 time=2.7588329315185[67] -l=9 move=b4b3 val=16 time=9.9792351722717[69] -l=9 move=c5c4 val=16 time=3.3483979701995[71] -l=9 move=b3d3 val=12 time=15.208409070968[73] -l=9 move=e2e3 val=400 time=2.4662990570068[75] -l=9 move=i2i4 val=1600 time=0.88942217826843[77] -l=9 move=f4d2 val=1800 time=0.07586193084716[79] -l=9 move=e1e3 val=1800 time=0.013373136520385[81] -l=9 move=e4d4 val=1800 time=0.0108339786529541
  • somar96 at 2010-04-09

    I guess RoRo needs some training. I don't know the rules of the game and I bet him! :D


  • Tasmanian Devil at 2010-04-09

    Funny game! RoRo was only interested in the DVONN pieces and somar took the entire centre!

  • FatPhil at 2010-04-10

    RoRoRo doesn't waste his time with games against somar96, and played that game at the absolute lowest skill level possible. In fact he now resigns on the first move possible, so he doesn't waste any time at all.

  • somar96 at 2010-04-11

    he resigns in all games or just against me? and why?

  • Gregorlo at 2010-04-11

    just guess ;)

  • somar96 at 2010-04-11

    I guess against me. But I think it's very unhonourable - he quits just because I'm underrated and he doesn't want to lose points. Unfair.

  • Gregorlo at 2010-04-11

    you guessed wrong, but you can try again :)

  • Dvd Avins at 2010-04-11

    You mind letting the rest of us in on the secret. I'm in the middle of a dots game against somar96. Are you saying s/he's a cheater?

  • ypercube at 2010-04-11

    No, I don't think so. Try again :)

  • Dvd Avins at 2010-04-11

    Sow what's the deal with June25 and somar96 signing up for a wide variety of games and not actually playing them?

  • somar96 at 2010-04-12

    I've finsihed with that, I'm palying normally now ;)

  • FatPhil at 2010-04-12

    He quit because you dick around. He considered your dicking around dishonourable.

  • Dvd Avins at 2010-04-12

    June25 is the same human, I suppose?

  • somar96 at 2010-04-13

    No. I have only 1 account. Can I have a link to him please? ;)

  • somar96 at 2010-04-13

    Oh, I found him now. I have a dots game against him:



    And FatPhil, admit that you don't want to lose points ;)

  • FatPhil at 2010-04-13

    I don't want to lose points which is why I play to the best of my ability given the limited time I have, and with the intention of improving my abilities.

    I consider that a noble and fitting trait for a site like this.

  • somar96 at 2010-04-15

    you don't improve your abilities by quitting games.

  • richyfourtytwo at 2010-04-15

    Listen to the expert, FatPhil!

  • somar96 at 2010-04-15


  • FatPhil at 2010-04-16

    Somebody seems to have overlooked the “given the limited time I have” clause.

    The more time saved avoiding time-wasters, the more time I can spend on useful games.

  • somar96 at 2010-04-16

    I'm not a time-waster, and you think so only because you lose your points…

  • FatPhil at 2010-04-16

    Your game record says otherwise. All I go on is the cold hard evidence.

  • somar96 at 2010-04-17

    what does my game record say? that I made a mistake ;)

  • FatPhil at 2010-07-29

    Some stronger players have indicated that at its default level RoRoRo is too easy, and support the idea of him automatically increasing his level of play when playing them. I've wanted to do this for a long time but didn't know quite how to implement it.

    Do strong players like the idea of a personal handicap - if they win 5 games in a a row, their handicap increases by 1, if they lose 5 in a row, their handicap decreases by 1? (Credit where credit is due - this was suggested by someone else). RoRoRo could of course also host a webpage showing which players had reached each level.

    A simpler idea (mine, I'm lazy), is just for him to detect when he is outclassed, and work out how much harder he should play. (so if he's outclassed by 50-100 ratings points he'll increase the level by 1; 100-150, by 2; 150-200, by 3, etc. This of course has the side-effect of inducing negative feedback as his view of others is a function of his view of himself.

    Either way, I'm going to rip out the level-selection code (otherwise known as a global variable) into a separate module, so that none of the game engines need to know how the level they should play at was decided, so I can change it trivially.

    Note - while both methods do suck ratings points off the top players, and feed them to the middling players who would win a disproportionate number of games against an 'overrated' RoRoRo, that also means that the top players would then take more points off the now-overrated middling players.

    My preference would be the former (players having handicap levels), even though it's more work.

  • XanderN at 2010-07-29

    You could also 'clone' RoRoRo into a second version of himself that plays at a different level. (so having RoRoRo play and his dumb (or smart) twin brother). In any case, having RoRoRo play in tournament at a level which is not constant for everyone in the tournament group, does not seem fair to me. Especially in the Championship, he should play at the same level to everyone. I am always fighting hard to stay in the top level, and one more win or loss will make the difference between staying there or being demoted. It could also affect who is winning (see the current championship, the top players all have lost at least one match).

  • FatPhil at 2010-07-29

    The other alternative is to simply increase his default playing level so that the 2000+'s get a good match. However, that buggers the 1800-1900's like me who like to think that there's still a slim chance of beating him.

  • XanderN at 2010-07-30

    Would it be possible to adapt the rating to where RoRoRo plays. So in the Championship RoRoRo should just play at its best. 1st Round monthly cup at a lower level, and second round monthly cup something in between.

  • FatPhil at 2010-07-31

    That's certainly another option. It's probably the easiest to implement.

Return to forum

Reply to this topic