Skip to main content

Games Tic-Tac-Toe and Reversi with CLI.

Project description

Project description

AP Games

Code style: black

The AP Games is the result of the completion of the project Tic-Tac-Toe with AI at JetBrains Academy. This project was developed just for fun and to learn Python and some concepts of a decision-making algorithm.

Tic-Tac-Toe with AI + bonus Reversi game

Tic-tac-toe, is a paper-and-pencil game for two players, X and O, who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner.

Reversi

Reversi is a strategy board game for two players who take turns marking the spaces in an 8x8 board.

Each player must place the piece so that an opponent's piece, or a row of opponent's pieces, is flanked by your pieces.\nAll of the opponent's pieces between your pieces are then turned over to become your color. The object of the game is to own more pieces than your opponent when the game is over. See source.

The example below shows the game interface:

Please choose the game:
	0 - Tic-Tac-Toe;
	1 - Reversi.
Print 'exit' to exit the program.

Input command: 1
Type 'start user1_type user2_type' to run the selected game,
where user_X_type is one of the supported values:
user, easy, hard and nightmare;
Type 'rules' to get game rules or type 'exit' to return
to the main menu.

Input command: rules
You must place the piece so that an opponent's piece, or a row
of opponent's pieces, is flanked by your pieces.
All of the opponent's pieces between your pieces are then
turned over to become your color. The object of the game is
to own more pieces than your opponent when the game is over.

Input command: start user hard
  -------------------
8 |                 |
7 |                 |
6 |                 |
5 |       X O       |
4 |       O X       |
3 |                 |
2 |                 |
1 |                 |
  -------------------
    1 2 3 4 5 6 7 8
Enter the coordinate [X]: 1 1
You cannot go here!
Enter the coordinate [X]: 1
You should enter two numbers!
Enter the coordinate [X]: 4 3
  -------------------
8 |                 |
7 |                 |
6 |                 |
5 |       X O       |
4 |       X X       |
3 |       X         |
2 |                 |
1 |                 |
  -------------------
    1 2 3 4 5 6 7 8
Making move level "hard" [O]
  -------------------
8 |                 |
7 |                 |
6 |                 |
5 |       X O       |
4 |       O X       |
3 |     O X         |
2 |                 |
1 |                 |
  -------------------
    1 2 3 4 5 6 7 8
Enter the coordinate [X]:

Installation

The project has been tested only with python 3.8 on Ubuntu Linux and Windows 10. If you have python 3.8 and above installed in your machine, just install the AP Games from PyPI:

pip install ap-games

You can find source code of this package on github. See aplatkouski/ap-games repository.

How to use

Run module:

python -m ap_games [game] [user-1 user-2]

Where:

  • game is a value from the following set:
    • 0 or tic-tac-toe for Tic-Tac-Toe game;
    • 1 or reversi for Reversi game.
  • user-1 and user-2 are values from the following set:
    • user for human player;
    • easy, medium, hard and nightmare for AI player.

Note: Parameters in brackets are optional.

Or open the python console and type:

# Python version 3.8+
from ap_games import cli
cli.main()

Notes

This package can be run as a console game or integrated into another application. This project provides the following basic structures:

  • SquareGameboard
  • GameBase
    • TicTacToe
    • Reversi
  • Player
    • HumanPlayer
    • AIPlayer - uses mini-max as decision-making algorithm.

Credits

Thanks to Gaurav Sen for his video What is the Minimax Algorithm? - Artificial Intelligence

Development & Contributing

Development of this happens on GitHub, patches including tests, documentation are very welcome, as well as bug reports!

See also our CONTRIBUTING.md.

Copyright

Copyright (c) 2020 Artsiom Platkouski. AP_games is licensed under the MIT License - see the LICENSE.txt file for details.

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

ap_games-0.0.1rc0.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ap_games-0.0.1rc0-py2.py3-none-any.whl (26.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ap_games-0.0.1rc0.tar.gz.

File metadata

  • Download URL: ap_games-0.0.1rc0.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for ap_games-0.0.1rc0.tar.gz
Algorithm Hash digest
SHA256 5a8f9304f9b1a2fad30cd94c945c29c5bf9e80543ce2d2feca897c8196c65dea
MD5 328077c37ddf8a15a02441162486fcc3
BLAKE2b-256 db6c49bc39613752a7064c1dd8f612f4049dc1678c63d7b2baafcddf3be29fb6

See more details on using hashes here.

File details

Details for the file ap_games-0.0.1rc0-py2.py3-none-any.whl.

File metadata

  • Download URL: ap_games-0.0.1rc0-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for ap_games-0.0.1rc0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cfdfb16e4078d7fc9d8c19fa28033720526b0e3dd93c0b4f75c2e506932db810
MD5 33f5c384cafa039922dbc93dd0bbcf26
BLAKE2b-256 7644e940dacf5d2afa524ed3a0b09089506815a711d5009a01f0d958e1324eeb

See more details on using hashes here.

Supported by

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