shell-script-pt
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]