shell 游戏系列 扫雷
#!/bin/bash#-------------CopyRight-------------
# Name:Mine Sweeping
# Version Number:1.00
# Type:game
# Language:bash shell
# Date:2005-10-26
# Author:BitBull
# Email:BitBull.cn(at)gmail.com
#------------Environment------------
# Terminal: column 80 line 24
# Linux 2.6.9 i686
# GNU Bash 3.00.15
#-----------------------------------
#---------------Define--------------
ECHO="echo -ne"
ESC="\033["
OK=0
FALSE=1
#--------------Variable--------------
#ANSI ESC action
FLASH=5
REV=7
#color
NULL=0
BLACK=30
RED=31
GREEN=32
ORANGE=33
BLUE=34
PURPLE=35
SBLUE=36
GREY=37
#back color
BBLACK=40
BRED=41
BGREEN=42
BORANGE=43
BBLUE=44
BPURPLE=45
BSBLUE=46
BGREY=47
MINE='@'
FLAG='F'
NUL=' '
SHADOW='X'
X=0
Y=0
CurX=1 #cur's X
CurY=1 #cur's Y
OCurX=1 #old cur's X
OCurY=1 #old cur's Y
MCount=0 #count mine
FCount=0 #count flag
SCount=0 #count shadow
MXYp=0 #MXY Array's ptr
#---------------Array----------------
#if ${XY[]} == M { mine }
#if ${XY[]} == F { flag }
#if ${XY[]} == N { null }
#if ${XY[]} == S { shadow }
#if ${XY[]} == { tip_num }
#${XY[]} init in XYInit(i)
MXY=""
#--------------Function--------------
function SttyInit ()
{
stty_save=$(stty -g) #backup stty
clear
trap "GameExit;" 2 15
stty -echo
$ECHO "${ESC}?25l" #hidden cursor
return $OK
}
function GameExit ()
{
stty $stty_save
stty echo
clear
trap 2 15
$ECHO "${ESC}?25h${ESC}0;0H${ESC}0m"
exit $OK
}
#print help
function Help ()
{
msg="Move:w s a d Dig:j Flag:f NewGame:n Exit:x --CopyRight-- -2005-10-28 BitBull--"
$ECHO "${ESC}${REV};${RED}m${ESC}24;1H${msg}${ESC}${NULL}m"
return $OK
}
#print dialog window in screen
function PMsg ()
{
local> $ECHO "${ESC}${RED}m"
$ECHO "${ESC}11;20H ------------------------------------------- "
$ECHO "${ESC}12;20H| ======>$title$greeting
页:
[1]