-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNatalComNeve.sh
More file actions
135 lines (131 loc) · 3.55 KB
/
NatalComNeve.sh
File metadata and controls
135 lines (131 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/bash
# Versão 2.0
trap "tput reset; tput cnorm; exit" 2
function MontaArr
{
# Monta um array Arr[$Lin$Col] (ambas com zeros à esqueda)
#+ com o caracteres que está naquela posição
local i
local l
for ((i=0; i<${#3}; i++))
{
l="${3:i:1}"
Arr[$(printf "$1%02i" $[$2+$i])]="$l:$4"
}
}
NomeIni=(Marília Pop) # Troque pelo seu Nome para enviar a amigos
# Preparando nome para escrever no canto inferior direito da tela
for ((Pos=0; ;Pos++))
{
s0=${NomeIni[0]:$Pos:1}
s0=${s0:- }
s1=${NomeIni[1]:$Pos:1}
s1=${s1:- }
[[ $s0 == ' ' && $s1 == ' ' ]] && break
Nome="$Nome$s0 $s1"
}
# UltLin="São os votos de "$Nome" para você e sua família"
# UltCol=$[($(tput cols) - ${#UltLin}) / 2]
# Montando a Árvore
ColLogo=$[$(tput cols)-4]
LinLogo=$[$(tput lines)-$Pos-1]
LogoTrab=0
tput civis
lin=2
col=$(($(tput cols) / 2))
ccnev=$[col - 13]
c=$((col-1))
est=$((c-2))
cor=0
tput setab 0; clear
tput setaf 2; tput bold
for ((i=1; i<20; i+=2))
{
tput cup $lin $col
for ((j=1; j<=i; j++))
{
echo -n \*
MontaArr $lin $[col+j] \* 2
}
let lin++
let col--
}
tput sgr0; tput setab 0; tput setaf 3; tput bold
for ((i=1; i<=2; i++))
{
MontaArr $lin $[c+1] mWm 3
tput cup $((lin++)) $c
echo mWm
}
tput setab 0; tput setaf 7; tput bold
tput cup $lin $((c - 4)); echo BOAS FESTAS
MontaArr $lin $[c-3] "BOAS FESTAS" 7
tput cup $((lin + 1)) $((c - 11)); echo E muito suSHELLso em 2011
MontaArr $((lin + 1)) $((c - 10)) "E muito suSHELLso em 2011" 7
# tput cup $((lin + 3)) $UltCol; echo $UltLin
let c++
k=1
# Pendurando as bolas (da árvore, claro!)
while true
do
for ((i=1; i<=35; i++))
{
# Apagando a bola que foi ligada há 35 rodadas atras
[ $k -gt 1 ] && {
tput setab 0; tput setaf 2; tput bold
tput cup ${linha[$[k-1]$i]} ${coluna[$[k-1]$i]}; echo \*
MontaArr ${linha[$[k-1]$i]} ${coluna[$[k-1]$i]} \* 2
unset linha[$[k-1]$i]; unset coluna[$[k-1]$i] # Mantenha limpo o vetor
}
li=$((RANDOM % 9 + 3))
ini=$((c-li+2))
fim=$((c+li+2))
co=$((RANDOM % (li-2) * 2 + 1 + ini))
tput setab 0; tput setaf $cor; tput bold # Troca cor das bolas
tput cup $li $co
echo o
linha[$k$i]=$li
coluna[$k$i]=$co
MontaArr $li $co o $cor
sh=1
for l in S H E L L
do
tput cup $((lin+1)) $((c-3+sh))
echo $l
let sh++
done
# Olha a neve
for ((n=0; n<15; n++))
{
[ "${nev[n]}" ] || {
nev[n]=$[$RANDOM % 12 + 1]$(printf "%02i" $[RANDOM % 28 + ccnev])
}
lnev=$[nev[n] / 100]
cnev=$[nev[n] % 100]
idx=$lnev$(printf "%02i" $cnev)
Antigo=${Arr[10#$idx-100]%:*}
Antigo=${Antigo:-' '}
CorAnt=${Arr[10#$idx-100]#*:}
CorAnt=${CorAnt:-0}
tput setab 0
tput setaf $CorAnt
tput cup $[lnev-1] $[cnev-1]
echo "$Antigo"
tput setab 0; tput setaf 7; tput cup $lnev $[cnev-1]; echo .
let lnev++
nev[n]=$lnev$(printf "%02i" $cnev)
[ $lnev -gt 16 ] && {
tput setab 0; tput setaf 7; tput cup $[lnev-1] $[cnev-1]; echo " "
unset nev[n]
}
tput setaf $[n%7+1]
tput cup $[LinLogo+LogoTrab] $ColLogo
echo "${Nome:$[LogoTrab*3]:3}"
(( LogoTrab++ == Pos-1)) && {
LogoTrab=0
}
}
cor=$(((cor+1)%8))
}
k=$((k % 2 + 1))
done