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
Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators

Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators. It's also a suite of learning algorithms to train agents to operate in these enviro

Google 1.5k Dec 31, 2022
Useful tools for Minecraft worlds such as remove unused chunks, find blocks or entities.

Useful tools for Minecraft worlds such as removing unused chunks and finding blocks, command blocks or entities.

Rapha149 1 Feb 17, 2022
Krieg is a Python package for a general game framework.

Krieg Krieg is a Python package for a general game framework. It provides base classes for implementing simple games. Some example games are already i

Juho Kim 2 Jan 06, 2022
Command-line Hangman game

Hang-_an-game-python-build Hangman C command-line Hangman game. Compilation Navigate to the root of the repository from your Terminal and run make to

Hemant Choudhary 3 Jan 16, 2022
Atari2600 Training / Evaluation with RLlib

Training Atari2600 by Reinforcement Learning Train Atari2600 and check how it works! How to Setup You can setup packages on your local env. $ make set

Jinwoo Park (Curt) 1 Dec 12, 2021
Blackjack-Py is a terminal based game of blackjack within your terminal playing against CPU.

About Blackjack-Py is a terminal based game of blackjack within your terminal playing against CPU. Usage Clone the repo and run it with whatever pytho

Eccentrici 1 Dec 28, 2021
A very simple 3D maze game with ray tracing.

PytracingMaze MOST RECENT VERSION: Pytracing Maze.py Also, executable for Windows available on itch.io Simple ray tracing game in Python, based on my

FinFET 15 Dec 20, 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
PLVRA is a TUI (Terminal User Interface) implementation of wordle / termo in portuguese, written in Python

PLVRA is a TUI (Terminal User Interface) implementation of wordle / termo in portuguese, written in Python

Enzo Shiraishi 1 Feb 11, 2022
An all-inclusive Python framework for the Riot Games League of Legends API. We focus on making the data easy and fun to work with, while providing all the tools necessary to create a website or do data analysis.

Cassiopeia A Python adaptation of the Riot Games League of Legends API (https://developer.riotgames.com/). Cassiopeia is the sister library to Orianna

Meraki Analytics 473 Jan 07, 2023
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

cocos2d-x Win32 Others cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is

cocos2d 16.7k Jan 04, 2023
Flappy Bird clone utilizing facial recognition to move the

Flappy Face Flappy Bird clone utilizing facial recognition to move the "bird" How it works Flappy Face uses Facial Recognition to detect your face's p

Brady McDermott 1 Jan 11, 2022
A Neural Network based chess engine and GUI made with Python and Tensorflow/Keras.

Haxaw-Chess Haxaw: Haxaw is the Neural Network based chess engine made with Python and Tensorflow/Keras. Also uses the python-chess library. (WIP: Imp

Sarthak Bharadwaj 8 Dec 10, 2022
Snake (PyGame-based) port for Minecraft:Bedrock Edition using PEWSAPI

Snake_PEWSAPI Snake (PyGame-based) port for Minecraft:Bedrock Edition using PEWSAPI And we are not going to make any change to the original Snake sour

Azuki 1 Mar 17, 2022
A simple python script to pregenerate minecraft worlds.

mcloady mcloady is a lightweight python script used to pre-generate Minecraft terrain using MCRcon and carpet mod (optional). Inspired by Pre-Generati

5 Dec 08, 2021
A sprite ripper and converter for Com2uS' 2007 game Music World.

Music World Sprite Dumper This repository contains a python script reads an UNCOMPRESSED Music World pxo file and attempts to dump sprites from it. Th

Buu342 1 Mar 16, 2022
N-Queens game made using pygame library

N-Queens N-Queens game using pygame for AIML201 Testing: 1. git clone https://github.com/python-game-dev/N-Queens.git 2. cd N-Queens 3. python main.py

1 Sep 24, 2021
The DOS game from the 80s re-written in Python from Scratch!

Drugwars The DOS game from the 80s re-written in Python from Scratch! Play in your browser Here Installation Recommended: Using pip pip3 install drugw

Max Bridgland 45 Jan 03, 2023
DΓ©couvrez CubeCraft Launcher, une application uniquement codΓ© en Python et en Batch

DΓ©couvrez CubeCraft Launcher, une application uniquement codΓ© en Python et en Batch. GrΓ’ce Γ  son interface graphique facile et intuitive, vous pouvez vous retrouver facilement.

1 May 21, 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