game-tools est un petit module C++ contenant des sous-programmes utiles pour développer des petits jeux s'exécutant dans un terminal.

Related tags

CLI game-tools-univ
Overview

game-tools-universel

!!! LIEN ENTRE game-tool-linux et game-tools de Patrick Etcheverry

game-tools est un petit module C++ contenant des sous-programmes utiles pour développer des petits jeux s'exécutant dans un terminal. Ce module met à disposition des fonctionnalités simples permettant d'effacer le terminal, de mettre le programme en pause, d'afficher des éléments en couleur ou encore de générer un nombre entier aléatoire.

Open Source? Yes!

Magic

Installation

Télécharger les fichiers game-tools.h et game-tools.cpp présents dans ce dépôt puis ajoutez les à votre code.

Exemple

En supposant que :

  • le code de votre jeu se trouve dans le fichier main.cpp,
  • les fichiers game-tools.h et game-tools.cpp se trouvent dans le même répertoire que le fichier main.cpp,

vous pouvez intégrer les fonctionnalités du module game-tools dans votre code via une directive include :

// . Importation Des Bibliothèques Nécessaires.
// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"

// .  ==========================================================================
// .                                  MAIN                                      
// .  ==========================================================================

int main(void) {
    /**\
      * @goal                           :  Montrer comment utiliser la fonction 'effacer'
      * @author :                       :  T.Planche
    \**/

    // ! Définition Variables
    unsigned short int nombreAleatoire;

    //! Traitement

    // Générer un nombre aléatoire compris entre 0 et 100
    nombreAleatoire = random(0, 100);

    // Afficher le nombre aléatoire
    cout << "Un entier aleatoire compris entre 0 et 100 : " << nombreAleatoire << endl;

    return 0;
}

Fichier de démo

Si vous voulez tester le module game-tools vous pouvez également récupérer le fichier main.cpp : il contient un petit programme de démonstration qui illustre l'usage des différentes fonctionnalités proposées par game-tools.

Utilisation

Générer un nombre entier aléatoire

La fonction random permet de générer un nombre entier compris dans un intervalle défini par une valeur minimale et une valeur maximale.

Le code ci-dessous montre un exemple d'usage de la fonction random pour générer un nombre entier compris entre 0 et 100.

// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"


int main() {
   unsigned short int nombreAleatoire;

   // Générer un nombre aléatoire compris entre 0 et 100
   nombreAleatoire = random(0, 100);

   // Afficher le nombre aléatoire
   cout << "Un entier aleatoire compris entre 0 et 100 : " << nombreAleatoire << endl;

  return 0;
}

Générer un nombre entier aléatoire

Manipuler des couleurs

Le module game-tools met à disposition un type Couleur qui peut être utilisé pour déclarer des variables représentant des couleurs :

// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"


int main(void)
{
   Couleur maCouleurPreferee; // une variable de type Couleur

   return 0;
}

Les variables de type Couleur peuvent prendre les valeurs suivantes bleu, vert, cyan, rouge, violet, jaune ou blanc :

using namespace std; int main(void) { Couleur maCouleurPreferee; maCouleurPreferee = bleu; return 0; } ">
#include "game-tools.h"
#include <iostream>
using namespace std;

int main(void) {
   Couleur maCouleurPreferee;
   maCouleurPreferee = bleu;

   return 0;
}

Afficher du texte en couleur

Le module game-tools propose un sous-programme afficherTexteEnCouleur qui permet d'afficher une chaîne de caractères (ou un caractère) dans une couleur particulière. Cette couleur particulière sera de type Couleur (voir section précédente). Suite à l'affichage de la chaîne il est éventuellement possible d'ajouter un saut de ligne (voir exemple dans le code ci-dessous).

Le code ci-dessous donne quelques exemples d'usage du sous-programme afficherTexteEnCouleur :

#include <iostream>
#include "game-tools.h"


// .  ==========================================================================
// .                                  MAIN                                      
// .  ==========================================================================

