粘貼以下代碼到一個空的Shell腳本文件中,并在Bash 中運行即可!
代碼如下:
#!/bin/bash
# Tetris Game
# 10.21.2003 xhchen<[email]xhchen@winbond.com.tw[/email]>
#APP declaration
APP_NAME="${0##*[///]}"
APP_VERSION="1.0"
#顏色定義
cRed=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=$cCyan
#控制信號
#改游戲使用兩個進程,一個用于接收輸入,一個用于游戲流程和顯示界面;
#當前者接收到上下左右等按鍵時,通過向后者發送signal的方式通知后者。
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)
#所有其中方塊的定義都放到box變量中
box=(${box0[@]} ${box1[@]} ${box2[@]} ${box3[@]} ${box4[@]} ${box5[@]} ${box6[@]})
#各種方塊旋轉后可能的樣式數目
countBox=(1 2 2 2 4 4 4)
#各種方塊再box數組中的偏移
offsetBox=(0 1 3 5 7 11 15)
#每提高一個速度級需要積累的分數
iScoreEachLevel=50 #be greater than 7
#運行時數據
sig=0 #接收到的signal
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=() #背景方塊圖表
新聞熱點
疑難解答