Giter VIP home page Giter VIP logo

tic-tac-toe-ai-using-minmax's Introduction

AI Tic-Tac-Toe using Min-Max Algorithm

Min-Max Algorithm

Min Max algorithm is simple algorithm used in decision making and game theory. This algorithm recursively checks all possible games possible from current state and moves where there is least risk. This algorithm assumes opponent will always move their best move. Even when opponent doesnot move best move, this algorithm works fine.

Wikipedia Image for min max algorithm

To know more about Min-Max algorithm, follow the link.

This algorithm fails to implement alpha-beta pruning. Alpha Beta pruning is technique to fasten the search process in the decision tree without loosing its efficiency.

Requirements

All requirements required are listed in requirements.txt file.

To Install those requirements, execute following code.

pip install -r reqirements.txt

Execution

This project compacts all functions / Methods into the same file.

Execute following code to test the AI.

python main.py

Results

Generally AI is fast enough to get unnoticed. But ocasionally it needs just more than 1 sec to get its first move. From the second move it always feels instantaneous.

This AI never loses in tic-tac-toe, but there will be some game player will loose. If the player also plays perfect game, no one wins no matter who starts the game

Game Board

Image of initial game screen

AI winning

Image of AI winning

Game resulting in tie

Image of a tie game

tic-tac-toe-ai-using-minmax's People

Contributors

anjaankhadka avatar

Watchers

 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.