A minimal open source mtg-like tcg game made in python that can be played on a terminal emulator using a keyboard.

Overview

TCG-TERM

Project state:

๐Ÿ”ง ๐Ÿšง ๐Ÿšง ๐Ÿšง Incomplete, In development ๐Ÿšง ๐Ÿšง ๐Ÿšง ๐Ÿ‘ท

(Keep in mind that at the moment, This project is currently undone, and will not work, if you try to lunch it.)

Latest prototype of this project are in the TEST directory which like the name imply is for testing and development purposes.

Once the TEST directory has a working prototype, i will start to refine it, by making more generalise function that have more flexibility, i will separate most of the code in their own function & modual.

So far the summoning with color cost and non color is a bigger challange then expected to get working, I am doing my best but so far their is still much to fix. for example being able to use any colors of lands to pay for colorless cost...

All of this could probably be acheaved with javascript on an html webpage, but i whanted to play on the terminal, so if you wish to adapt the code for a more web based experience feel free to contribute to this project.

I will probably Reuse some code and thechnics from this previus project of mine. It was a verry similar project, and i learn a lot from making it, even do I try to keep this project simple, i do not whish to rush it, and i do not have that much free time to work on it, so things can take some time to take shape.

RAND-CARD

What is tcg-term?

It started as a project to make an mtg alternative game on the linux terminal, but i now aim to include other style of tcg game play mode while avoiding to enfringe on the copy rightable content.

It is a minimalistic, open-source, tcg-like game, made in python, that can be played on most terminal emulator on linux. The first goal to be realistic in scope, is to have a playable single player game, with simple generated card, that have simple Keyword ability effect. Then once completed, add complexity progressivelly, and maybe in the far long distant future a form of multiplayer.

I aim to have multiple main gamemode "inspired" by:

  • M4g!c
  • P0k3m0n
  • Yu-g!-0h
  • F0rc3 0f w!ll
  • V4n9u4rd3

Imagine a single game in which you can play all of the above mention game mode and havem ultiple deck of each of those mode, having all these cards option in the game shop!

And maybe a gamemode called Battle-Cry ( Another one of my open source project Here on Github. ) Battle-cry should begine development after this project is functional, so it might take a while. I will use what i learn making this project to make it as best as i can.

mtg_wiki P0K3M0n

Concept art

I am still not sure what is the best way to display the mana cost. C: Creatures, P: Permanents, L: Lands. D: Deck, H: Hand, G: Graveyard.

Game View

Turn: [Player_name_one]
Phase: [Beginning/Untap Step] 

โ–ถ๏ธ [Player_name_one]: Health[20]

D: โฌœ[60]
G: ๐Ÿ’€[0]
H: ๐Ÿ”ณ๐Ÿ”ณ๐Ÿ”ณ๐Ÿ”ณ๐Ÿ”ณ๐Ÿ”ณ๐Ÿ”ณ[7] 

L: ๐ŸŸช โฌ›โฌ›
P: ๐ŸŸง
C: ๐ŸŸซ ๐ŸŸซ[2] โฌ›
  ๐Ÿ—ก๏ธ
    ๐Ÿ›ก๏ธ๐Ÿ›ก๏ธ        
C: ๐ŸŸซ๐ŸŸซ๐ŸŸซ
P: ๐ŸŸง๐ŸŸง
L: ๐ŸŸช๐ŸŸช โฌ›

H: ๐ŸŸง๐ŸŸซ๐ŸŸช๐ŸŸซ๐Ÿ”๐ŸŸง[6]
G: ๐Ÿ’€[6]
D: โฌœ[60]

[Player_name_two]: Health[20] 

-[Info]----------------------
Name: [Lorem Ipsum]
Cost: ๐Ÿšซ[2] ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต 
Type: Creature
Rarity: Mythic rare ๐ŸŒŸ
Effect: [ ... ]
Power: ๐Ÿ—ก๏ธ[1]
Taughness: ๐Ÿ›ก๏ธ[1]

Text-only

Turn: [Player_name_one]
Phase: [Beginning/Untap Step] 

> [Player_name_one]: Health[20] Deck[60]

Hand:  #######[7] 
Graveyard: [0]

L: # %%
P: #
C: # #[2] %
  A
   BB        
C: ###
P: ##
L: ## %

Graveyard: [6]
Hand:  ####@#[6]

[Player_name_two]: Health[20] Deck[60]

-[Info]----------------------
Name: [Lorem Ipsum]
Cost: None[2] Blue[3] 
Type: Creature
Rarity: Mythic rare *
Effect: [ ... ]
Power: 1
Taughness: 1

