每次tetrimono登陆时,ti-basic tetris更新列表

时间:2018-05-13 05:27:59

标签: graph tetris ti-basic

我正在使用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




1 个答案:

答案 0 :(得分:0)

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

不幸的是,你的游戏会涉及很多循环,这会花费很多时间,因为你必须经常更新列表,而且可能非常慢。