takie coś (swoją drogą fajna zagadka, sam z chęcią ją rozgryzłem):
def emit_point():
print "x", x, "y", y
while width > 0 and height > 0:
direction = 1
while direction >= -1:
for i in range(width - 1):
emit_point()
x += direction
for i in range(height - 1):
emit_point()
y += direction
direction -= 2
x += 1
y += 1
width -= 2
height -= 2
dla kwadratu 4x4
najpierw (w pierwszym for in) są rysowane kropki o numerach 1, 2, 3 (mam na myśli obrazek poniżej),
potem w drugim for in są rysowane kropki o numerach 4, 5, 6,
potem następuje zmiana direction (z 1 na -1)
więc jest wrócenie, najpierw w lewo (w pierwszym for in), potem w górę(w drugim for in) aż do punktu 12
po iteracji "kursor" wraca do punktu początkowego (punkt na rysunku 1, czyli współrzędne x,y: 0,0 ), więc jest korygowana pozycja x i y:
x += 1
y += 1
oraz zmniejszana szerokość i wysokość o 2 za każdym razem