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

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

Re: [shell-script] Shimon - Simon/Genius no Bash


From: Julio C. Neves
Subject: Re: [shell-script] Shimon - Simon/Genius no Bash
Date: Thu, 21 Mar 2019 16:15:34 -0300

Esta ficando legal...

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» Conheça nosso portal educacional e estude conosco: 
Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.




Em qui, 21 de mar de 2019 às 14:12, Maik Alberto address@hidden [shell-script] <address@hidden> escreveu:
 

Aproveitando o gancho do tput pelo Julio, dias atrás tava brincando de tentar reproduzir aquele jogo  Genius ou Simon no terminal, ao tentar dar um pouco mais de vida ao script, me deparei com o tput, agora depois da aula enviada no último e-mail, vai dar pra aprender melhor, mas segue o código para compartilhamento: https://github.com/m41k/shimon. Source abaixo: 

#!/bin/bash
#--------------------------------------#
# SHIMON - SIMON - GENIUS(BR) FOR BASH #
# CREATED BY: address@hidden #
#--------------------------------------#

A=$(tput setaf 1)
B=$(tput setaf 2)
C=$(tput setaf 3)
D=$(tput setaf 4)
N=$(tput setaf 7)

setas(){
clear
cat <<EOM
                     $1.
                   .:;:.
                 .:;;;;;:.
                   ;;;;;
                   ;;;;;
                   ;;;;;
                   ;;;;;
                   ;:;;;
$2     .                            $3.
$2   .;;............    $3............;;.
$2 .;;;;::::::::::::    $3::::::::::::;;;;.
$2  ':;;::::::::::::    $3::::::::::::;;:'
$2    ':                            $3:'
$4
                   ;;;;;
                   ;;;;;
                   ;;;;;
                   ;;;;;
                   ;;;;;
                 ..;;;;;..
                  ':::::'
                    ':'

${N}
EOM
}

cima(){
setas "${A}" "${N}" "${N}" "${N}"
}
esquerda(){
setas "${N}" "${B}" "${N}" "${N}"
}
direita(){
setas "${N}" "${N}" "${C}" "${N}"
}
baixo(){
setas "${N}" "${N}" "${N}" "${D}"
}
nulo(){
setas "${N}" "${N}" "${N}" "${N}"
}
p=0;
i=1;
SETAS=( " " cima baixo direita esquerda )
TECLA=( $'\e[F' $'\e[A' $'\e[B' $'\e[C' $'\e[D' )

while [ 1 ]; do
 j=1;
 MEM[$i]=`cat /dev/urandom | tr -dc '1-4' | fold -w 1 | head -n 1`
 NUM=${MEM[$i]}
 MEM2[$i]=${TECLA[$NUM]}
for r in $(seq $i); do
 VERSEQ=${MEM[$r]};
 ${SETAS[$VERSEQ]}
 sleep 0.5
 nulo
 sleep 0.1
done
 sleep 0.5
 while [ $j -le $i ]; do
  nulo
  read  -n3 -s DIG[$j]
  if ! [[ ${DIG[$j]} = ${MEM2[$j]} ]]; then
  echo "Game Over! Score: $p"
  exit 1
  fi
  sleep 0.5
 j=$((j+1))
 done
i=$((i+1))
p=$((p+1))
done


reply via email to

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