GithubHelp home page GithubHelp logo

connect-4-ai's Introduction

Connect 4 AI

There is no lookup table for this project; all the work is done in the PlayerX and PlayerO files. This allows for less work to be done overall. The parameters for the algorithm can be changed by changing the constants on the top of each file.

SCORE_BONUS_4 is the bonus given to the score if the AI player has a 4-in-a-row on a given board.

SCORE_DETRACTION_4 is the amount of points taken away from the score score if the other player has a 4-in-a-row on a given board.

SCORE_BONUS_3 is the bonus given to the score if the AI player has a 3-in-a-row on a given board.

SCORE_BONUS_2 is the bonus given to the score if the AI player has a 3-in-a-row on a given board.

SCORE_DETRACTION_3 is the amount of points taken away from the score score if the other player has a 3-in-a-row on a given board.

SCORE_DETRACTION_2 is the amount of points taken away from the score score if the other player has a 2-in-a-row on a given board.

PREFER_HIGHER_ROWS_MULTIPLIER is inverse to the amount by which the bonus points for a 3-in-a-row is multiplied for successively higher.

PREFER_CENTRAL_COLUMN_MULTIPLIER is the amount by which the AI prefers a central move to an edge move.

PREFER_NEARBY_COLUMNS_MULTIPLIER is the amount by which the AI prefers a move in a column adjacent to the center column.

ALPHA_BETA_DEPTH_LEVEL is the number of levels deeps the alpha-beta pruning tree goes. I found that 6 terminates in less than 3 seconds at the most, and 7 terminates in less than 8 seconds at the most.

The most optimal parameters are the ones that are preset in the files.

The "Connect4.py" file that has been provided must be in the folder with the PlayerX and PlayerO files for them to work.

connect-4-ai's People

Contributors

jacob5567 avatar

Watchers

 avatar  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.