<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Prüfen ob Barriere zwischen 2 benachbarten Hexagons liegt]]></title><description><![CDATA[<p>Hi, ich habe in meinem Projekt ein Labyrinth, welches aus Hexagonen besteht, aufgebaut. <a href="http://www.bilder-upload.eu/show.php?file=906cd9-1424890213.png" rel="nofollow">Hier</a> sieht man 2 teile mit jeweils einer öffnung.</p>
<p>Ich möchte nun eine Figur von einem Teil ins nächste bewegen und hab folgende Funktion für die Wand-Kollision geschrieben:</p>
<pre><code>isWallInTheyWay(CardinalDirection:String) {
   //...
   //standOnHex=Hexagon auf dem Figur steht, blau makiert im Bild
   //walkToHex =Nachbar im Osten
   if(CardinalDirection == EAST) {
      if(standOnHex == null) {   //Wenn hexagon null ist, dann gibt es auch keine Wand
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(WEST)) {
            return false;		
         }	
      }
      else if(standOnHex.isSideOpen(EAST)) {
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(WEST)) {
            return false;		
         }					
      }
   }
   //...weitere 5 himmelsrichtungen?
   return true;
}
</code></pre>
<p>Der Code Ausschnitt ist jetzt nur für die Himmelsrichtung von Ost nach West. Bevor ich jetzt für die anderen Himmelsrichtungen den Code 5 weitere male kopiere und leicht modifiziere, wollte ich hier nach einer eleganten Lösung für evtl. kürzeren Code fragen. Das ganze ist nicht c++, aber doch sehr ähnlich zu c++.</p>
<p>Danke<br />
MfG<br />
Dudeldu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331382/prüfen-ob-barriere-zwischen-2-benachbarten-hexagons-liegt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 16:47:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331382.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Feb 2015 19:00:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prüfen ob Barriere zwischen 2 benachbarten Hexagons liegt on Wed, 25 Feb 2015 19:00:20 GMT]]></title><description><![CDATA[<p>Hi, ich habe in meinem Projekt ein Labyrinth, welches aus Hexagonen besteht, aufgebaut. <a href="http://www.bilder-upload.eu/show.php?file=906cd9-1424890213.png" rel="nofollow">Hier</a> sieht man 2 teile mit jeweils einer öffnung.</p>
<p>Ich möchte nun eine Figur von einem Teil ins nächste bewegen und hab folgende Funktion für die Wand-Kollision geschrieben:</p>
<pre><code>isWallInTheyWay(CardinalDirection:String) {
   //...
   //standOnHex=Hexagon auf dem Figur steht, blau makiert im Bild
   //walkToHex =Nachbar im Osten
   if(CardinalDirection == EAST) {
      if(standOnHex == null) {   //Wenn hexagon null ist, dann gibt es auch keine Wand
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(WEST)) {
            return false;		
         }	
      }
      else if(standOnHex.isSideOpen(EAST)) {
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(WEST)) {
            return false;		
         }					
      }
   }
   //...weitere 5 himmelsrichtungen?
   return true;
}
</code></pre>
<p>Der Code Ausschnitt ist jetzt nur für die Himmelsrichtung von Ost nach West. Bevor ich jetzt für die anderen Himmelsrichtungen den Code 5 weitere male kopiere und leicht modifiziere, wollte ich hier nach einer eleganten Lösung für evtl. kürzeren Code fragen. Das ganze ist nicht c++, aber doch sehr ähnlich zu c++.</p>
<p>Danke<br />
MfG<br />
Dudeldu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444348</guid><dc:creator><![CDATA[Dudeldu]]></dc:creator><pubDate>Wed, 25 Feb 2015 19:00:20 GMT</pubDate></item><item><title><![CDATA[Reply to Prüfen ob Barriere zwischen 2 benachbarten Hexagons liegt on Wed, 25 Feb 2015 20:40:52 GMT]]></title><description><![CDATA[<p>Du schreibst eine Funktion, die dir zu einer Himmelsrichtung die entgegengesetzte Richtung angibt. Dann wird dein Code zu:</p>
<pre><code>isWallInTheyWay(CardinalDirection:String) {
   //...
   //standOnHex=Hexagon auf dem Figur steht, blau makiert im Bild
   //walkToHex =Nachbar im Osten
   OppositeDirection = GetOppositeDirection(CardinalDirection);
   if(standOnHex == null) {   //Wenn hexagon null ist, dann gibt es auch keine Wand
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(OppositeDirection)) {
            return false;      
         } 
      }
      else if(standOnHex.isSideOpen(CardinalDirection)) {
         if(walkToHex == null) {
            return false;
         }
         else if (walkToHex.isSideOpen(OppositeDirection)) {
            return false;      
         }                 
   }
   return true;
}
</code></pre>
<p>Wobei ich es übrigens äußerst ungeschickt finde, Himmelsrichtungen als String zu modellieren. Das schreit geradezu nach einem enum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444358</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 25 Feb 2015 20:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to Prüfen ob Barriere zwischen 2 benachbarten Hexagons liegt on Wed, 25 Feb 2015 21:50:02 GMT]]></title><description><![CDATA[<p>Hi!<br />
Funktioniert, danke!</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Wobei ich es übrigens äußerst ungeschickt finde, Himmelsrichtungen als String zu modellieren. Das schreit geradezu nach einem enum.</p>
</blockquote>
<p>Dudeldu schrieb:</p>
<blockquote>
<p>Das ganze ist nicht c++, aber doch sehr ähnlich zu c++.</p>
</blockquote>
<p>[...]ActionScript 3.0 does not support a specific enumeration facility, unlike C++ with its <a href="http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f2f.html" rel="nofollow">enum keyword</a> or Java with its Enumeration interface.[...]</p>
<p>Es gibt aber ein ähnliches äquivalent mit klassen und konstanten(siehe link), was ich jetzt auch verwendet habe, dennoch bleibt der Datentyp ein String.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444368</guid><dc:creator><![CDATA[Dudeldu]]></dc:creator><pubDate>Wed, 25 Feb 2015 21:50:02 GMT</pubDate></item><item><title><![CDATA[Reply to Prüfen ob Barriere zwischen 2 benachbarten Hexagons liegt on Wed, 25 Feb 2015 22:03:54 GMT]]></title><description><![CDATA[<p>Aber Ganzzahldatentypen wird es doch wohl geben, oder? Ob man nun</p>
<pre><code>enum Direction
{
  North,
  Northeast,
  Southeast,
  South,
  Southwest,
  Northwest
};
</code></pre>
<p>oder</p>
<pre><code>typedef int Direction;

const int North = 0;
const int Northeast = 1;
const int Southeast = 2;
const int South = 3;
const int Southwest = 4;
const int Northwest = 5;
</code></pre>
<p>oder dessen Actionscript-Äquivalent schreibt, macht doch keinen großen Unterschied. Ist aber alles besser als String.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444370</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 25 Feb 2015 22:03:54 GMT</pubDate></item></channel></rss>