Categorias
Programação Tutoriais

Faça chover no seu terminal com este script Python

Dizem que você “manja tudo” no terminal… só não faz chover. Veja como resolver este detalhe com um pequeno script Python — faça chover durante 3 segundos no seu terminal!

A tarefa deste pequeno script Python é simular chuva no seu terminal.
O meu exemplo foi rodado com o Python 2, em uma máquina Debian Linux. Sinta-se à vontade para experimentar em outras plataformas contudo.

O script, abaixo, joga 100 “gotas” aleatórias de “chuva” no seu terminal e é um ótimo exemplo do uso da função random no Python.

Se você não tiver um compilador ou interpretador Python disponível, no momento, experimente um destes compiladores/interpretadores online.
python como fazer chover ou nevar no terminal
Veja o que mais o script faz:

  • o script usa o caractere “/” para representar as gotas de chuva. Mas você pode escolher qualquer outro.
    Se você trocar o caractere “/” para ” ‘ “, o efeito vai parecer que está caindo neve no seu terminal;
  • ao final da chuva, uma mensagem é exibida centralizada na tela.
  • roda em qualquer tamanho de terminal;

Segue o código:

import curses
import random
import time

myscreen = curses.initscr()
curses.curs_set(0) # no cursor please 
HEIGHT, WIDTH = myscreen.getmaxyx() 
RAIN = '/' # altere aqui a aparencia da sua gota de chuva 
TIME = 10 

def make_it_rain(window, tot_time, msg, wait_time, num_drops):
    """
    window    :: a janela no curses 
    time      :: duracao da chuva
    msg       :: mensagem exibida ao final da chuva
    wait_time :: tempo de espera entre cada quadro
    num_drops :: quantidade de gotas
    """
    for _ in range(tot_time):
        for i in range(num_drops):
            x,y=random.randint(1, HEIGHT-2),random.randint(1,WIDTH-2)       
            window.addstr(x,y,RAIN)
        window.refresh()
        time.sleep(wait_time)
        window.erase()

    window.refresh()
    window.addstr(HEIGHT/2, int(WIDTH/2.7), msg)


if __name__ == '__main__':
    make_it_rain(myscreen, TIME, 'IT HAS STOPPED RAINING!', 0.2, 100)
    myscreen.getch()
    curses.endwin()

Eu gravei o meu script com o nome de chuva.py
Compile, com o Python 2:

python2 chuva.py

Referências

http://codegolf.stackexchange.com/questions/107545/its-raining-in-terminal.

Por Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.