diff --git a/tetris.rb b/tetris.rb index 0606876..1b1320e 100755 --- a/tetris.rb +++ b/tetris.rb @@ -85,9 +85,7 @@ else return true end - end - byouga(field,map,hold) while true @@ -175,16 +173,30 @@ key=STDIN.getch if key=="\e"&&STDIN.getch=="[" key=STDIN.getch - if key=="A" #↑ - elsif key=="D" #← - elsif key=="B" #↓ - elsif key=="C" #→ + if key=="A" #↑(ハードドロップ) + while fall(field,movmino,y1,x1,y2,x2,y3,x3,y4,x4) + break + end + elsif key=="D" #←(左移動) + if field[y1][x1-1]=="0"&&field[y2][x2-1]=="0"&&field[y3][x3-1]=="0"&&field[y4][x4-1]=="0"&&x1-1>=-1&&x2>=-1&&x3>=-1&&x4>=-1 + + end + elsif key=="B" #↓(下移動) + if y1==20||y2==20||y3==20||y4==20 + elsif field[y1+1][x1]=="0"&&field[y2+1][x2]=="0"&&field[y3+1][x3]=="0"&&field[y4+1][x4]=="0" + + end + elsif key=="C" #→(右移動) + if x1==10||x2==10||x3==10||x4==10 + elsif field[y1][x1+1]=="0"&&field[y2][x2+1]=="0"&&field[y3][x3+1]=="0"&&field[y4][x4+1]=="0" + + end end end - if key=="w" - elsif key=="a" - elsif key=="s" - elsif key=="d" + if key=="w" #hold + elsif key=="a" #左回転 + elsif key=="s" #下移動 + elsif key=="d" #右回転 elsif key=="\C-c" exit end