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.4.tar.gz (19.2 kB view hashes)

Uploaded Source

Built Distribution

connect_n-0.0.4-py3-none-any.whl (38.8 kB view hashes)

Uploaded Python 3

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