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
Discord based board game, Sneks and Ladders

sneks-and-ladders Discord based board game, Sneks and Ladders intro This is the code-base for the Discord based game, Sneks and Ladders, as used for s

Yohei Nakajima 3 Nov 04, 2022
OpenGL experiments with Pygame & ModernGL

pygame-opengl OpenGL experiments with Pygame & ModernGL TODO Skybox & Reflections Post-process effects (motion blur, color correction, etc..) Normal m

Kadir Aksoy 4 Oct 28, 2022
AI Mario challenges you to clear all stage of Super Mario game.

mario-ai-challenge Challenge AI Mario to clear all stages of Super Mario. GitHub Pages Site Rules Enjoy building AI Mario. Share information. Use Goog

karaage 48 Dec 10, 2022
AI Games and its programming solution with Python.

Problem: Save the princess: Problem defination on Hackerrank: https://www.hackerrank.com/challenges/saveprincess About problem: Princess Peach is trap

Hasit Parmar 1 Feb 19, 2022
A programme which basically has the same function as the actual Rock paper scissors game.

A programme which basically has the same function as the actual Rock paper scissors game.

1 Feb 11, 2022
Automatic game data translator for RPGMaker-MV

RPGMaker-MV Translator đŸ•šī¸ 🎮 Use AI to translate all the dialogs and texts of your RPGMaker automatically. 👊 You worked hard to make your game, now

Davide Liu 11 Dec 26, 2022
learn and have fun developing 2D retro games using python and pygame

Retro 2D Game Development Using Python + PyGame Skill up your programming skills with a walk down the memory lane. Learn how to create a retro 2D game

Marvin Trilles 1 Feb 23, 2022
Code and outputs from analysis determining that the wordle game can always be won in six moves.

wordle_worst_case_analysis Code and outputs from analysis determining that the wordle game can always be won in six moves. This is for the general cas

2 Aug 19, 2022
Python game engine for 2D multiplayer online games.

LAN-Caster The goal of LAN-Caster is to provide an easy-to-use code base (game engine) for developing 2D multiplayer online games. LAN-Caster original

Douglas Bakewell 1 Feb 11, 2022
Crazy fast kahoot game flooder with a GUI and multi OS support.

kahoot flooder Crazy fast kahoot game flooder with a GUI and multi OS support. Made in python using tkinter and KahootPY with toast notifications. Req

Ben Tettmar 1 Apr 09, 2022
Logo hitting the corner == best feeling ever!

Bouncing DVD logo - Pygame A little ride back to the 90s. Ah good ol' time! Didn't we all wait for the logo to hit the corners? Best feeling ever!! I

Hoang Nguyen 3 May 25, 2022
A Pygame Hangman Game coded in Python 3. Run Hangman.py in a terminal if you have Python 3

Hangman A Pygame Hangman Game coded in Python 3. Run python3 Hangman.py in a terminal if you have Python 3.

1 Dec 24, 2022
Client-Server design (guess the closest number to the average score game)

Multiplayer game (enter the number closest to the average) Design Client-Server design The client's side is responsible for sending numbers from the g

Adam Piszczek 0 Jun 29, 2022
The repository that hosts the code that teaches a reinforcement learning - based bot to play 2048

The repository that hosts the code that teaches a reinforcement learning - based bot (based on policy gradients method) to play 2048

Maxim Rud 1 Dec 16, 2021
An asynchronous Minecraft server wrapper written in python3 with asyncio

mark3 (WIP) A modern Minecraft server wrapper written in python3 with asyncio TODO Note: The order of the following checklist doesn't necessarily mean

Colin Andress 7 Jul 29, 2022
Dueling Platform for Competitive Programming. Learn through Games.

CP-Dueling Dueling Platform for Competitive Programming. Learn through Games. Setting Up Minimum Python version needed = 3.9.9 Install Virtualenv and

Bhavesh 3 Feb 07, 2022
This is a two player snake game

Trake This is a two player snake game How to play the game There is food and two players. You try to eat food to become large and gain points. Player

Grrub 1 Dec 19, 2021
A very bad wordle solver to help me solve the daily wordle

Wordle Solver A very bad wordle solver to help me solve the daily wordle on https://www.powerlanguage.co.uk/wordle/ TODO list take into account letter

Logan Anderson 4 Feb 03, 2022
Chess-commandline - Chess in the Command Line using the Chess Module Can detect Checkmates

chess-commandline Chess in the Command Line using the Chess Module Can detect Ch

Harry Hopkinson 1 Jan 10, 2022
A comprehensive, feature-rich, open source, and portable, collection of Solitaire games.

PySol Fan Club edition This is an open source and portable (Windows, Linux and Mac OS X) collection of Card Solitaire/Patience games written in Python

Shlomi Fish 368 Dec 28, 2022