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/.