From: David Balmain Date: 2005-12-13T16:11:42+09:00 Subject: Re: [QUIZ][SOLUTION] Kalah (#58) ------=_Part_24674_29071048.1134457895281 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 12/13/05, Adam Shelly wrote: > Cool. > I'm suprised RemoveRight did better than DeepScore. > I was looking more at HistoryPlayer, (which should do better than > Pessimistic, since it uses the same choice for any unknown situations) > and I realized that when scoring a move, it is giving too much weight > to the subsequent turns. So it can choose the absolute best move on > turn 2, for instance, then make a bad move 3 turns later, and end up > ranking the turn 2 choice as the worst possibility. So for now, the > history information it keeps is mostly useless, except for a speedup. > My history algorithm needs some tuning (if it can be salvaged at all > :) > > I'd be curious to see what happens if you add the other submitted > players to the tournament. Can you post the tourney framework? It's just a simple hack. I've attached the code. I changed your HistoryPlayer to use classname as the default name in the initializer so you'll need to make that change too to get it to work. Enjoy, Dave > -Adam > > > > On 12/12/05, David Balmain wrote: > > Hi Adam, > > Just ran a tournament with your players. In case you or anyone else is > > interested; > > > > APessimisticKalahPlayer scored 527 points in 2265.782466 seconds > > AHistoryKalahPlayer scored 478 points in 98.2062879999999 seconds > > RemoveRightKalahPlayer scored 469 points in 0.004744 seconds > > DeepScoreKalahPlayer scored 460 points in 0.055886 seconds > > ScoreKalahPlayer scored 450 points in 0.020305 seconds > > RemoveRandomLowKalahPlayer scored 312 points in 0.012781 seconds > > RemoveRandomHighKalahPlayer scored 309 points in 0.013103 seconds > > RemoveHighKalahPlayer scored 264 points in 0.005501 seconds > > RemoveLowKalahPlayer scored 187 points in 0.007318 seconds > > > > Cheers, > > Dave > > > > On 12/13/05, Adam Shelly wrote: > > > Of course I introduced an error while cleaning up my code: > > > That will teach me to skip unit tests... > > > > > > in AdamsPlayers.rb, line 111 > > > i =3D best_move(b) if taketurn > > > should be > > > m =3D best_move(b) if taketurn > > > > > > -Adam. > > > > > > > > > On 12/12/05, Adam Shelly wrote: > > > > Here are my Kalah Players. > > > > > > > > > > > > > > > ------=_Part_24674_29071048.1134457895281 Content-Type: application/x-ruby; name="KalahMatch.rb" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="KalahMatch.rb" Y2xhc3MgUGxheWVyCiAgYXR0cl9hY2Nlc3NvciA6bmFtZQogIGF0dHJfYWNjZXNzb3IgOnRpbWUK ICBhdHRyX2FjY2Vzc29yIDpzY29yZQogIGF0dHJfd3JpdGVyIDpnYW1lLCA6c2lkZQoKICBkZWYg aW5pdGlhbGl6ZSggbmFtZSA9IHNlbGYuY2xhc3MudG9fcyApCiAgICBAbmFtZSA9IG5hbWUKICAg IEB0aW1lID0gMAogICAgQHNjb3JlID0gMAogIGVuZAplbmQKCnJlcXVpcmUgJ0FkYW1zUGxheWVy cycKcmVxdWlyZSAnQUhpc3RvcnlQbGF5ZXInCgoKY2xhc3MgS2FsYWhNYXRjaAogIGRlZiBzdGFy dCggcDEsIHAyICkKICAgIHB1dHMgJycKICAgIHB1dHMgJz09PT09PT09PT0gR0FNRSAxID09PT09 PT09PT0nCiAgICBwMV9zY29yZV8xLCBwMl9zY29yZV8xID0gS2FsYWhHYW1lLm5ldy5wbGF5X2dh bWUoIHAxLCBwMiApCiAgICAgICAgCiAgICBpZiBwMV9zY29yZV8xID4gcDJfc2NvcmVfMQogICAg ICBwdXRzIHAxLm5hbWUrJyB3b24gZ2FtZSAjMTogJytwMV9zY29yZV8xLnRvX3MrJy0nK3AyX3Nj b3JlXzEudG9fcwogICAgZWxzaWYgcDJfc2NvcmVfMSA+IHAxX3Njb3JlXzEKICAgICAgcHV0cyBw Mi5uYW1lKycgd29uIGdhbWUgIzE6ICcrcDJfc2NvcmVfMS50b19zKyctJytwMV9zY29yZV8xLnRv X3MKICAgIGVsc2UKICAgICAgcHV0cyAnZ2FtZSAjMSB3YXMgYSB0aWU6ICcrcDFfc2NvcmVfMS50 b19zKyctJytwMl9zY29yZV8xLnRvX3MKICAgIGVuZAogICAgCiAgICBwdXRzICcnCiAgICBwdXRz ICc9PT09PT09PT09IEdBTUUgMiA9PT09PT09PT09JyAgIAogICAgcDJfc2NvcmVfMiwgcDFfc2Nv cmVfMiA9IEthbGFoR2FtZS5uZXcucGxheV9nYW1lKCBwMiwgcDEgKQogICAgCiAgICBpZiBwMV9z Y29yZV8yID4gcDJfc2NvcmVfMgogICAgICBwdXRzIHAxLm5hbWUrJyB3b24gZ2FtZSAjMjogJytw MV9zY29yZV8yLnRvX3MrJy0nK3AyX3Njb3JlXzIudG9fcwogICAgZWxzaWYgcDJfc2NvcmVfMiA+ IHAxX3Njb3JlXzIKICAgICAgcHV0cyBwMi5uYW1lKycgd29uIGdhbWUgIzI6ICcrcDJfc2NvcmVf Mi50b19zKyctJytwMV9zY29yZV8yLnRvX3MKICAgIGVsc2UKICAgICAgcHV0cyAnZ2FtZSAjMiB3 YXMgYSB0aWU6ICcrcDFfc2NvcmVfMi50b19zKyctJytwMl9zY29yZV8yLnRvX3MKICAgIGVuZAog ICAgCiAgICBwdXRzICcnCiAgICBwdXRzICc9PT09PT09PT09IEZJTkFMID09PT09PT09PT0nCiAg ICAKICAgIHAxX2ZpbmFsID0gcDFfc2NvcmVfMStwMV9zY29yZV8yCiAgICBwMl9maW5hbCA9IHAy X3Njb3JlXzErcDJfc2NvcmVfMgogICAgcDEuc2NvcmUgKz0gcDFfZmluYWwKICAgIHAyLnNjb3Jl ICs9IHAyX2ZpbmFsCiAgICAKICAgIGlmIHAxX2ZpbmFsID4gcDJfZmluYWwKICAgICAgcHV0cyBw MS5uYW1lKycgd29uIHRoZSBtYXRjaDogJytwMV9maW5hbC50b19zKyctJytwMl9maW5hbC50b19z CiAgICBlbHNpZiBwMl9maW5hbCA+IHAxX2ZpbmFsCiAgICAgIHB1dHMgcDIubmFtZSsnIHdvbiB0 aGUgbWF0Y2g6ICcrcDJfZmluYWwudG9fcysnLScrcDFfZmluYWwudG9fcwogICAgZWxzZQogICAg ICBwdXRzICd0aGUgbWF0Y2ggd2FzIHRpZWQgb3ZlcmFsbCA6ICcrcDFfZmluYWwudG9fcysnLScr cDJfZmluYWwudG9fcwogICAgZW5kCiAgICBwdXRzICIje3AxLm5hbWV9IHRvb2sgI3twMS50aW1l fSwgI3twMi5uYW1lfSB0b29rICN7cDIudGltZX0iCiAgZW5kIAplbmQKCmNsYXNzIEthbGFoR2Ft ZQogIE5PQk9EWSA9IDAKICBUT1AgPSAxCiAgQk9UVE9NID0gMgogIAogIGF0dHJfcmVhZGVyIDpi b2FyZCwgOnBsYXllcl90b19tb3ZlCgogIGRlZiBpbml0aWFsaXplX2NvcHkob3RoZXJfZ2FtZSkK ICAgIHN1cGVyCiAgICBAYm9hcmQgPSBvdGhlcl9nYW1lLmJvYXJkLmR1cAogIGVuZAoKICBkZWYg c3RvbmVzX2F0PyggaSApCiAgICBAYm9hcmRbaV0KICBlbmQKICAKICBkZWYgbGVnYWxfbW92ZT8o IG1vdmUgKQogICAgKCAoIEBwbGF5ZXJfdG9fbW92ZT09VE9QIGFuZCBtb3ZlID49IDcgYW5kIG1v dmUgPD0gMTIgKSB8fCAKICAgICAgKCBAcGxheWVyX3RvX21vdmU9PUJPVFRPTSBhbmQgbW92ZSA+ PSAwIGFuZCBtb3ZlIDw9IDUgKSApIGFuZCBAYm9hcmRbbW92ZV0gIT0gMAogIGVuZAogIAogIGRl ZiBnYW1lX292ZXI/CiAgICB0b3AgPSBib3R0b20gPSB0cnVlCiAgICAoNy4uMTIpLmVhY2ggeyB8 aXwgdG9wID0gZmFsc2UgaWYgQGJvYXJkW2ldID4gMCB9CiAgICAoMC4uNSkuZWFjaCB7IHxpfCBi b3R0b20gPSBmYWxzZSBpZiBAYm9hcmRbaV0gPiAwIH0KICAgIHRvcCBvciBib3R0b20KICBlbmQK ICAKICBkZWYgd2lubmVyCiAgICB0b3AsIGJvdHRvbSA9IHRvcF9zY29yZSwgYm90dG9tX3Njb3Jl CiAgICBpZiB0b3AgPiBib3R0b20KICAgICAgcmV0dXJuIFRPUAogICAgZWxzaWYgYm90dG9tID4g dG9wCiAgICAgIHJldHVybiBCT1RUT00KICAgIGVsc2UKICAgICAgcmV0dXJuIE5PQk9EWQogICAg ZW5kCiAgZW5kCiAgCiAgZGVmIHRvcF9zY29yZQogICAgc2NvcmUgPSAwCiAgICAoNy4uMTMpLmVh Y2ggeyB8aXwgc2NvcmUgKz0gQGJvYXJkW2ldIH0KICAgIHNjb3JlCiAgZW5kCiAgCiAgZGVmIGJv dHRvbV9zY29yZQogICAgc2NvcmUgPSAwCiAgICAoMC4uNikuZWFjaCB7IHxpfCBzY29yZSArPSBA Ym9hcmRbaV0gfQogICAgc2NvcmUKICBlbmQKICAKICBkZWYgbWFrZV9tb3ZlKCBtb3ZlICkKICAg ICggcmFpc2UgJ0lsbGVnYWwgbW92ZS4uLicgKSB1bmxlc3MgbGVnYWxfbW92ZT8oIG1vdmUgKQog ICAgCiAgICBzdG9uZXMsIEBib2FyZFttb3ZlXSA9IEBib2FyZFttb3ZlXSwgMAogICAgCiAgICBw b3MgPSBtb3ZlKzEKICAgIHdoaWxlIHN0b25lcyA+IDAKICAgICAgcG9zKz0xIGlmKCAoQHBsYXll cl90b19tb3ZlPT1UT1AgYW5kIHBvcz09NikgfHwgKEBwbGF5ZXJfdG9fbW92ZT09Qk9UVE9NIGFu ZCBwb3M9PTEzKSApCiAgICAgIHBvcyA9IDAgaWYgcG9zPT0xNAogICAgICBAYm9hcmRbcG9zXSs9 MQogICAgICBzdG9uZXMtPTEKICAgICAgcG9zKz0xIGlmIHN0b25lcyA+IDAKICAgIGVuZAogICAg CiAgICBpZiggQHBsYXllcl90b19tb3ZlPT1UT1AgYW5kIHBvcz42IGFuZCBwb3M8MTMgYW5kIEBi b2FyZFtwb3NdPT0xICkKICAgICAgQGJvYXJkWzEzXSArPSBAYm9hcmRbMTItcG9zXSsxCiAgICAg IEBib2FyZFsxMi1wb3NdID0gQGJvYXJkW3Bvc10gPSAwCiAgICBlbHNpZiggQHBsYXllcl90b19t b3ZlPT1CT1RUT00gYW5kIHBvcz49MCBhbmQgcG9zPDYgYW5kIEBib2FyZFtwb3NdPT0xICkKICAg ICAgQGJvYXJkWzZdICs9IEBib2FyZFsxMi1wb3NdKzEKICAgICAgQGJvYXJkWzEyLXBvc10gPSBA Ym9hcmRbcG9zXSA9IDAKICAgIGVuZAogICAgCiAgICBpZiBAcGxheWVyX3RvX21vdmU9PVRPUAog ICAgICBAcGxheWVyX3RvX21vdmUgPSBCT1RUT00gdW5sZXNzIHBvcyA9PSAxMwogICAgZWxzZQog ICAgICBAcGxheWVyX3RvX21vdmU9VE9QIHVubGVzcyBwb3MgPT0gNgogICAgZW5kCiAgICAKICBl bmQKICAKICBkZWYgZGlzcGxheQogICAgcHV0cyAnJwogICAgdG9wID0gJyAgICAnCiAgICBbMTIs MTEsMTAsOSw4LDddLmVhY2ggeyB8aXwgdG9wICs9IEBib2FyZFtpXS50b19zKycgICcgfQogICAg cHV0cyB0b3AKICAgIHB1dHMgQGJvYXJkWzEzXS50b19zICsgJyAgICAgICAgICAgICAgICAgICAg ICcgKyBAYm9hcmRbNl0udG9fcwogICAgYm90dG9tID0gJyAgICAnCiAgICAoMC4uNSkuZWFjaCB7 IHxpfCBib3R0b20gKz0gQGJvYXJkW2ldLnRvX3MrJyAgJyB9CiAgICBwdXRzIGJvdHRvbQogICAg cHV0cyAnJwogIGVuZAogIAogIGRlZiByZXNldCAKICAgIEBib2FyZCA9IEFycmF5Lm5ldyggMTQs IDQgKQogICAgQGJvYXJkWzZdID0gQGJvYXJkWzEzXSA9IDAgIAogICAgQHBsYXllcl90b19tb3Zl ID0gQk9UVE9NCiAgZW5kCiAgCiAgZGVmIHBsYXlfZ2FtZSggYm90dG9tLCB0b3AgKQogICAgcmVz ZXQKICAgIAogICAgYm90dG9tLnNpZGUgPSBCT1RUT00KICAgIHRvcC5zaWRlID0gVE9QCiAgICB0 b3AuZ2FtZSA9IGJvdHRvbS5nYW1lID0gc2VsZgogICAgCiAgICAjcHV0cyBib3R0b20ubmFtZSsn IHN0YXJ0cy4uLicKICAgICNkaXNwbGF5CiAgICAKICAgIHVudGlsIGdhbWVfb3Zlcj8KICAgICAg I3B1dHMgJycKICAgICAgaWYgQHBsYXllcl90b19tb3ZlID09IFRPUAogICAgICAgIHQgPSBUaW1l Lm5vdwogICAgICAgIG1vdmUgPSB0b3AuY2hvb3NlX21vdmUKICAgICAgICB0b3AudGltZSArPSBU aW1lLm5ldyAtIHQKICAgICAgICAjcHV0cyB0b3AubmFtZSsnIGNob29zZSBtb3ZlICcrbW92ZS50 b19zCiAgICAgIGVsc2UKICAgICAgICB0ID0gVGltZS5ub3cKICAgICAgICBtb3ZlID0gYm90dG9t LmNob29zZV9tb3ZlCiAgICAgICAgYm90dG9tLnRpbWUgKz0gVGltZS5uZXcgLSB0CiAgICAgICAg I3B1dHMgYm90dG9tLm5hbWUrJyBjaG9vc2UgbW92ZSAnK21vdmUudG9fcwogICAgICBlbmQKICAg ICAgbWFrZV9tb3ZlKCBtb3ZlICkKICAgICAgI2Rpc3BsYXkgICAKICAgIGVuZAogICAgCiAgICBb Ym90dG9tX3Njb3JlLCB0b3Bfc2NvcmVdICAgCiAgZW5kCmVuZAoKcGxheWVycyA9IFtdCnBsYXll cnMgPDwgRGVlcFNjb3JlS2FsYWhQbGF5ZXIubmV3KCkKcGxheWVycyA8PCBBUGVzc2ltaXN0aWNL YWxhaFBsYXllci5uZXcoKQpwbGF5ZXJzIDw8IFJlbW92ZVJpZ2h0S2FsYWhQbGF5ZXIubmV3KCkK cGxheWVycyA8PCBSZW1vdmVIaWdoS2FsYWhQbGF5ZXIubmV3KCkKcGxheWVycyA8PCBSZW1vdmVS YW5kb21IaWdoS2FsYWhQbGF5ZXIubmV3KCkKcGxheWVycyA8PCBSZW1vdmVMb3dLYWxhaFBsYXll ci5uZXcoKQpwbGF5ZXJzIDw8IFJlbW92ZVJhbmRvbUxvd0thbGFoUGxheWVyLm5ldygpCnBsYXll cnMgPDwgU2NvcmVLYWxhaFBsYXllci5uZXcoKQpwbGF5ZXJzIDw8IEFIaXN0b3J5S2FsYWhQbGF5 ZXIubmV3KCkKCnBsYXllcnMuc2l6ZS50aW1lcyBkbyB8cDF8CiAgKChwMSsxKS4uLnBsYXllcnMu c2l6ZSkuZWFjaCBkbyB8cDJ8CiAgICBLYWxhaE1hdGNoLm5ldy5zdGFydCggcGxheWVyc1twMV0s IHBsYXllcnNbcDJdICkKICBlbmQKZW5kCgpwdXRzICcnCnBsYXllcnMuc29ydCEge3xhLGJ8IGIu c2NvcmUgPD0+IGEuc2NvcmUgfQpwbGF5ZXJzLmVhY2ggZG8gfHBsYXllcnwKICBwdXRzICIje3Bs YXllci5uYW1lfSBzY29yZWQgI3twbGF5ZXIuc2NvcmV9IHBvaW50cyBpbiAje3BsYXllci50aW1l fSBzZWNvbmRzIgplbmQKCg== ------=_Part_24674_29071048.1134457895281--