Vous n'êtes pas identifié(e).
Pages : 1
Voici un script que j'ai découvert et légèrement modifié qui permet de jouer à snake en console
#!/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
très fun merci
vi est mon ami pour la vie
Ph'nglui nglw-nafh Cthulhu R'lyeh wgah-nagl fhtagn
Hors ligne
Énorme !!
Merci
Hors ligne
Pages : 1