Deck Edit View

Filter: Name[๐Ÿ…ฐ] Cost[๐Ÿช™] Power[๐Ÿ—ก๏ธ] Taughness[๐Ÿ›ก๏ธ] Color[๐Ÿšซ]
[Deck]
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐Ÿ”๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง
๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช

[Sideboard]
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ
๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸซ๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸง
๐ŸŸง๐ŸŸง๐ŸŸง๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช

-[Info]----------------------
Name: [Lorem Ipsum]
Cost: ๐Ÿšซ๐Ÿšซ[2] ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต[3]
Type: Creature
Rarity: Mythic rare ๐ŸŒŸ
Effect: [ ... ]
Power: 1
taughness: 1
Copy: 3/4

โŒ[REMOVE] ๐Ÿ‘ฅ[Duplicate][Cost: 1000๐Ÿช™]
-----------------------------

๐Ÿšช[MAIN MENU]
[Player_name_one] 
Graveyard: ๐ŸŸง๐ŸŸซ๐ŸŸช๐ŸŸซ๐Ÿ”๐ŸŸง[6]
Field: โš”๏ธ

-[Info]----------------------
Name: [Lorem Ipsum]
Cost: ๐Ÿšซ[2] ๐Ÿ”ต[3]
Type: [Creature]
Effect: [ ... ]
P/T: [1/1]

Card Shop View

Don't worry you buy the cards with in game point, which can be won by winning game. No ingame purchasses XD

[Cards: 15x]:
  ๐Ÿ“ฆ[๐Ÿšซ][Cost: 150๐Ÿช™]
  ๐Ÿ“ฆ[โšช][Cost: 250๐Ÿช™]
๐Ÿ” ๐Ÿ“ฆ[๐Ÿ”ต][Cost: 250๐Ÿช™]
  ๐Ÿ“ฆ[โšซ][Cost: 250๐Ÿช™]
  ๐Ÿ“ฆ[๐Ÿ”ด][Cost: 250๐Ÿช™]
  ๐Ÿ“ฆ[๐ŸŸข][Cost: 250๐Ÿช™]
 
  ๐Ÿšช[MAIN MENU]

Settings View4

Settings:
 ๐Ÿ” Text Only [Off]
 โš™๏ธ Sound Effect [Off]
 โš™๏ธ Text Color [On]
 
 ๐Ÿšช[MAIN MENU]
 

Symbols emoji and therm used

Symbols:
Tapped โฌ›
Creature ๐ŸŸซ
Instant or Sorcery Or Artefact Or Enchantment ๐ŸŸง
Cursor/Slection ๐Ÿ” (Alternative cursor idea ๐Ÿ‘‡๐Ÿ‘†๐Ÿ‘‰๐Ÿคš๐Ÿ’  )
Colorless +
Attacking ๐Ÿ—ก๏ธ
Blocking ๐Ÿ›ก๏ธ
Colorless ๐Ÿšซ
Mana card ๐ŸŸช
Back ๐Ÿ”ณ
Mytic Rare ๐ŸŒŸ
Rare โญ
Uncomun ๐Ÿฅ‡

I also found these character emoji: ๐Ÿง™๐Ÿง™โ€โ™€๏ธ๐Ÿง™โ€โ™‚๏ธ๐Ÿง๐Ÿงโ€โ™€๏ธ๐Ÿงโ€โ™‚๏ธ๐Ÿง›๐Ÿง›โ€โ™€๏ธ๐Ÿง›โ€โ™‚๏ธ๐ŸงŸ๐ŸงŸโ€โ™€๏ธ๐ŸงŸโ€โ™‚๏ธ



Therm: P&T = Power and Taughness

Game default key bindings ๐Ÿ–ฑ๏ธ โŒจ๏ธ


## An option to customise or swap these default key bindings should be profided in the form of a config file or settings page, eventually.

# Controlle options
w = want selection (select what is selected by the cursor)
a = action (attacking/blocking/activating a spell)
s = skip (will skip to the next phase)
d = end turn (will skip all remaining phases)

# Move cursor
h = left
j = down
k = up
l = right

Help Needed!

I really want to play an tcg-like alternative game on linux, so please do your best to contribute if you can!

Read the task-list to see the priority. This project only accept clear, organized and well commented code. You can also submit suggestion and idea, as long as they are unambiguous and well developed.

WE NEED YOU

You feedback is welcome.

