43 FreeBASIC Квадратная спираль-2(в символах и точках)

Теперь нужно "нарисовать" такую квадратную спираль в массив - заполнив например числами или текстом.

Она и отличается то, тем что вместо рисования линию нужно ставить поточечно.

dim a (1 to 12, 1 to 12) as integer

dim as integer i, j, x, y, k, dx,dy, z

x=6: y=6: z=1

for i=1 to 11

    for k=0 to 1
    
        if (2*i+k) mod 4 = 1 then dx=1: dy=0
        if (2*i+k) mod 4 = 2 then dx=0: dy=1
        if (2*i+k) mod 4 = 3 then dx=-1:dy=0
        if (2*i+k) mod 4 = 0 then dx=0: dy=-1
    
        for j=1 to i
            a(x,y)=z:z+=1
            locate y+6,x*4+6:print a(x,y)
            sleep 25
            x+=dx: y+=dy
            
            if z>121 then exit for,for,for
        next j
    next k    
    
next i
    
sleep

Пришлось поставить костыль программе - if z>121 then exit for,for,for так как она упорно рисовала ещё одну строку чисел до 132))

А теперь непосредственно - точки.

dim a (1 to 12, 1 to 12) as integer

dim as integer i, j, x, y, k, dx,dy, z

x=400: y=300: z=1

screenres 800,600

for i=1 to 600

    for k=0 to 1
    
        if (2*i+k) mod 4 = 1 then dx=1: dy=0
        if (2*i+k) mod 4 = 2 then dx=0: dy=1
        if (2*i+k) mod 4 = 3 then dx=-1:dy=0
        if (2*i+k) mod 4 = 0 then dx=0: dy=-1
    
        for j=1 to i
            pset(x,y)
            
            x+=dx: y+=dy
            
        next j
    next k    
    
next i
    
sleep

Теперь всё готово к следующему посту...

@sergiy

sgfbsgpgобразованиепрограммированиеfreebasic
801
484.713 GOLOS
0
В избранное
Сергей
Кибернетик... а кто это? deals.weku.io/@sergiy, serey.io/@sergiy, whaleshares.io/@sergiy, sola.ai/nsergiy
801
0
Комментарии (5)
Сортировать по:
Сначала старые
Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий
Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.