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
CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts

CTF Wiki ไธญๆ–‡ English Welcome to CTF Wiki๏ผ CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts, origi

CTF Wiki 6.4k Jan 03, 2023
Description NerdQuest is a social site for creating events and/or meet ups based on games.

NerdQuest Description NerdQuest is a social site for creating events and/or meet

David Allen 1 Jul 11, 2022
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
Unknown Horizons official code repository

Unknown-Horizons based on Fifengine is no longer in development. We are porting it to Godot Engine. Please dont report any new bugs. Only bugfixes wil

Unknown Horizons 1.3k Dec 30, 2022
BUBBLE SHOOT - Pygame (python)

BUBBLE-SHOOT---Pygame BUBBLE SHOOT - Pygame (python) Bubbleshooter This is a Bubble shooter Game made with pygame. The arrow is controlled by the arro

ROBIN JONEY 1 Nov 12, 2021
This is a simple tic tac toe game that runs in the command line.

Tic Tac Toe Game This is a simple tic tac toe game that runs in the command line. Game Description: The game is made up of a square grid with 9 portio

Josias Aurel 2 Nov 12, 2022
A short non 100% Accurate Solar System in pygame

solar-system-pygame Controls UP/DOWN for Emulation Speed Control ESC for Pause/Unpause q to Quit c or ESC again to Continue LEFT CLICK to Add an orbit

LightCrimson 2 May 28, 2022
Simple wordle clone + solver + backtesting

Wordle clone + solver + backtesting I created something. Or rather, I found about this game last week and decided that one challenge a day wasn't goin

1 Feb 08, 2022
Open-source project written in the ursina engine, simulating the popular game Minecraft.

Voxelcraft is an open-source project written in the ursina engine, simulating the popular game Minecraft.

Calinescu Mihai 21 Oct 06, 2022
Wordle-helper: python script to help solving wordle game

wordle-helper This is a python script to help solving wordle game 5-letter-word-

MD Nur Ahmed 2 Feb 08, 2022
Yo-Snake - A blend of yolov5 and deepsnake

Yo-Snake A blend of yolov5 and deepsnake ็ป“ๅˆไบ†yolov5ๅ’ŒDeepsnakeๆจกๅž‹ Deepsnake ๆจกๅž‹ไปฃ็ ๆฏ”่พƒๅค

7 Apr 01, 2022
Recreation of HexGame in Pygame. More features will come soon !

Hex with Pygame Historical point of view What Are the rules of this game ? Some Strategies and tips The algorithm for the Win Other fonctionnalities W

4 Mar 26, 2022
This Country Hangman game written in Python.

country-name-guess-hangman-game This Country Hangman game written in Python. Visit https://example.com to play the game. Description How to play this

Aytaรง KaลŸoฤŸlu 1 Oct 30, 2021
Inflitator is a classic doom and wolfenstein3D like game made in Python, using the famous PYGAME module.

INFLITATOR Raycaster INFLITATOR is a raycaster made in Python3 with Pygame. It is a game built on top of a simple engine of the same name. An example

Zanvok Corporation 1 Jan 07, 2022
Dragon Quest IV (NDS) English + Party Chat Script Patcher for Japan ROM

Patches English script files from the US version of Dragon Quest IV for Nintendo DS and Android so they are rendered nicely when used with the Japan ROM. Addresses various issues caused by the Japan

Aric Huang 35 Dec 18, 2022
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
Utility for generating randomizer datapacks for minecraft.

Minecraft Rando Utility for generating randomizer datapacks for minecraft. At the moment, it randomizes the following: Loot tables (including block dr

2 Dec 02, 2021
A Tetris Game for programming education

Tetris Game ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐๅญฆ็ฟ’ใ‚’็›ฎ็š„ใจใ—ใŸใ€ใƒ–ใƒญใƒƒใ‚ฏใ‚’ๆ“ไฝœใ—ใฆใ‚นใ‚ณใ‚ขใ‚’็ซถใ†ใ‚ฒใƒผใƒ ใงใ™ใ€‚ FAQใฏใ“ใกใ‚‰ใ€‚ tutorialใฏใ“ใกใ‚‰ใ€‚ ๅฎŸ่กŒ็’ฐๅขƒๆบ–ๅ‚™ Mac็’ฐๅขƒ Finderโ†’Applicationโ†’Utilityโ†’Terminalใ‹ใ‚‰ใ€ใ‚ฟใƒผใƒŸใƒŠใƒซใ‚’่ตทๅ‹•ใ—ใฆไปฅไธ‹ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ€‚ # i

11 Dec 01, 2022
A pure python implementation of a solver for the popular game wordle.

A pure python implementation of a solver for the popular game wordle.

1 Oct 06, 2022
Official PyTorch implementation of NAC from the paper: Neural Auto-Curricula in Two-Player Zero-Sum Games.

NAC Official PyTorch implementation of NAC from the paper: Neural Auto-Curricula in Two-Player Zero-Sum Games. We release code for: Gradient based ora

Xidong Feng 19 Nov 11, 2022