Owner
Amos
...
Amos
Terraform Cloud CLI for Managing Workspace Terraform Versions

Terraform Cloud Version Manager This tiny script makes it easy to update the Terraform Version on all of the Workspaces inside Terraform Cloud. It wil

Robert Hafner 1 Jan 07, 2022
Hydro Quebec API wrapper.

HydroQC Hydro Quebec API wrapper. This is a package to access some functionalities of Hydro Quebec API that are not documented. Documentation https://

Olivier BEAU 9 Dec 02, 2022
๐Ÿ VerificaC19 SDK implementation for Python

VerificaC19 Python SDK ๐Ÿ VerificaC19 SDK implementation for Python. Requirements Python version = 3.7 Make sure zbar is installed in your system For

Lotrรจk 10 Jan 14, 2022
A Telegram mirror bot which can be deployed using Heroku.

Slam Mirror Bot This is a telegram bot writen in python for mirroring files on the internet to our beloved Google Drive. Getting Google OAuth API cred

Hafitz Setya 1.2k Jan 01, 2023
Enigma simulator with python and clean code.

Enigma simulator with python and clean code.

Mohammad Dori 3 Jul 21, 2022
Frida-based ceserver.iOS analysis is possible with Cheat Engine.

frida-ceserver frida-based ceserver. iOS analysis is possible with Cheat Engine. Original by Dark Byte. Usage Install python library. pip install pack

87 Dec 30, 2022
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

OpenAPI Generator Master (5.3.1): 5.4.x (5.4.x): 6.0.x (6.0.x): โญ โญ โญ If you would like to contribute, please refer to guidelines and a list of open t

OpenAPI Tools 14.8k Jan 04, 2023
qualysclient - a python SDK for interacting with the Qualys API

qualysclient - a python SDK for interacting with the Qualys API

5 Oct 28, 2022
Unofficial WebApp for WhatsApp Web created in PyQt6

Unofficial WebApp for WhatsApp Web created in PyQt6 using PyQt6-WebEngine

Rafael Tosta Santos 126 Dec 20, 2022
Powerful Telegram userbot to turn your PROFILE PICTURE & LAST NAME into a real time clock & to change your BIO automatically.

DATE_TIME_USERBOT-TeLeTiPs Powerful Telegram userbot to turn your PROFILE PICTURE & LAST NAME into a real time clock & to change your BIO automaticall

53 Jan 05, 2023
Project glow is an open source bot worked on by many people to create a good and safe moderation bot for all

Project Glow Greetings, I see you have stumbled upon project glow. Project glow is an open source bot worked on by many people to create a good and sa

Glowstikk 24 Sep 29, 2022
Telegram File to Link Fastest Bot , also used for movies streaming

Telegram File Stream Bot ! A Telegram bot to stream files to web. Report a Bug | Request Feature About This Bot This bot will give you stream links fo

Avishkar Patil 194 Jan 07, 2023
Osmopy - osmo python client library

osmopy Version 0.0.2 Tools for Osmosis wallet management and offline transaction

5 May 22, 2022
discord.js nuker (50 bans a sec)

js-nuker discord.js nuker (50 bans a sec) I was to lazy to make the scraper in js, but this works too. DISCLAIMER This is tool was made for educationa

4 Sep 11, 2021
Pagination for your discord.py bot using the discord_components library!

Paginator - discord_components This repository is just an example code for how to carry out pagination using the discord_components library for python

Skull Crusher 9 Jan 31, 2022
A Telegram Bot to prevent Night Spams

NightModeBot A Telegram Bot to lock group in night to prevent night spam Setps To Use - Put Variables Correctly. - Add Bot to your group and make admi

ReeshuXD 10 Oct 21, 2022
Python async SDK for betsapi.com

Python async SDK for betsapi.com

1 Dec 21, 2021
This is a Innexia Group Manager Bot with many features

โšก Innexia โšก A Powerful, Smart And Simple Group Manager ... Written with AioGram , Pyrogram and Telethon... Available on Telegram as @Innexia โค๏ธ Suppor

TeamDeeCode 84 Jun 04, 2022
Send Informative, Concise Slack Notifications With Minimal Effort

slack-templates Send Informative, Concise Slack Notifications With Minimal Effort slack-templates Slack Integration Available Templates Usage Report t

9 Nov 03, 2022
A Python implementation of a Youtube Subscription manager & feed viewer, also does thumbnails

BUILDING Building requires python3.10, and the build package, which can be installed via pip: python3.10 -m pip install build To install, run python3.

2 Feb 28, 2022