使用shell脚本怎么编写俄罗斯方块

  介绍

使用shell脚本怎么编写俄罗斯方块?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

代码:

# !/bin/bash    ,,   #,Tetris  Game    #,10.21.2003  xhchen<(电子邮件)xhchen@winbond.com.tw[/电子邮件]祝辞,   ,,   # APP  declaration    APP_NAME=? {0 # # * [/\ \]}“,   APP_VERSION=?.0“,   ,,   ,,   #颜色定义,   信誉=1,   cGreen=2,   cYellow=3,   cBlue=4,   cFuchsia=5,   cCyan=6,   cWhite=7,   colorTable=(cRed  cGreen 美元;cYellow 美元;cBlue 美元;cFuchsia 美元;cCyan 美元;cWhite美元),   ,,   #位置和大小,   iLeft=3,   iTop=2,   时间=((iTrayLeft  iLeft  +, 2)),   时间=((iTrayTop  iTop  +, 1)),   ((=iTrayWidth  10)),   ((=iTrayHeight  15)),   ,,   #颜色设置,   cBorder=$ cGreen    cScore=$ cFuchsia    cScoreValue=https://www.yisu.com/zixun/cCyan美元      #控制信号   #改游戏使用两个进程,一个用于接收输入,一个用于游戏流程和显示界面;   #当前者接收到上下左右等按键时,通过向后者发送信号的方式通知后者。   sigRotate=25   sigLeft=26   sigRight=27   sigDown=28   sigAllDown=29   sigExit=30      #七中不同的方块的定义   #通过旋转,每种方块的显示的样式可能有几种   box0=0 0 0 1 1 0 1 (1)   box1=(0 2 1 2 2 2 3 2 1 0 1 1 1 2 1 3)   box2=(0 0 0 1 1 1 1 2 0 1 1 0 1 1 2 0)   box3=(0 1 0 2 1 0 1 1 0 0 1 0 1 1 2 1)   box4=(0 1 0 2 1 1 2 1 1 0 1 1 1 2 2 2 0 1 1 1 2 0 2 1 0 0 1 0 1 1 1 2)   box5=(0 1 1 1 2 1 2 2 1 0 1 1 1 2 2 0 0 0 0 1 1 1 2 1 0 2 1 0 1 1 1 2)   box6=(0 1 1 1 1 2 2 1 1 0 1 1 1 2 2 1 0 1 1 0 1 1 2 1 0 1 1 0 1 1 1 2)   #所有其中方块的定义都放到箱变量中   盒=($ {box0 [@]} $ {box1 [@]} $ {box2 [@]} $ {box3 [@]} $ {box4 [@]} $ {box5 [@]} $ {box6 [@]})   #各种方块旋转后可能的样式数目   countBox=(1 2 2 2 4 4 4)   #各种方块再箱数组中的偏移   offsetBox=(0 1 3 5 7 11 15)      #每提高一个速度级需要积累的分数   iScoreEachLevel=50 #大于7      #运行时数据   sig=0 #接收到的信号   iScore=0 #总分   iLevel=0 #速度级   boxNew=() #新下落的方块的位置定义   cBoxNew=0 #新下落的方块的颜色   iBoxNewType=0 #新下落的方块的种类   iBoxNewRotate=0 #新下落的方块的旋转角度   boxCur=() #当前方块的位置定义   cBoxCur=0 #当前方块的颜色   iBoxCurType=0 #当前方块的种类   iBoxCurRotate=0 #当前方块的旋转角度   boxCurX=1 #当前方块的x坐标位置   boxCurY=1 #当前方块的y坐标位置   iMap=() #背景方块图表      #初始化所有背景方块为1,表示没有方块   ((我=0;我   elif [[$ key==" B "]];然后团体=$ sigDown # <向下键>   elif [[$ key==" D "]];然后团体=$ sigLeft # <向左键>   elif [[$ key==" C "]];然后团体=$ sigRight # <向右键>   fi   elif [[$ key==癢”| | $ key==" W "]];然后团体=$ sigRotate # W W   elif [[$ key==癝”| | $ key==" S "));然后团体=$ sigDown # S, S   elif [[$ key==癆”| | $ key=="一个"]];然后团体=$ sigLeft #,一个   elif [[$ key==" D " | | $ key==" D "]];然后团体=$ sigRight # D, D   elif [[[$ key]”==癧]”)];然后团体=$ sigAllDown #空格键   elif [[$ key==癚”| | $ key=="问"]]# Q Q   然后   MyExit   fi      如果[[$团体!=0]]   然后   #向另一进程发送消息   杀- sig pidDisplayer美元   fi   完成   }      #退出前的恢复   MyExitNoSub()函数   {   当地y      #恢复终端属性   stty stty美元   ((y=iTop + iTrayHeight + 4))      #显示光标   回声033 - e " \ [? 25 033 h \ [$ {y}; 0 h”   退出   }         MyExit()函数   {   #通知显示进程需要退出   杀死——sigExit pidDisplayer美元      MyExitNoSub   }         #处理显示和游戏流程的主函数   RunAsDisplayer()函数   {   当地sigThis   InitDraw      #挂载各种信号的处理函数   陷阱”团体=$ sigRotate;“sigRotate美元   陷阱”团体=$ sigLeft;“sigLeft美元   陷阱”团体=$ sigRight;“sigRight美元   陷阱”团体=$ sigDown;“sigDown美元   陷阱”团体=$ sigAllDown;“sigAllDown美元   陷阱”ShowExit;“sigExit美元      而:   做   #根据当前的速度级iLevel不同,设定相应的循环的次数   ((我=0;我

使用shell脚本怎么编写俄罗斯方块