[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Inutilidade pública
From: |
Victor Leonardo |
Subject: |
Inutilidade pública |
Date: |
Wed, 15 Jun 2005 17:03:48 -0300 |
Olá pessoal!
Olha eu aí de novo com mais um daqueles devaneios! :)
Da primeira vez foi aquele screen saver tipo Matrix. Agora resolvi que
quero criar um joguinho de corrida em shell! (Ô falta do que fazer
hein!)
Costumo ficar pensando nessas coisas para exercitar um pouco a lógica
além de conhecer melhor as funcionalidades do shell.
Montei um troço meio tosco que lembra de longe um daqueles joguinhos
antigos de corrida da época do Atari. Só tem 2 carrinhos, sendo que o
carrinho vermelho é o carro do jogador que se move para a esquerda
(teclando o '4') e para a direita (teclando o '6'). O '5' ou qualquer
outra tecla serve para acelerar um pouco o joguinho.
É super monótono, mas que tiver a fim de dar uma melhorada ou ainda
sugerir algo mais bacana, pode ficar à vontade. A idéia é essa mesmo,
melhorar o produto final.
Quem se interessar, por favor, mande as alterações para a lista para a
gente trocar idéia.
Eu tenho o péssimo hábito de não comentar os meus códigos, mas já tô
montando um com comentários.
Valeu galera!
#!/bin/bash
trap "setterm -cursor on;stty sane;exit" 2 20
clear
setterm -cursor off
cor1="\e[38;41m"
cor2="\e[38;42m"
cor0="\e[0m"
adv=1
coluna2=$((RANDOM%($(tput cols)-40)+12))
mycar0=$(echo -e "$cor0 $cor1 _ $cor0")
mycar1=$(echo -e "$cor0 $cor1 _/ \_ $cor0")
mycar2=$(echo -e "[]<$cor1| |$cor0>[]")
mycar3=$(echo -e "$cor0 $cor1\\(^)/$cor0")
mycar4=$(echo -e "$cor0 $cor1 / - \\ $cor0")
mycar5=$(echo -e "[]<$cor1|_____|$cor0>[]")
otcar0=$(echo -e "$cor0 $cor2 _ $cor0")
otcar1=$(echo -e "$cor0 $cor2 _/ \_ $cor0")
otcar2=$(echo -e "[]<$cor2| |$cor0>[]")
otcar3=$(echo -e "$cor0 $cor2\\(^)/$cor0")
otcar4=$(echo -e "$cor0 $cor2 / - \\ $cor0")
otcar5=$(echo -e "[]<$cor2|_____|$cor0>[]")
linha=$(($(tput lines)-6))
coluna=$((RANDOM%($(tput cols)-40)+12))
pista ()
{
for i in `seq 1 $(($(tput lines) - 3))`; do
tput cup $i 10; echo -e "$cor1|/|$cor0"
tput cup $i $(($(tput cols)-10)); echo -e "$cor1|/|$cor0"
done
otcar
}
corrida ()
{
while true; do
pista
done
}
mycar ()
{
tput cup $linha $coluna;echo "$mycar0"
tput cup $(($linha +1)) $coluna; echo "$mycar1"
tput cup $(($linha +2)) $coluna; echo "$mycar2"
tput cup $(($linha +3)) $coluna; echo "$mycar3"
tput cup $(($linha +4)) $coluna; echo "$mycar4"
tput cup $(($linha +5)) $coluna; echo "$mycar5"
if [ $adv -le $linha ]; then
adv=$(expr $adv + 1)
else
adv=1
coluna2=$((RANDOM%($(tput cols)-40)+12))
fi
read -sn1 -t1 move
case $move in
4) coluna=$(($coluna - 5));move="";pista;;
6) coluna=$(($coluna + 5));move="";pista;;
*) coluna=$coluna;move="";pista
esac
}
otcar ()
{
linha2=$adv
clear
tput cup $linha2 $coluna2;echo "$otcar0"
tput cup $(($linha2 + 1)) $coluna2;echo "$otcar1"
tput cup $(($linha2 + 2)) $coluna2;echo "$otcar2"
tput cup $(($linha2 + 3)) $coluna2;echo "$otcar3"
tput cup $(($linha2 + 4)) $coluna2;echo "$otcar4"
tput cup $(($linha2 + 5)) $coluna2;echo "$otcar5"
mycar
}
corrida
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Inutilidade pública,
Victor Leonardo <=