int main(void) {
    /**\
      * @goal                           :  Montrer comment utiliser la fonction 'afficherNombreEnCouleur'
      * @author :                       :  T.Planche
    \**/

    // Afficher des textes en couleur
    cout << "** Du texte en couleur **" << endl;

    /* Affiche le mot "Tous" en bleu SANS retour à la ligne
       (car utilisation de la valeur false en dernier paramètre) */
    afficherTexteEnCouleur("Tous ", bleu, false);

    afficherTexteEnCouleur("les ", vert, false);
    afficherTexteEnCouleur("programmeurs ", cyan, false);
    afficherTexteEnCouleur("sont ", rouge, false);
    afficherTexteEnCouleur("des ", violet, false);

    /* Affiche le mot "optimistes" en jaune AVEC retour à la ligne
       (car utilisation de la valeur true en dernier paramètre) */
    afficherTexteEnCouleur("optimistes", jaune, true);

    return 0;
}

Afficher un texte en couleur

Remarques

  • La procédure afficherTexteEnCouleur peut également afficher de simples caractères en couleur. Par exemple :
afficherTexteEnCouleur('A', cyan, false); // Affiche le caractère A en bleu cyan.
  • Par défaut, aucun retour à la ligne n'est ajouté suite à l'affichage du texte. Ainsi, lorsqu'aucun retour à la ligne n'est nécessaire, on peut aussi bien écrire :
afficherTexteEnCouleur("Tous ", bleu, false);

que :

afficherTexteEnCouleur("Tous ", bleu);

Afficher des nombres en couleur

La procédure afficherNombreEnCouleur permet d'afficher des nombres avec une couleur particulière. Son fonctionnement est similaire à celui de la procédure afficherTexteEnCouleur. Les couleurs utilisées devront être de type Couleur (voir section correspondante ci-dessus).

Les nombres à afficher en couleur peuvent être des nombres entiers ou des nombres à virgule. Suite à l'affichage d'un nombre il est également possible d'ajouter un saut de ligne (voir exemple dans le code ci-dessous).

Le code ci-dessous donne quelques exemples d'usage du sous-programme afficherNombreEnCouleur :

// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"


// .  ==========================================================================
// .                                  MAIN                                      
// .  ==========================================================================

int main(void) {
    /**\
      * @goal                           :  Montrer comment utiliser la fonction 'afficherNombreEnCouleur'
      * @author :                       :  T.Planche
    \**/

    // Afficher des nombres en couleur
    cout << "** Des nombres en couleur **" << endl;

    /* Affiche le nombre 5 en bleu AVEC retour à la ligne
       (car utilisation de la valeur true en dernier paramètre) */
    afficherNombreEnCouleur(5, bleu, true);

    afficherNombreEnCouleur(4.5, vert, true);
    afficherNombreEnCouleur(3, cyan, true);
    afficherNombreEnCouleur(2.5, rouge, true);
    afficherNombreEnCouleur(1, violet, true);
    afficherNombreEnCouleur(0.5, jaune, true);
    afficherNombreEnCouleur(0, blanc, true);
    cout << endl;

    return 0;
}

Afficher des nombres en couleur

Remarque

Par défaut, aucun retour à la ligne n'est ajouté suite à l'affichage du nombre. Ainsi, lorsqu'aucun retour à la ligne n'est nécessaire, on peut aussi bien écrire :

afficherNombreEnCouleur(5, bleu, false);

que :

afficherNombreEnCouleur(5, bleu);

Mettre en pause

La procédure pause permet de stopper l'exécution du code durant un temps déterminé ou jusqu'à ce que l'utilisateur appuie sur une touche.

En appelant la procédure pause il est possible de spécifier une durée de pause exprimée en secondes. Si aucune durée n'est spécifiée, la pause perdure jusqu'à ce que l'utilisateur appuie sur une touche.

