GithubHelp home page GithubHelp logo

splendor-ai's Introduction

Splendor AI Project

Purpose

  • Model a "real-world" system
  • Be able to create a complex state machine
  • Model interactions with that state machine in a simple to understand way
  • Build an ai solution that can make a decision on which move to play
  • Feature engineering on how to transform the game model into inputs to a statistical model

Part 1: Modeling

  • Model the Splendor Game by decomposition into Decks, Table, Banks, & Players
  • Model the Players as Banks, Cards, + Points
  • Model the Banks as dictionaries of Stacks (which are just unit counters)
  • Model the Table as face up set of cards
  • Be able to generate a realistic looking deck for either l1,l2,l3 card types

Part 2: Model State Change

  • Implement state change for each model type
  • Decks generate cards
  • Stacks can grow or decrease
  • Players can do one of a set of actions {take 2 coins of one color, take 3 different coins, buy a card}
  • Be able to apply a state change to a game and generate the resulting game object
    • by this approach, a SplendorGame object is immutable; rather than mutate the state, we actually produce a new SplendorGame by applying a SplendorMove(or something similar)
    • We do this because our eventual ai system will need to apply all possible moves and evaluate the best one using some heuristic (trained or otherwise)

Part 3: Simulate Game Play

  • Construct a notation for gameplay
  • simulate gameplay as a random walk through space

Part 4: Build a Policy Model to evaluate the $P(Player_{x} Wins \mid State )$

  • Generate a few potential models to evaluate the probability above
  • Have the models play each other to see who wins the most

splendor-ai's People

Contributors

rahulbhatia avatar

Stargazers

z avatar

Watchers

James Cloos avatar Rahul avatar

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.