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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Game em Shell


From: Julio C. Neves
Subject: Re: [shell-script] Game em Shell
Date: Tue, 5 Aug 2014 13:23:24 -0300

Usei a sua dica e montei uma rotinazinha. Ainda falta muita coisa (quebra de linha e backspace, p.ex), mas tenho dentista e depois mais um monte de coisas. Deixo aí minha contribuição para vcs melhorarem e postarem.

function LeChar
{
    stty -echo
    stty raw
    eval $1=$(dd bs=3 count=1 2>/dev/null)
    stty cooked
    stty echo
}
clear
Y=$(($(tput cols)/2))
X=$(($(tput lines)/2))
tput cup $X $Y
while true
do
    LeChar Char
    [[ -z "$Char" ]] && exit
    (( ${#Char} > 1 )) && {                   # setas
        Char=$(sed 's/\(.\)\+/\1/' <<< "$Char")
        case $Char in
            A) let X--   ;;
            B) let X++   ;;
            C) let Y++   ;;
            D) let Y--   ;;
            *) echo $Char
        esac
        tput cup $X $Y
        continue
    }
    printf $Char
    let Y++
done

O backspace é só fazer:
let Y--
tput ich 1

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 11 a 15/08
São Paulo 4Linux 24 a 28/11
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 5 de agosto de 2014 11:21, address@hidden [shell-script] <address@hidden> escreveu:
 

Tem razão.


O problema com UTF-8 realmente é algo recorrente.

Mas experimenta colocar trocar:

$(dd bs=1 count=1 2>/dev/null)

por:

$(dd bs=3 count=1 2>/dev/null | sed 's/\(.\)\+/\1/')

Essa foi uma dica que o Aurelio me deu em outro contexto.
No exemplo que mandei funcionou, veja se acaso no seu dá resultado tb

[]'s
Itamar



reply via email to

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