Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

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

6
484.713 GOLOS
На Golos с October 2016
Комментарии (5)
Сортировать по:
Сначала старые