user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 08-08-2015 12:04:54

IceF0x
#! Gourou Linux

snake.sh

Voici un script que j'ai découvert et légèrement modifié qui permet de jouer à snake en console

1439028287_capture_d_ecran_-_08082015_-_12_02_29.png

#!/bin/bash
t=tput
tc="$t cup"
tr="$t rev"
ts="$t sgr0"
ox=5
oy=5
((w=$($t cols)-2-2*ox))
((h=$($t lines)-2-2*oy))
trap '$t rmcup
stty echo
echo "Thanks for playing snake!"
' EXIT
$t smcup
$t civis
stty -echo
clear
printf -v hs %$((w+2))s
printf -v v "█%${w}s█"
$tc $oy $ox
printf %s ${hs// /▄}
for((i=1;i<=h+1;++i)); do
  $tc $((oy+i)) $ox
  printf %s "$v"
done
$tc $((oy+h+2)) $ox
printf %s ${hs// /▀}
dx=0
dy=-1
hx=$((w/2))
hy=$((h-2))
l=0
xa=($hx $hx)
ya=($hy $((hy+1)))
$tr
for((i=0;i<${#xa[@]};++i)); do
  $tc $((ya[i]+1+oy)) $((xa[i]+1+ox))
  printf \ 
done
$ts
print_food() {
$tc $((fy+1+oy)) $((fx+1+ox))
printf "*"
}
nf() {
rf=1
while((rf))
do
  rf=0
  ((fx=RANDOM%w))
  ((fy=RANDOM%h))
    for ((i=0;i<${#ya[@]};++i))
    do
      if((ya[i]==fy&&xa[i]==fx))
        then
        rf=1
        break
      fi
    done
done
print_food
}
nf
ps() {
s="SCORE: $l"
$tc $((oy-1)) $((ox+(w-${#s})/2))
printf "%s\n" "$s"
}
ps
while :
do
  read -rt 0.2 -s -n1 k
    if (($?==0))
      then
      case $k in
        8)((dy==0))&&{ dx=0;dy=-1;};;
        4)((dx==0))&&{ dx=-1;dy=0;};;
        2)((dy==0))&&{ dx=0;dy=1;};;
        6)((dx==0))&&{ dx=1; dy=0;};;
        q|Q)break;;
        p|P)sleep 10;;
      esac
    fi
  ((hx=xa[0]+dx))
  ((hy=ya[0]+dy))
  if((hx<0||hy<0||hx>w||hy>h))
    then
    go=1
    break
  fi
  for((i=1;i<${#ya[@]}-1;++i))
  do
    if((hx==xa[i]&&hy==ya[i]))
      then
      go=1
      break 2
    fi
  done
  $tc $((ya[-1]+1+oy)) $((xa[-1]+1+ox))
  printf \ 
  $tr
  $tc $((hy+1+oy)) $((hx+1+ox))
  printf \ 
  $ts
  if((hx==fx&&hy==fy))
    then
    ((++l))
    ps
    nf
  else
    ya=(${ya[@]::${#ya[@]}-1})
    xa=(${xa[@]::${#xa[@]}-1})
  fi
  ya=($hy ${ya[@]})
  xa=($hx ${xa[@]})
done
if((go))
  then
  $tc 3 3
  echo GAME OVER
  read -rt 3 -s -n1
fi

source: http://codegolf.stackexchange.com/posts/26073/revisions


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#2 08-08-2015 12:20:50

penthium2
Modérateur

Re : snake.sh

très fun big_smile merci  Cthulhu


vi est mon ami pour la vie
Viperr
Ph'nglui nglw-nafh Cthulhu R'lyeh wgah-nagl fhtagn

Hors ligne

#3 08-08-2015 17:09:58

Cabsud
Membre

Re : snake.sh

Énorme !!
Merci wink

Hors ligne

Pied de page des forums