Conheça 4 Games e Animação para Terminal feito com C++

Diversão, aprendizado e referência de estudos.


Aqui no blog o que mais tem é conteúdo sobre gráficos para terminal(TUI, Terminal User Interface) e linha de comando, esse blog faz jus ao nome 😎 .

E hoje vamos dar uma incrementada nesse conteúdo indicando alguns games e animações no terminal que servem para propostas como: diversão, aprender e estudar o código fonte.

E nesse caso, vamos indicar 4 softwares escritos em C++ que possuem um código de fácil entendimento.

Vamos à essas 4 dicas!


2048.cpp

2048.cpp


2048 é um game de raciocínio criado em março de 2014 pelo desenvolvedor italiano Gabriele Cirulli, em que o objetivo é deslizar peças numeradas em uma grade, combiná-las e criar um azulejo com o número 2048.

2048.cpp é a versão desse game escrita em C++ . Para compilar você precisará das seguintes ferramentas:

Após possuir as dependências em tempo de compilação, agora basta clonar, construir e instalar com os seguintes comandos:

git clone https://github.com/plibither8/2048.cpp
cd 2048.cpp
mkdir build && cd build
cmake ..
make

Após gerado o binário, você já pode jogá-lo! Basta rodar:

./2048

Na primeira tela exibida escolha a opção desejada, ou seja, para um novo game tecle o número 1 e em seguida pressione Enter .

   /\\\\\\\\\          /\\\\\\\                /\\\         /\\\\\\\\\
  /\\\///////\\\      /\\\/////\\\            /\\\\\       /\\\///////\\\
  \///      \//\\\    /\\\    \//\\\         /\\\/\\\      \/\\\     \/\\\
             /\\\/    \/\\\     \/\\\       /\\\/\/\\\      \///\\\\\\\\\/
           /\\\//      \/\\\     \/\\\     /\\\/  \/\\\       /\\\///////\\\
         /\\\//         \/\\\     \/\\\   /\\\\\\\\\\\\\\\\   /\\\      \//\\\
        /\\\/            \//\\\    /\\\   \///////////\\\//   \//\\\      /\\\
        /\\\\\\\\\\\\\\\   \///\\\\\\\/              \/\\\      \///\\\\\\\\\/
        \///////////////      \///////                \///         \/////////
  


  Welcome to 2048!

        1. Play a New Game
        2. Continue Previous Game
        3. View Highscores and Statistics
        4. Exit

  Enter Choice: 

Em seguida defina a quantidade de linhas e colunas do game que representa, de alguma forma, o nível de dificuldade, o valor mínimo é 3(três) . Por exemplo, tecle 4(zero) e em seguida pressione Enter e o jogo iniciará:

  (NOTE: Scores and statistics will be saved only for the 4x4 gameboard)
  Enter gameboard size - (Enter '0' to go back): 

O mini tutorial de uso se encontra na própria tela do games:

  ┌───────────────────────────┐
  │ SCORE:                 96 │
  │ BEST SCORE:            96 │
  │ MOVES:                 20 │
  └───────────────────────────┘
 
  ┌──────┬──────┬──────┬──────┐
  │    2 │   16 │    4 │      │
  ├──────┼──────┼──────┼──────┤
  │   16 │    4 │      │      │
  ├──────┼──────┼──────┼──────┤
  │    4 │      │    2 │      │
  ├──────┼──────┼──────┼──────┤
  │    2 │      │      │      │
  └──────┴──────┴──────┴──────┘

  W or K or ↑ => Up
  A or H or ← => Left
  S or J or ↓ => Down
  D or L or → => Right
  Z or P => Save
  
  Press the keys to start and continue.

Se quiser sair do game tecle Ctrl + C .

Para instalar basta mover esse binário para algum caminho contido na sua variável $PATH, exemplo:

sudo install -v 2048 /usr/local/bin

Depois remova o diretório clonado:

cd ../.. # Se ainda estiver dentro de build/
rm -rf 2048.cpp

E em seguida quando quiser jogá-lo só rodar o comando 2048 no terminal .

Há uma opçaõ de compilar com o Meson para mais informações consulte o repositório .

Conheça também outra alternativa ao 2048.cpp um 2048 feito em C: 2048-in-terminal .


Ascii Bird

Flappy Bird é um jogo que inicialmente desenvolvido para celular feito pelo programador vietnamita Dong Nguyen.

Ascii Bird

