Giter Site home page Giter Site logo

mancala-terminal's Introduction

Mancala-Terminal

a simple terminal version of mancala built as a coding exercise

python 3 only

to play simply download the repo, open it and type:

python -m mancala

requires a terminal that supports unicode output, may not work on windows

tests can be run with pytest

Currently the game has a crude and poorly optimized bot to play against.

TODO:
  • improve bot
    • critical bug, see TODO file for info!!
    • speed/space optimizations, lots of room for improvement here
      • combine bot mem_cache and after_move memoization into single transposition table (with best move?)
      • futility pruning in alpha-beta (not easily implemented with advanced estimation heuristic)
      • enhanced transposition cutoffs (examine child nodes for cutoffs before recursing)
      • endgame databases, too slow to compute at current speeds.
    • 'solve' the game?
    • train a ML replacement for bot if realtime solving infeasible?
    • go nuclear (rewrite bot into c extension)
  • implement fallback to ascii for non utf-8 compliant terminals
  • refactor rule logic into game module for better separation of concerns

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.