Un jeu de carte classique sur terminal
La liste des consignes du sujet est disponible dans le TODO.md
L'installation de Python 3 est recommandé pour l'éxécution du script
- base64.b64decode, base64.b64encode
- json.loads, json.dumps, json.load, json.dump
- os.listdir, os.system
- platform.system
- random.shuffle
- sys.argv, sys.version_info
- time.sleep
Exécution du script: $ python main.py <arg>
Arguments | Valeur | Descriptions |
---|---|---|
-s <x> , --show-card <x> |
<x> n° de carte |
Affiche une carte du paquet |
-S , --show-all |
- | Affiche tout le paquet de cartes |
-r <x> , --show-rand-card <x> |
<x> n° de carte |
Affiche une carte du paquet mélangé |
-R , --show-rand-all |
- | Affiche toutes les cartes du paquet mélangé |
-g , --game |
<gameName> nom du jeu |
Lance un jeu de carte |
-p , --players |
"['name', ...]" liste de joueur(s) |
Insérer un ou plusieurs joueur(s) |
-h , --help |
- | Affiche le menu d'aide |
-d , --debug |
- | Exécution en mode debuger |
-v , --version |
- | Affiche la version du programme |
Le système de joueurs se fait directement en ligne de commande avec en arguments une liste de nom de joueur, de la manière suivante: $ python main.py -p "['nomJoueur', ...]"
, vous pouvez en ajouter tant que vous voulez, la limitte du nombre de joueurs dépendra du mode de jeu choisit.
Si vous entrer une liste contenant 4 joueurs alors que vous avez sélectionner un mode de jeu nécessitant seulement 2 joueurs, alors le jeu ne prendra que les 2 premiers de la liste. Et si il manque un ou plusieurs joueurs requis, alors le mode de jeu ne se lancera pas tout simplement.
Les noms des joueurs sont sauvegarder en Base64 directement dans le fichier players qui est dans le répertoire core/.
La configuration du programme se fait depuis le fichier config.json au format json, dans ce fichier vous pouvez configurer la langue, l'encodage des caractères ainsi que l'affichage du splash screen.
{
"encoding": "utf-8",
"language": "fr",
"splash": true
}
Vous pouvez le modifier directement (ce qui est peu conseiller) ou bien passer par le programme de configuration avec tous les choix des paramètres possible à l'option 6 du menu principal.
Les langues disponibles sont contenus dans le répertoire core/regions/. Il contient les traductions du programme, vous pouvez en ajouter d'autre si vous le souhaitez, vous n'aurez alors qu'à spécifier son label (exemple: fr.json
pour le français) en nom de fichier sous format json avec tous son contenus.
Si le fichier de configuration contient un label de langue non-reconnu, alors le programme adoptera la langue par défaut qui est l'anglais avec un encodage UTF-8.
Les jeux implémentés sont contenus dans le module games.py sous la forme d'objet et sont déclarés à la fin du main.py sous la forme d'un array
if __name__ == "__main__":
games = [ ClosedBattle, Solitary, PeckerLady, Chickenshit, Liar ]
# {...}
Nom du jeu | Jouable |
---|---|
La Bataille Fermée | Oui |
Le Solitaire | Non |
La Dame de Pique | Non |
Le Pouilleux (Mistigri) | Non |
Le Menteur | Non |
Code sous license GPL v3