Skip to main content

A modified version of Connect-4 game implemented with AI using PyGame.

Project description

Connect-N

License: GPL v3 Build Status Codacy Badge Codecov Code Style


Introduction

A simple modified version of Connect Four Game implemented with AI in Python using PyGame.

Project Description

  • This repositry contains a simple game made in python similar to Connect 4.
  • A bit modified to work with any connect length for any board size.
  • Currently supports for variable number of players on a two dimentional board.
  • Only three players supported in GUI mode.
  • For more players add new colours COLOR variable in connect_n/pygame_utility.py file.
  • ID 1 is reserved for AI.
  • Currently only supports single AI player in a game.
  • Tests in python 3.7 on Windows OS(by developer).
  • API: used flask for API development.
  • Using flask-migrate for database migration.
  • Using httpie for API calls and testing, similar to postman.

Installation

Windows

git clone https://github.com/Kartikei-12/Connect-N
cd Connect-N-master
python -m venv venv
./venv/Scripts/activate
pip install -r requirements.txt
python -m unittest discover --verbose

Linux based OS

git clone https://github.com/Kartikei-12/Connect-N
cd Connect-N-master
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
python -m unittest discover --verbose

Direct Usage

For simple example,

Run main.py as python main.py on windows with virtual environment(./venv/Scripts/activate).

Run main.py as python3 main.py on Ubuntu/Linux with virtual environment(source /venv/Scripts/activate).

API

API Setup(One time)

git clone https://github.com/Kartikei-12/Connect-N
cd Connect-N-master
python -m venv venv
./venv/Scripts/activate
pip install -r requirements.txt
cd connect_n/api/
pip install -r requirements.txt
flask db init
flask db migrate -m "Initial migration"
flask db upgrade
cd ../../

API Usage

Run server with flask run in Connect-N/connect_n/api directory.

API Call: In new terminal do http GET http://127.0.0.1:5000/test

System Requirements

  • Python 3
  • Pip usually pre-installed with python, check with pip3 --version.
  • Python module PyGame installable via pip.

Documentation

docs

Limitation

GUI NOT working inside docker, because no support for pygame inside Docker. Workaround: Code automatically switches to command line interface without raising error connect_n/connect_n.py.

Contributer(s)

@Kartikei Mittal

Help Needed

  • Looking for any algorithm which may be useful for designing AI for turn based games with more than two players.
  • Looking for a front end developer for making API front end for web and android.

Additional Resources

Acknowledgment

<title>Test Report</title>

Test Report

Start Time: 2019-08-11 19:14:05

Duration: 51.73 s

Summary: Total: 26, Pass: 26

test_ai.AITests Status
test_get_move Pass
test_greedy Pass
test_horizontal_score Pass
test_negative_digonal_score Pass
test_positive_digonal_score Pass
test_string_score Pass
test_vertical_score Pass
Total: 7, Pass: 7 -- Duration: 105 ms
test_api_utility.APIUtility Status
test_compile_response Pass
Total: 1, Pass: 1 -- Duration: 0 ms
test_connect_n.ConnectNTests Status
test_add_player Pass
test_get_strings Pass
test_get_valid_moves Pass
test_horizontal_winning_move Pass
test_is_valid_move Pass
test_make_move Pass
test_negative_digonal_winning_move Pass
test_positive_digonal_winning_move Pass
test_simulate Pass
test_version Pass
test_vertical_winning_move Pass
Total: 11, Pass: 11 -- Duration: 1 ms
test_dataset_generate.GenerateDataTests Status
test_generate_save Pass
test_load Pass
Total: 2, Pass: 2 -- Duration: 25.66 s
test_db_user_model.UserModelCase Status
test_check_token Pass
test_password_hashing Pass
test_to_dict Pass
test_token_expiration Pass
Total: 4, Pass: 4 -- Duration: 2.58 s
test_pygame_utility.PygameUtilityTests Status
test_play Pass View

pygame 1.9.6 Hello from the pygame community. https://www.pygame.org/contribute.html

Total: 1, Pass: 1 -- Duration: 23.39 s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

connect-n-0.0.5.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

connect_n-0.0.5-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file connect-n-0.0.5.tar.gz.

File metadata

  • Download URL: connect-n-0.0.5.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for connect-n-0.0.5.tar.gz
Algorithm Hash digest
SHA256 3bc9c00caf328953ae5472d9ffe12e3178e8245315e62f894a4b49f1bc91df88
MD5 2389d611303fe159c2f78d16e68ab606
BLAKE2b-256 96336243ea0698da3b09fceca1bd8f1119b9b0c3b0eb1fad8cdc98d1617dca82

See more details on using hashes here.

File details

Details for the file connect_n-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: connect_n-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for connect_n-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 263a8b7d77f8226b95cda21b3bf40d55eabf29c9da9e0c30c33f021840797c56
MD5 57001fb7714489fc83b17dba5f9c084b
BLAKE2b-256 41b7adc54ce046b7d6e6865b83ba54fb707b7dd3d83dedb9116004a48730b8e8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page