09.10.2020, 20:20
(Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2020, 20:45 von Manfred Aabye.)
Mein Kopf ist leer und ausgebrannt lach.
Code:
#########################################################
########### Hier kommt ein Spiral Test ##################
#########################################################
mapsprung = 0 # Regionsgroesse 0=Singe, 1=512Var, 2=768Var ...
xcounter = 1000 # x Position
ycounter = 5000 # y Position
n = 6; # Anzahl Regionen Bloecke
grid = [[None]*n for i in range(n)]
def move(pos, d, counter): # zuerst erzeugen, dann bewegen
x = pos[0]
y = pos[1]
# Kommentiere diese Zeile aus, um zu überpruefen, wie sie sich bewegt
#print (x,y)
if d == "right":
if x == n-y-1: # Wenn wir nach rechts gehen und aufgrund von Indizes das Ende (n-y) -1 erreichen, aendere die Richtung nach unten
#grid[y][x] = "1"
grid[y][x] = str(xcounter + mapsprung) + ',' + str(ycounter + mapsprung) + ' '
y+=1
d = "down"
else:
#grid[y][x] = "2"
grid[y][x] = str(xcounter + mapsprung + 1) + ',' + str(ycounter + mapsprung +1) + ' '
x+=1
elif d == "down": # Wenn wir nach unten gehen und das Ende erreichen, das der Spaltennummer entspricht, auf der wir uns befinden, aendere die Richtung nach links
if y == x:
#grid[y][x] = "3"
grid[y][x] = str(xcounter + mapsprung + 2) + ',' + str(ycounter + mapsprung +2) + ' '
x-=1
d = "left"
else:
#grid[y][x] = "4"
grid[y][x] = str(xcounter + mapsprung + 1) + ',' + str(ycounter + mapsprung +1) + ' '
y+=1
elif d == "left": # Wenn wir nach links gehen und das Ende erreichen, das das gleiche wie rechts ist, aendere die Richtung nach oben
if x == n-y-1:
#grid[y][x] = "5"
grid[y][x] = str(xcounter + mapsprung + 3) + ',' + str(ycounter + mapsprung +3) + ' '
y-=1
d="up"
else:
grid[y][x] = str(xcounter + mapsprung + 4) + ',' + str(ycounter + mapsprung +4) + ' '
x-=1
elif d == "up": # Wenn wir nach oben gehen und das Ende erreichen, das x + 1 ist, aendere die Richtung nach rechts
if y ==x+1:
#grid[y][x] = "6"
grid[y][x] = str(xcounter + mapsprung + 5) + ',' + str(ycounter + mapsprung +5) + ' '
x+=1
d = "right"
else:
#grid[y][x] = "7"
grid[y][x] = str(xcounter + mapsprung + 6) + ',' + str(ycounter + mapsprung +6) + ' '
y-=1
counter+=1
if counter != n*n: # Wenn wir n*n Mal gemalt haben, bedeutet dies, dass wir mit der Spirale fertig sind
move((x,y),d,counter)
move((0,0),"right",0) # Beginne in Koordinaten (0,0) mit der Richtung nach rechts und setzen Sie in 0
for row in grid:
print(''.join('%s' % i for i in row))
Code:
#! /usr/bin/env python
# Vari
mapsprung = 1
xcounter = 1000
ycounter = 2000
def rot_right(a):
return zip(*a[::-1])
def spiral(m, n, start=1, is_rotate=False):
global xcounter, ycounter
if n < 1:
return
xcounter += 1
ycounter += 1
lst = [str(xcounter + mapsprung) + ',' + str(ycounter + mapsprung) + ' ' if is_rotate else str(xcounter + mapsprung) + ',' + str(ycounter + mapsprung) + ' ' for i in range(start, m + start - 1)]
lst += [str(xcounter + mapsprung) + ',' + str(ycounter + mapsprung) + ' ' if is_rotate and m > 0 else str(xcounter + mapsprung) + ',' + str(ycounter + mapsprung) + ' ']
yield tuple(lst)
for row in rot_right(list(spiral(n - 1, m, m + start, not is_rotate))):
yield row
n = 7
for row in spiral(n, n):
print(''.join('%s' % i for i in row))
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.