我正在使用ti-basic制作俄罗斯方块,每次tetrimono登陆时我想更新一些行列表,从0到1,或者每当一行清除时,整行列为零,或者假
一个例子。 有人用直的tetrimono清除了4排。因为它是4个单位长的面向垂直,它检查x的坐标然后更新4个列表,具有相应的列表编号,在这种情况下是10个10个插槽中的6个。它将这些槽更新为一个,或者为true。然后检查每个行列表是否已满;在这种情况下,列表TR1,TR2,TR3和TR4都有10个值为1,或者为真,没有0或0的值。对于具有所有真值的每一行,它将所有值重置为一。什么是更新terimono登陆的每个坐标的最有效方式...继续编码
ZoomRcl
11→Dim(ʟTR1)
11→Dim(ʟTR2)
//goes up to 9
11→Dim(ʟTRA)
11→Dim(ʟTRB)
// goes up to l, for 21 rows
ClrDraw
Line(15,-31,-15,-31)
Line(-15,-31,-15,31)
Line(15,-31,15,31)
Line(15,31,-15,31)
Lbl 1
-5→x // i set the xmin and xmax to -47, and 47
30→y // i set the ymin and ymax to -31, and 31
randIint(1,6)→P //determines which tetrimono will be spawned
Lbl 2
if p=1
goto 3
if p=2
goto 4
if P=3
goto 5
if p=4
goto 6
if p=5
goto 7
if p=6
goto 8
if p=7
goto 9
lbl 3
//visual code for L tetrimono 1
Line(x,y,x+8,y) also, is it possible to make a x coordinate list that draws all x coordinates, like x1,y1 to x2,y2 then x2,y2 to x3,y3, etc without external libraries
Line(x+8,y,x+8,y-5)
Line(X+8,y-5,x+6,y-50
Line(x+6,Y-5,X+6,y-2)
Line(x+6,y-2,x,y-2>
Line(x,y-2,x,y)
goto 10
lbl 4
//mirrored l tetrimono
goto 10
lbl 5
//line tetrimono
goto 10
lbl 6
//box tetrimono
goto 10
lbl 7
//s tetrimono
goto 10
lbl 8
//z tetrimono
lbl 9
//t tetrimono
lbl 10
y-3→y
//this is where i need help making tetris

答案 0 :(得分:0)
你有什么尝试?显然,你需要一个游戏循环来重绘tetrimono。游戏循环应该是while(tetrimono不在1个块之上)暂停一段时间(我假设你希望块随着时间的推移而下降得更快,因此这将是可变的),接受用户密钥输入,然后更新tetrimono位置。如果tetrimono超过1个块,你要检查的方法是通过修改的递归回溯算法。我没有看到更新tetrimono坐标有什么困难,所以这是你的计划。
不幸的是,你的游戏会涉及很多循环,这会花费很多时间,因为你必须经常更新列表,而且可能非常慢。