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 é 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 .
Flappy Bird é um jogo que inicialmente desenvolvido para celular feito pelo programador vietnamita Dong Nguyen.
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 é 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 .
Uma alternativa à esse Pong é o PongC feito em C que pode acessado aqui .
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:
Para mais informações acesse o repositório .
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:
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? 😃