18 мая 2020
life is pain without basic ! Option Base 1 Sub snake() Dim asd As Variant Dim NAR As Variant Range("A1").CurrentRegion.Delete
n = 10 ReDim asd(n ^ 2) ReDim NAR(n, n)
For i = 1 To n ^ 2 asd(i) = i Next i
a = 1 c = 1 x = 1 y = 1 flag = 1
For i = 1 To n ^ 2
If a = n Then
a = 1
If flag = 1 Then
flag = 2
ElseIf flag = 2 Then
flag = 3
ElseIf flag = 3 Then
flag = 4
ElseIf flag = 4 Then
flag = 1
x = x + 1
y = y + 1
n = n - 2
End If
End If
If flag = 1 Then
NAR(x, y) = asd(c)
c = c + 1
a = a + 1
y = y + 1
End If
If flag = 2 Then
NAR(x, y) = asd(c)
c = c + 1
a = a + 1
x = x + 1
End If
If flag = 3 Then
NAR(x, y) = asd(c)
c = c + 1
a = a + 1
y = y - 1
End If
If flag = 4 Then
NAR(x, y) = asd(c)
c = c + 1
a = a + 1
x = x - 1
End If
Next i
Range("A1").Resize(UBound(NAR, 1), UBound(NAR, 2)).Value = NAR
End Sub
Ответить
Пожаловаться