Script Python faz chover 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.

Veja o que mais o script faz:

  • usa o caractere “/” para representar as gotas de chuva. Mas você pode escolher qualquer outro.
    Se você trocar o caractere “/” para ” ‘ “, 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.
  • o código contém docstrings para descrever os parâmetros da função principal.

Segue o código:


import curses
import random
import time

myscreen = curses.initscr()
curses.curs_set(0) # suprime exibição do cursor
HEIGHT, WIDTH = myscreen.getmaxyx() 
RAIN = '/' # altere aqui a aparência da gota de chuva
TIME = 10 

def make_it_rain(window, tot_time, msg, wait_time, num_drops):
    """
    window    :: curses window 
    time      :: Tempo total da chuva
    msg       :: Mensagem exibida ao final da chuva
    wait_time :: Tempo entre cada tela
    num_drops :: Numero de gotas de chuva em cada cena
    """
    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, "A CHUVA ACABOU!", 0.1, 60)
    myscreen.getch()
    curses.endwin()

Eu gravei o meu script com o nome de chuva.py
Execute o código com o Python 2:

python2 chuva.py

Referências

http://codegolf.stackexchange.com/questions/107545/its-raining-in-terminal.
https://elias.praciano.com/2017/01/faca-chover-no-seu-terminal-com-este-script-python/.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Deixe uma resposta