2016-03-24 6 views
-1

Ich habe ein 8x8 2D-numpy-Array, wobei 0 offener Raum und 1 Hindernis ist. Wie stelle ich Wände dar? Ist das Hardcoding der Wände in das Labyrinth mit 1 der einzige Weg? Wenn Sie gute Referenzen haben, würde das helfen. Ich kenne das allgemeine Layout der Karte, aber für die Wände weiß ich nicht, wo die genaue Lücke/Öffnung entlang ist. Zuerst dachte ich, ich würde einfach die Wand in das Array als eine Reihe von 1en fest codieren und dann eine Funktion schreiben, die das Array bearbeiten würde, wenn ich eine Lücke entdecke.Wände für 2D-Array (Python)

nmap = numpy.array([ 
      [0,0,0,0,0,0,0,0], 
      [0,1,1,1,1,1,0,0], 
      [1,1,1,1,1,1,1,0], 
      [1,1,1,1,1,1,1,0], 
      [0,0,0,0,0,0,0,0], 
      #wall 
      [0,0,0,0,0,0,0,0], 
      #wall 
      [0,0,0,0,0,0,0,0], 
      #wall 
      [0,0,0,0,0,0,0,0]]) 
+1

Ihrer Meinung nach, was ist der Unterschied zwischen einer Wand und einem Hindernis? wenn es keine gibt, warum nicht einfach "1" machen – niklas

+1

Diese Frage ist zu breit. Wenn dein Irrgarten immer Wände an der gleichen Stelle hat, warum nicht einfach hart programmieren, vor allem wenn man bedenkt, wie klein Ihr Labyrinth zu sein scheint. Wenn Sie etwas Vielseitigeres brauchen, müssen Sie genauere Angaben zu Ihrer Implementierung und zur Definition von Dingen machen. – zephyr

Antwort

2

Warum nicht einfach eine andere Nummer für eine Wand verwenden? wie 2

Zum Beispiel so etwas wie diese:

numpy.array([[2,2,2,2,2], 
      [2,0,0,1,2], 
      [2,0,0,1,2], 
      [2,0,1,0,2], 
      [2,0,2,2,2], 
      [2,0,0,0,2], 
      [2,2,2,2,2]]) 

So 0 leeren Raum darstellt, 1 ein Hindernis, und 2 stellt eine Wand