Модуль “matrix.txt”
start{
camera (0,-50,0)-(0,0,0)-0.3-1000
light (-200,-200,100)-0.2-500-$2F4F2F
scenerotate (0,0,0)-(2,1,0)
gint a[]
for i=0 to 15 {
a[i]=rnd(2)
}
gint level=0
}
vec pos [] = ( (-17,0,17),(-6,0,17),(6,0,17),(17,0,17), (-17,0,6),(-6,0,6),(6,0,6),(17,0,6), (-17,0,-6),(-6,0,-6),(6,0,-6),(17,0,-6), (-17,0,-17),(-6,0,-17),(6,0,-17),(17,0,-17) )
vec posa
for i=0 to 15 {
posa=pos[i]
if a[i] = 0 then {
"zero.txt", posa
}
else {
"one.txt", posa
}
}
level=level+1
if level=180 then {
for i=0 to 15 {
a[i]=rnd(2)
}
}
В программе matrix.txt задан массив координат цифр матрицы pos[].
При включении модуля используется вектор posa,
потому что элементы массива в качестве параметра использовать нельзя.
(индекс массива в данном случае представляет собой выражение, которое в данном блоке обработано быть не может).
В данном примере каждые 180 кадров комбинация нулей и единиц в матрице меняется.