Le code ci-dessous donne quelques exemples d'usage de la procédure pause :

code mis en pause jusqu'à ce que l'utilisateur appuie sur une touche */ pause(); afficherTexteEnCouleur("*", bleu, true); pause(1); // Exécution mise en pause pendant 1 seconde. afficherTexteEnCouleur("**", vert, true); pause(1); afficherTexteEnCouleur("***", cyan, true); pause(1); afficherTexteEnCouleur("****", rouge, true); pause(1); afficherTexteEnCouleur("******", jaune, true); cout << endl; return 0; } ">
// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"


// .  ==========================================================================
// .                                  MAIN                                      
// .  ==========================================================================

int main(void) {
    /**\
      * @goal                           :  Montrer comment utiliser la fonction 'pause'
      * @author :                       :  T.Planche
    \**/

    // Afficher un triangle coloré de manière progressive
    cout << "Appuyer sur Entree pour afficher progressivement un triangle en couleur..." << endl;

    /* Pas de durée spécifiée :
       -> code mis en pause jusqu'à ce que l'utilisateur appuie sur une touche */
    pause();  

    afficherTexteEnCouleur("*", bleu, true);
    pause(1); // Exécution mise en pause pendant 1 seconde.

    afficherTexteEnCouleur("**", vert, true);
    pause(1);
    afficherTexteEnCouleur("***", cyan, true);
    pause(1);
    afficherTexteEnCouleur("****", rouge, true);
    pause(1);
    afficherTexteEnCouleur("******", jaune, true);
    cout << endl;

    return 0;
}

Faire des pauses

Effacer le contenu du terminal

La procédure effacer permet d'effacer le contenu affiché dans le terminal. Le code ci-dessous donne un exemple d'utilisation de cette fonctionnalité :

<--- ON EFFACE LE CONTENU DU TERMINAL AVANT D'AFFICHER LE SECOND TRIANGLE // Afficher le triangle coloré de manière progressive et en sens inverse afficherTexteEnCouleur("******", jaune, true); pause(1); afficherTexteEnCouleur("****", rouge, true); pause(1); afficherTexteEnCouleur("***", cyan, true); pause(1); afficherTexteEnCouleur("**", vert, true); pause(1); afficherTexteEnCouleur("*", bleu, true); return 0; } ">
// . Importation Des Bibliothèques Nécessaires.
#include <iostream>
#include "game-tools.h"


// .  ==========================================================================
// .                                  MAIN                                      
// .  ==========================================================================

int main(void) {
    /**\
      * @goal                           :  Montrer comment utiliser la fonction 'effacer'
      * @author :                       :  T.Planche
    \**/

    // Afficher un triangle coloré de manière progressive
    pause();
    cout << "** Un triangle en couleur qui s'affiche progressivement **" << endl;
    afficherTexteEnCouleur("*", bleu, true);
    pause(1);
    afficherTexteEnCouleur("**", vert, true);
    pause(1);
    afficherTexteEnCouleur("***", cyan, true);
    pause(1);
    afficherTexteEnCouleur("****", rouge, true);
    pause(1);
    afficherTexteEnCouleur("******", jaune, true);

    // Mettre en pause le programme
    cout << endl;
    cout << "Appuyer sur Entree pour effacer l'ecran et afficher le triangle en sens inverse...";
    pause();

    effacer(); // <--- ON EFFACE LE CONTENU DU TERMINAL AVANT D'AFFICHER LE SECOND TRIANGLE

    // Afficher le triangle coloré de manière progressive et en sens inverse
    afficherTexteEnCouleur("******", jaune, true);
    pause(1);
    afficherTexteEnCouleur("****", rouge, true);
    pause(1);
    afficherTexteEnCouleur("***", cyan, true);
    pause(1);
    afficherTexteEnCouleur("**", vert, true);
    pause(1);
    afficherTexteEnCouleur("*", bleu, true);

    return 0;
}

Effacer l'écran

