Giter VIP home page Giter VIP logo

connect4-python's Introduction

Connect4-Python

Este projeto é composto por dois componentes principais:

  • src: que possui a implementação do jogo e dos agentes (robôs)
  • content: que possui todo o material didático sobre o assunto.

Toda a implementação foi feita em Python. Este projeto é um fork do projeto do Keith Galli. Algumas modificações foram feitas na implementação, principalmente para permitir o jogo de robô contra robô.

Toda a parte referente ao material didático é nova.

A licença deste projeto é MIT License, como pode ser visto no arquivo LICENSE no repositório. Ou seja, você pode usar todo o material para o objetivo que quiser. No entanto, é necessário citar os autores deste projeto.

Fabrício Barth é professor Tempo Integral no Insper Instituto de Ensino e Pesquisa.

Setup

Para o setup do projeto eu recomendo criar um ambiente virtual:

python3.9 -m virtualenv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt

Executando o servidor mkdocs na máquina local

Para executar o servidor da documentação em uma máquina local basta digitar:

cd content
mkdocs serve

Fazendo o deploy da documentação usando o github actions

Existe um arquivo main.yml no diretório .github/workflows que define o deploy da documentação no gh-pages do github usando actions.

Exemplos de execução do jogo Liga4 ou Connect4

O jogo pode ser inicializado de algumas formas via src/connect4.py ou src/connect4_with_ai.py:

  • src/connect4.py: dois jogadores jogando de forma manual.

  • src/connect4_with_ai.py: um jogador manual e outro artificial.

  • python connect4_with_ai.py random: o jogador artificial tem comportamento aleatório.

  • python connect4_with_ai.py minmax 5: o jogador artificial implementa o algoritmo min-max. O número informado é a profundidade que o algoritmo min-max irá considerar - precisa ser um valor maior ou igual a 1.

  • python connect4_with_ai.py flat: equivale a execução do minmax com profundidade 1. É utilizado para mostrar o comportamento de um agente que avalia apenas o primeiro nível da árvore.

  • python connect4_with_ai.py complete: equivale a execução do minmax com profundidade 20. É utilizado para mostrar o comportamento de um agente que avalia toda a árvore de busca.

  • python connect4_ai_versus_ai.py random 0 minmax 5: o primeiro argumento define o primeiro jogador. Se for random então o segundo argumento pode ser qualquer valor. O terceiro argumento define o segundo jogador. Se o jogador for minmax então o argumento subsequente sempre precisa ser a profundidade adotada pelo minmax.

connect4-python's People

Contributors

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