ti-basic тетрис обновляет список каждый раз, когда tetrimono приземляется

Я делаю тетрис в ti-basic, каждый раз, когда приземляется тетримоно, я хотел бы обновить некоторые списки строк либо от 0 до одного, либо всякий раз, когда строка очищается, весь список строк равен нулю, или false

пример. кто-то очищает 4 ряда с прямым тетримоно. поскольку он имеет длину 4 единицы, обращенную к вертикали, он проверяет координаты x, а затем обновляет 4 списка с соответствующим номером списка, в данном случае 6 из 10 интервалов. он обновляет эти слоты до одного или true. Затем он проверяет каждый список строк, заполнен он или нет; в этом случае списки TR1,TR2,TR3 и TR4 имеют десять значений 1 или true, и не имеют значений 0 или false. для каждой строки, которая имеет все истинные значения, она сбрасывает все значения в одно. что было бы наиболее эффективным способом обновления каждой координаты, в которую приземляется теримоно... продолжение кода

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 ответ

Что вы пробовали? Очевидно, вам нужен игровой цикл, который перерисовывает тетримоно по мере его падения. Игровой цикл должен быть примерно таким же, как в то время как (тетримоно не на вершине 1 блока) делает паузу в течение некоторого количества миллисекунд (я предполагаю, что вы хотите, чтобы блоки падали быстрее с течением времени, так что это будет изменяться), принять пользовательский ключ ввода, а затем обновить положение тетримоно. Вы можете проверить, находится ли тетримоно над 1 блоком, с помощью модифицированного алгоритма рекурсивного возврата. Я не понимаю, что сложного в обновлении координат тетримоно, так что это ваш план.

К сожалению, в вашей игре будет много циклов, которые займут много времени, так как вам придется много обновлять списки, и могут быть очень медленными.

Другие вопросы по тегам