Owner
Tom Planche
Young French Programmer
Tom Planche
Spitfire is a basic terminal language that can exicute code via the terminal.

Spitfire is a basic terminal language that can exicute code via the terminal. It is easy to learn and runs fast, considering that its just a 300 line c++ file.

jhomas tefferson 0 Nov 18, 2021
Simple Unix Terminal Football Manager-like game.

Superleage 2020/2021 It is a "work in progress" simple game based on some mechanics of Football Manager. The game is in a very early stage of Developm

sewe2000 2 Oct 14, 2021
Small header only C++ library for writing multiplatform terminal applications

Terminal Terminal is small header only library for writing terminal applications. It works on Linux, macOS and Windows (in the native cmd.exe console)

Jupyter Xeus 208 Jun 30, 2022
:computer: C++ Functional Terminal User Interface. :heart:

FTXUI Functional Terminal (X) User interface A simple C++ library for terminal based user interface. Demo: Feature Functional style. Inspired by [1] a

Arthur Sonzogni 3.2k Jun 23, 2022
A little UNIX-inspired terminal application for the Numworks Calculator (not using escher).

L.E. Terminal (let for short) is a little UNIX-inspired terminal for the Numworks Calculator.

Cacahuète Sans Sel 18 Apr 27, 2022
Draw sequence diagram in text from terminal.

sequence-diagram-cli Draw seqence diagram from terminal.

null 42 Feb 28, 2022
Terminal calculator made for programmers working with multiple number representations, sizes, and overall close to the bits

Programmer calculator The programmer calculator is a simple terminal tool designed to give maximum efficiency and flexibility to the programmer workin

romes 164 Jun 22, 2022
X terminal emulator rendering through OpenGL ES Compute Shaders

Zutty is a terminal emulator for the X Window System, functionally similar to several other X terminal emulators such as xterm, rxvt and countless others

Tom Szilagyi 212 Jun 22, 2022
The new Windows Terminal and the original Windows console host, all in the same place!

The new Windows Terminal and the original Windows console host, all in the same place!

Microsoft 83.8k Jun 27, 2022
n³ The unorthodox terminal file manager

n³ The unorthodox terminal file manager

Mischievous Meerkat 14.3k Jun 28, 2022
Graphs the activity of a chia harvester in a linux terminal.

Chia Harvest Graph Monitor for Chia Harvesting Introduction The chiaharvestgraph tool will graph Chia Harvesting activity in a linux terminal. Use a 2

Bram Stolk 219 Jun 3, 2022
a simple to use linux terminal

a simple to use linux terminal

notaweeb 7 Feb 17, 2022
Collection of human friendly terminal interface for git.

A collection of human friendly terminal user interface for git.

Arthur Sonzogni 61 Jun 26, 2022
Simple benchmark for terminal output

TermBench This is a simple timing utility you can use to see how slow your terminal program is at parsing escape-sequence-coded color output. It can b

Casey Muratori 171 May 30, 2022
tinytetris - 80x23 terminal tetris

tinytetris - 80x23 terminal tetris

Conor Taylor 1.8k Jul 2, 2022
Contour - A modern C++ Terminal Emulator

contour is a modern terminal emulator, for everyday use. It is aiming for power users with a modern feature mindset.

Contour Terminal Emulator 873 Jun 26, 2022
A C, C++ and Rust library to draw graphics with pixels in the terminal

A library to draw graphics with pixels in the terminal Who needs a GUI when you have a terminal ? Building To generate libpluto.a, run: $ make To ins

null 67 Jun 15, 2022
📺🗿 Terminal graphics for the 21st century.

???? Chafa is a command-line utility that converts all kinds of images, including animated GIFs, into sixel or ANSI/Unicode character output that can be displayed in a terminal.

Hans Petter Jansson 1.4k Jun 24, 2022
timg - Terminal Image and Video Viewer

timg - Terminal Image and Video Viewer

Henner Zeller 1.2k Jun 27, 2022