Giter Site home page Giter Site logo

turkishdraughts's People

Contributors

ffloof avatar

Stargazers

 avatar

Watchers

 avatar

turkishdraughts's Issues

Last major ui features

Arrows with values for best moves, (maybe with ai no move toggle).
Overall board position evaluation (sort of how lichess has in its analysis board)

Random R/W One Fail

The table is constantly failing exactly one read write test, not sure if its the last or the first. Either a problem with the table or the test.

Worker pool

Use a worker pool instead of the current parallel solution. Probably best to implement with transposition table to avoid having to communicate between threads constantly.

Use a transposition table

To optimize minmax use a transposition table to speed up searching duplicate board configurations by storing the results in a table.

Improve raw board value

Implement checks for pieces next to each other and overall position heuristics. I'd need to learn more about the game for this.

Swap Tile[] to a bitboard

Each tile can be represented by 3 bits, isEmpty, isKing, team. Using bits and bit shifting should make it faster to operate on the board and reduce memory accesses, increasing cpu usage.

Test edge case with takes

Taking and in the middle of a string of takes if theres a promotion, should it be able to promote and keep taking?

Tournament system

  1. Add win condition to battles
  2. Improve AI by banning previous boardstates to avoid permanent stalling
  3. Implement logging of battles
  4. New types of ai, dynamic minmax depth, random agent, one side minmax, one side minmax + regular minmax, and all the variants of existing ai
  5. Implement tournament where each ai plays every other ai
  6. Optionally add an elo system to the game
  7. Maybe do a second third tournament with only the best ai and see how often they win on certain openings

Agressiveness

Encourage ai to trade down pieces if its equal, whether this be through heuristic or just in the move choosing order.

Minor optimizations

-Add a stack of previous moves in minmax to avoid repeat back and forth moves
-Optimize hashing algorithm, to use less memory overall by only hashing certain parts of board
-Dynamic depth based on board complexity(amount of initial moves) to keep move thought process time roughly the same in all stages of the game

Optimize king moves

Since ai rarely plays the king maybe reduce depth search of all king moves since a king can generate like 10+ moves each turn.

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.