Coder Social home page Coder Social logo

rspeer / golem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from drheld/isotropic_dominion_extension

5.0 5.0 0.0 28.94 MB

Chrome extension for counting points in dominion on dominion.isotropic.org.

Shell 1.07% CoffeeScript 30.46% JavaScript 61.47% Python 7.01%

golem's People

Contributors

drheld avatar kcrca avatar robdennis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

golem's Issues

Needs at least basic endgame strategy

Golem should know when a buy possibility will end the game, and choose it if it wins or avoid it if it loses.

Looking a turn or two ahead and calculating probabilities, for the kind of endgame strategy discussed on CouncilRoom, would be fun but should come after the basics.

Why does it like Bishops so much?

A failing test in golem-test.coffee shows that the bot will buy a bishop over a silver, even when its deck is already clogged full of bishops.

Somehow the model learned that Bishop*Bishop = good, and neither the actionBalance nor the weights against Bishop>3, Bishop>4, etc. are enough to overcome this.

models for turn > 13 are broken

Something probably went wrong in handling games that have already ended. Models for turns later than 13 output a constant +100 or -100.

export_decks.coffee occasionally writes malformed examples

export_decks.coffee seems to occasionally be misplacing line breaks, or perhaps writing one example in the middle of another. The result is that somewhere between 1 in 40000 and 1 in 10000 of the examples are corrupted. Is this a node.js bug, or just an unexpected effect of the way I'm doing a lot of asynchronous writes to the same file?

The workaround for now involves telling vw not to care about serious parse errors. The model picks up some meaningless features and otherwise copes.

Doesn't understand the potion symbol

Golem currently treats costs as integers, and doesn't take into account the fact that they may include a potion.

The buying math should be changed to keep track of a number of potions AND a number of coins.

Hand holding for getting the software running

I installed all of the dependencies (the node mongo install failed, but that seems like it's only for training anyway) and got the server running. I ran the buyborg iso client, but it didn't make any requests to the locally running server, nor did I see any part of the UI for giving recommendations.

It would be nice to have a trivial client that has a textual game state hard coded as a way to document the interface, so for example, I could hookup the cr.com game pages to make requests to the server an annotate the game with buy recommendations.

Golem does not understand the implications of buys

Golem plays a Hoard and has $6 to spend. It wants to buy a Gold. It doesn't recognize that it would be better to buy a Duchy and get a free Gold.

Golem plays a Goons and has $6 to spend. It wants to buy another Goons, with Goons+Copper not too far behind. If it knew it would get 1 VP more, it would certainly chose Goons+Copper.

Excitement, curiosity, and questions

This project is exciting to me.

I am curious about what you are trying to model from the data. Is there some code missing, or you haven't gotten there yet?

For me, there seems to be two reasonable approaches to this.

  1. Try to model what a given (skilled) player will buy given the context, available money, etc. This could be fun from a social perspective, you could heavily overweight data from a particular player and then call it the rspeer-bot, or the rrenaud-bot, or the theory-bot, etc.
  2. Try to estimate the probability of winning (or merely relative advantage, monotonic but possibly less meaningful than p[win|game state]), and then enumerate possible game states from a position, and use that to determine which things to buy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.