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

я делаю тетрис в 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 Ответ

0 голосов
/ 23 мая 2018

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

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

...