Coder Social home page Coder Social logo

quoridor's Introduction

Quoridor

A Quoridor AI in progress written in C++.

Todo list

EPIC "Database":

  • Create class KNOWLEDGE which will be used from IA to play and Game to grow it.
  • Create MAP KNOWLEDGE <board picture(own wall remain, opp wall remain, own position, opp. position, WALL_LIST), MOVE_STATISTICS_LIST >
  • Create SET WALL_LIST
  • Create MAP MOVE_STATISTICS_LIST <move, statistics(total, win, lose, moves to win/lose average)>
  • Constructor need move list.
  • Method moveList take a "board picture" and return a MOVE_STATISTICS_LIST
  • Method moveStatistics take a "board picture+move" or "MOVE_STATISTICS_LIST+move" and return statistics
  • Method winMove take a MOVE_STATISTICS_LIST and return a move
  • Method loseMove take a MOVE_STATISTICS_LIST and return a move
  • Method drawMove take a MOVE_STATISTICS_LIST and return a move
  • IA uses KNOWLEDGE map to play (define game style from hash table)
  • Fill KNOWLEDGE with saved game.

EPIC "IA Database":

  • Define DISCOVER IA : try to play never played or the least played move. Use to increase DATABASE.
  • Define WINNER IA : try to play the best move or surrend if no move is winable. Customize with minimum win rate to play.
  • Define ROMANTIC IA : try to play move with the worst draw rate or surrend. Customize with maximum draw rate to play.
  • Define MODEST IA : try to play move with the worst lose rate or surrend. Customize with maximum lose rate to play.

EPIC "OPTIMISE DATABASE":

  • scan saved game and show equivalent game files.

EPIC "Analytics":

  • Create class ANALYTICS which will be used from IA to play.
  • Create several features as Lisa Glendenning's thesis.
  • Create several features as Mertens agent.
  • Create SET WALL_LIST
  • Create SET PAWN_LIST
  • Constructor need move list.
  • Method add take a feature and its coefficient to apply for evaluations
  • Method evaluate take a "board picture+move" and return score

EPIC "IA Analytics":

  • Define ??? IA : define an analytic IA.

Done list

EPIC "PDCurses":

  • Add PDCurses as submodule
  • Make some draft to display board
  • Add Display mother class and PDCurses as child
  • Use Display from Board class to show evolution of board in real time
  • Discard std::cout display with move method.

quoridor's People

Contributors

leguims avatar

Watchers

James Cloos avatar  avatar

quoridor's Issues

Improve player creation

Player instance is allocate outside game class. But, to replay saved game, it need to be create inside game class.

Create it as smart ptr outside and inside the class in case of replay.

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.