O game é um side-scroller onde o jogador controla um pássaro, tentando voar entre colunas de canos verdes sem bater neles.

Ascii Bird é um game baseado em Flappy Bird feito com a biblioteca NCURSES criado usando somente os caracteres da tabela ASCII .

Você precisará das seguintes ferramentas para conseguir construir no seu sistema:

Após isso rode os comandos:

git clone https://github.com/hamikm/AsciiBird.git
cd AsciiBird
make

E para testar, basta rodar: ./flap .

O jogo será carregado automaticamente após a animação similiar abaixo:

                   ___ _                       ___ _        _
                  | __| |__ _ _ __ _ __ _  _  | _ |_)_ _ __| |
                  | _|| / _` | '_ \ '_ \ || | | _ \ | '_/ _` |
                  |_| |_\__,_| .__/ .__/\_, | |___/_|_| \__,_|
                             |_|  |_|   |__/


                              Press <up> to flap!


 [==============================================================         ]

Após isso será automaticamente iniciado, use as teclas direcionais para cima e para baixo para movimentar o player.

Para instalar basta mover esse binário para algum caminho contido na sua variável $PATH, exemplo:

sudo install -v flap /usr/local/bin

E quando quiser jogar rode: flap no terminal . Para mais informações consulte o repositório .


Pong

Pong é um jogo esportivo bidimensional que simula o tênis de mesa . O jogador controla uma raquete no jogo movendo-a verticalmente na tela.

Eles podem competir contra outro jogador controlando uma segunda raquete no lado oposto. Os jogadores usam as pás para bater uma bola para frente e para trás. O objetivo é que cada jogador alcance onze pontos antes do adversário; pontos são ganhos quando um não consegue devolver a bola para o outro.

Pong foi fabricado pela Atari e lançado originalmente em 1972. Foi um dos primeiros videogames de arcade de sucesso no mundo.

Existem diversos remakes de Pong, um deles é o Pong escrito em C++ e NCURSES .

Para instalar, lembre-se de ter as dependências de construção: Git, g++ e GNU Make .

Para instalar, rode:

git clone https://github.com/zacharyvincze/Pong
cd Pong
sed -i 's/-lncurses/-lncurses -ltinfo/g' Makefile
make

Após compilado, rode: ./pong e utilize as teclas w, a, s e d para o player 1 e , , e para o player 2 para jogar . Para mais informações acesse o repositório .

Pong C++

Uma alternativa à esse Pong é o PongC feito em C que pode acessado aqui .


ASCII Rain

ASCII Rain é uma animação de chuva no terminal.

Você irá perguntar:

— Pra que diabos eu quero ficar vendo chuva no terminal ?

Bom, realmente essa é uma questão legítima, mas existe uma cultura chamada: unixporn que gostam de utilizar esses recursos para melhorar seu rice(termo utilizado para representar a combinação de customizações do ambiente desktop de forma diferenciada).

Nós possuímos alguns artigos nesse sentido e para mais informações clique nesse link .

Se você quiser reproduzir essa chuva no terminal, instale as dependências(git,gcc e make). E depois clone:

git clone https://github.com/nkleemann/ascii-rain

Compile:

gcc rain.c -o rain -lncurses -ltinfo

Rode e/ou instale:

./rain
sudo install -v rain /usr/local/bin

Resultado:

ASCII Rain

Para mais informações acesse o repositório .


Dicas de instalação

Vocês notaram que quase todos os aplicativos instalamos no diretório do sistema: /usr/local/bin e para isso precisamos usar o sudo .

Apesar de haver isso em diversos tutoriais nesse blog incluindo esse artigo, eu particularmente não recomendo isso por questões de segurança e organização .

Instale-os somente para seu usuário, ou seja, isolando um pouco mais.

Para todos os casos faça o seguinte:

  • Crie um sub diretório no seu diretório local:
mkdir -p ~/.local/bin

Em seguida inclua esse diretório na sua variável $PATH:

Para Bash

echo '${HOME}/.local/bin:${PATH}' >> ~/.bashrc

Feche e depois abra seu terminal ou somente rode os comandos abaixo:

source ~/.bashrc
exec $SHELL

E toda vez que precisar instalar um aplicativo de terceiros use esse diretório, exemplo:

install -v app ~/.local/bin

E instantaneamente o comando já estrá disponível no seu terminal.

Melhor, né não? 😃



cpp cppdaily terminal


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!