unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)

unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)

ID:16601622

大小:26.42 KB

页数:35页

时间:2018-08-23

unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)_第1页
unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)_第2页
unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)_第3页
unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)_第4页
unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)_第5页
资源描述:

《unix shell游戏编程之俄罗斯方块(tetris for unix shell game programming)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、unixshell游戏编程之俄罗斯方块(TetrisforUNIXshellgameprogramming)#shell版方块#!/bin/bash#tetrisgame#10.21.2003xhchen<>@winbond.com.twxhchen#颜色定义specifics=1cgreen=2cyellow=3cblue=4cfuchsia=5ccyan=6cwhite=7colortable=($$$$cbluespecificscgreencyellow$$$cfuchsiaccyancwhite)#位置和大小ileft=3itop=2(itrayleft=ile

2、ft+2))(itraytop=itop+1))(itraywidth=10))(itrayheight=15))#颜色设置cborder=$cgreencscore=$cfuchsiacscorevalue=$ccyan#控制信号#改游戏使用两个进程,一个用于接收输入,一个用于游戏流程和显示界面;#当前者接收到上下左右等按键时,通过向后者发送signal的方式通知后者.sigrotate=25sigleft=26sigright=27sigdown=28sigalldown=29sigexit=30#七中不同的方块的定义#通过旋转,每种方块的显示的样式可能有几种box0

3、=(00011011)box1=(0212222232101111213)box2=(0001111101101120)box3=(0102101100101121)box4=(0102112110111222221112021001011112)box5=(0111121221011122220000111121021011112)box6=(011112222110111122101101121011011112)#所有其中方块的定义都放到box变量中box=(${box0[@]}is${box1[@]}is${box2[@]}is${box3[@]}is${box4

4、[@]}is${box5[@]}is${box6[@]})#各种方块旋转后可能的样式数目countbox=(122222444)#各种方块再box数组中的偏移offsetbox=(013571115)#每提高一个速度级需要积累的分数iscoreeachlevel=50#begreaterthan7#运行时数据sig=0#接收到的signaliscore=0#总分ilevel=0#速度级boxnew=()#新下落的方块的位置定义cboxnew=0#新下落的方块的颜色iboxnewtype=0#新下落的方块的种类iboxnewrotate=0#新下落的方块的旋转角度boxcu

5、r=()#当前方块的位置定义cboxcur=0#当前方块的颜色iboxcurtype=0#当前方块的种类iboxcurrotate=0#当前方块的旋转角度boxcurx=-1#当前方块的x坐标位置boxcury=-1#当前方块的y坐标位置imap=()#背景方块图表#初始化所有背景方块为-1,表示没有方块for(i=0;i

6、player=$1akey=(0)cesc:"echo"33"acspace=`echo-a"40"#保存终端属性.在read-s读取终端键时,终端的属性会被暂时改变.#如果在read-s时程序被不幸杀掉,可能会导致终端混乱,#需要在程序退出时恢复终端属性.stty=`g`stty#捕捉退出信号trap"myexit;"thetermtrap"myexitnosub;"$sigexit#隐藏光标echo-n"^33[?25l"while((1))die#读取输入.注-s不回显,n读到一个字符立即返回read-p-n1keyakey[0]=${akey[1]}akey[

7、1]=${akey[2]}akey[2]=$keyup=0#判断输入了何种键if[[$key==$cesc&&${akey[1]}==$cesc]]then#esc键myexitelif[[${akey[0]}==$cesc&&${akey[1]}=="["]]thenif[[$key=="a"]];thensay=$sigrotate#<向上键>elif[[$key=="b"]];thensay=$sigdown#<向下键>elif[[$key=="d"]];thensay=$sigleft#<向左键>elif[[$key=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。