欢迎来到天天文库
浏览记录
ID:57379162
大小:130.00 KB
页数:12页
时间:2020-08-14
《shell编程实现俄罗斯方块.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、shell编程实现俄罗斯方块————————————————————————————————作者:————————————————————————————————日期:#!/bin/shaBox0_0=(0000001000000000111000000)aBox0_1=(0000010000000000010000000000011000000)aBox0_2=(000000000000000011100000000010000000-1)aBox0_3=(0000110000000000010000000000010000000)aBox1_0=(00001000000
2、00000111000000)aBox1_1=(0000011000000000010000000000010000000)aBox1_2=(000000000000000011100000000000100000-1)aBox1_3=(0000010000000000010000000000110000000)aBox2_0=(0000100000000000110000000000010000000)aBox2_1=(0000011000000000110000000)aBox3_0=(0000010000000000110000000000100000000)aBox
3、3_1=(0000110000000000011000000)aBox4_0=(000000000000000011110000-1)aBox4_1=(0000010000000000010000000000010000000000010000000)aBox5_0=(0000011000000000011000000)aBox6_0=(0000010000000000111000000)aBox6_1=(0000010000000000011000000000010000000)aBox6_2=(000000000000000011100000000001000000-1
4、)aBox6_3=(0000010000000000110000000000010000000)iSumType=7#方块类型总数aStyles=(4422214)#各个种类方块样式数iOrigoX=10#显示起始位置xiOrigoY=5#显示起始位置yiMapWidth=12#方块宽10iMapHeight=15#方块高15iBox_X=0#方块位置xiBox_Y=0#方块位置yiScore=0#分数iLevel=0#级别iScoreEachLevle=50#每升一级需积累分数#初始化所有背景方块for((i=0;i5、oaBoxBg[$i]=0done#定义控制信号,挪用信号25~31iSIG=0#iSIG_Rotate=25#旋转iSIG_Left=26#向左移动iSIG_Right=27#向右移动iSIG_Down=28#向下iSIG_FallDown=29#直落到底iSIG_Exit=30#退出iSIG_Pause=31#暂停Control(){trap"Game_Exit"2315$iSIG_Exitecho-ne" 33[?25l"SAVEDSTTY=`stty-g`iDisplayPID=$1while:doread-s-n1LINEiSIG=0case$LINEin"A"6、)iSIG=$iSIG_Rotate;;"B")iSIG=$iSIG_Down;;"D")iSIG=$iSIG_Left;;"C")iSIG=$iSIG_Right;;"")iSIG=$iSIG_FallDown;;p7、P)iSIG=$iSIG_Pause;;q8、Q)Game_Exit;;esac[$iSIG-ne0]&&kill-$iSIG$iDisplayPIDdone}Display(){trap"iSIG=$iSIG_Rotate"$iSIG_Rotatetrap"iSIG=$iSIG_Down"$iSIG_Downtrap"iSIG=$iSIG_Left"$iSI9、G_Lefttrap"iSIG=$iSIG_Right"$iSIG_Righttrap"iSIG=$iSIG_FallDown"$iSIG_FallDowntrap"iSIG=$iSIG_Pause"$iSIG_PauselocaliSIGThisiclearDraw_infoCreate_Boxwhile:doif[$iSIG-ne$iSIG_Pause];thenfor((i=0;i<20-iLevel;i++))doiSIG_Display=$iSIGiSIG=0case$iSIG_Displayin$iSI
5、oaBoxBg[$i]=0done#定义控制信号,挪用信号25~31iSIG=0#iSIG_Rotate=25#旋转iSIG_Left=26#向左移动iSIG_Right=27#向右移动iSIG_Down=28#向下iSIG_FallDown=29#直落到底iSIG_Exit=30#退出iSIG_Pause=31#暂停Control(){trap"Game_Exit"2315$iSIG_Exitecho-ne" 33[?25l"SAVEDSTTY=`stty-g`iDisplayPID=$1while:doread-s-n1LINEiSIG=0case$LINEin"A"
6、)iSIG=$iSIG_Rotate;;"B")iSIG=$iSIG_Down;;"D")iSIG=$iSIG_Left;;"C")iSIG=$iSIG_Right;;"")iSIG=$iSIG_FallDown;;p
7、P)iSIG=$iSIG_Pause;;q
8、Q)Game_Exit;;esac[$iSIG-ne0]&&kill-$iSIG$iDisplayPIDdone}Display(){trap"iSIG=$iSIG_Rotate"$iSIG_Rotatetrap"iSIG=$iSIG_Down"$iSIG_Downtrap"iSIG=$iSIG_Left"$iSI
9、G_Lefttrap"iSIG=$iSIG_Right"$iSIG_Righttrap"iSIG=$iSIG_FallDown"$iSIG_FallDowntrap"iSIG=$iSIG_Pause"$iSIG_PauselocaliSIGThisiclearDraw_infoCreate_Boxwhile:doif[$iSIG-ne$iSIG_Pause];thenfor((i=0;i<20-iLevel;i++))doiSIG_Display=$iSIGiSIG=0case$iSIG_Displayin$iSI
此文档下载收益归作者所有