Absender: Frank Menzel
Datum: Mi, 02.07.2008 11:05:26
In-reply-to:
<AF9871FF-AF74-4D08-8862-CA9D3B06A242@xxxxxxxxxxxxxxx>
References:
<20080630183821.300030@xxxxxxx> <AF9871FF-AF74-4D08-8862-CA9D3B06A242@xxxxxxxxxxxxxxx>
Hallo, anbei wie gewünscht mit den Anpassungen für getFlatParcours ()... Gruss, Frank Menzel -------- Original-Nachricht -------- > Datum: Tue, 1 Jul 2008 15:21:28 +0200 > Von: Timo Sandmann <Mail@xxxxxxxxxxxxxxx> > An: Entwicklung rund um den c\'t-bot <ct-bot-entwickler@xxxxxxxxxxxxxxxxx> > Betreff: Re: [ct-bot] Linienkreuzungen > Hallo, > > das sieht sehr gut aus. > Nur für Parcours.getFlatParcours() fehlt noch eine Anpassung, sonst > liefert getShortestPath() falsche Daten zurück (glaube ich). Die > Kreuzungen müssten wohl wie Linien behandelt werden. Das sollte dann > auf jeden Fall aber noch mal ausprobiert werden, ich bin mir bei der > Methode jetzt nicht so ganz sicher. > > Gruß, > Timo > > Am 30.06.2008 um 20:38 schrieb Frank Menzel: > > Hallo, > > anbei mal der neue Patch für die Linienkreuzungen... > > In dem Artikellink war ja so ein schönes Bild mit den Linienarten. > > Das Bild wollte ich erweitern mit diesen Kreuzungen. Doch diese > > Newsliste nimmt doch keine Bilder oder ? Also dann wohin mit dem > > Bild ? > > Gruss, Frank Menzel > > -- > > Psssst! Schon vom neuen GMX MultiMessenger gehört? > > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger > > <linecrossings.txt>_______________________________________________ > > ct-bot-entwickler Mailingliste > > ct-bot-entwickler@xxxxxxxxxxxxxxxxx > > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler > > > _______________________________________________ > ct-bot-entwickler Mailingliste > ct-bot-entwickler@xxxxxxxxxxxxxxxxx > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler -- Psssst! Schon das coole Video vom GMX MultiMessenger gesehen? Der Eine für Alle: http://www.gmx.net/de/go/messenger03
Index: C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java =================================================================== --- C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java (revision 1451) +++ C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java (working copy) @@ -63,6 +63,12 @@ /** * Diese Klasse hilft einen Parcours aus einer ASCII-Datei zu laden + * Linien-Kreuzungen: + * [ - X-Kreuzung + * T - sieht aus wie das T, d.h. Linie geht nach unten weg + * ] - T-Kreuzung steht auf dem Kopf, d.h. die Linie geht nach oben weg + * { - in Uhrzeigersinn gedrehte T-Kreuzung, Linie geht nach links weg (Richtung der Mittelspitze) + * } - entgegen Uhrzeigersinn gedrehte T-Kreuzung (Linie geht in Richtung der Mittelspitze nach rechts weg) * * @author bbe (bbe@xxxxxxxx) */ @@ -138,6 +144,88 @@ 0f +LINEWIDTH/2 , 0.5f ,0f, // lange Linie nach oben }; + /** + * X-Kreuzung + */ + public static final float[] LINE_CROSSING_X = { + 0f - LINEWIDTH/2 , -0.5f,0f, // Start unten links + 0f + LINEWIDTH/2 , -0.5f,0f, // kurze Linie nach rechts + 0f + LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte + 0.5f , 0.0f - LINEWIDTH/2 ,0f, // Lange Linie nach rechts + 0.5f , 0.0f + LINEWIDTH/2 ,0f, // kurze Linie hoch + 0f + LINEWIDTH/2 , 0.0f + LINEWIDTH/2 ,0f, // Linie bis Mitte + 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie bis Hoch + 0f - LINEWIDTH/2 , 0.5f ,0f, // kurze Linie nach links + 0f - LINEWIDTH/2 , 0.0f + LINEWIDTH/2 ,0f, // Linie runter bis Mitte + -0.5f, 0f + LINEWIDTH/2,0f, //Linie nach links + -0.5f, 0f - LINEWIDTH/2,0f, //kurze Linie runter + 0f - LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie nach rechts bis Mitte + 0f - LINEWIDTH/2 , -0.5f,0f, // Kreuz schliessen zum Ausgangspunkt + }; + + /** + * T-Kreuzung, Ausrichtung wie das T selbst, also Linie geht nach unten + */ + public static final float[] LINE_CROSSING_T = { + 0f - LINEWIDTH/2, -0.5f, 0f, // Start unten links + 0f + LINEWIDTH/2, -0.5f, 0f, // kurze Linie nach rechts + 0f + LINEWIDTH/2, 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte + 0.5f , 0.0f - LINEWIDTH/2 ,0f, // Lange Linie nach rechts + 0.5f , 0.0f + LINEWIDTH/2 ,0f, // kurze Linie hoch + -0.5f , 0.0f + LINEWIDTH/2 , 0f, // lange Linie nach links + -0.5f, 0f - LINEWIDTH/2,0f , //kurze Linie runter + 0f - LINEWIDTH/2 , 0.0f - LINEWIDTH/2 , 0f, // Linie nach rechts bis Mitte + 0f - LINEWIDTH/2 ,-0.5f,0f, // T schliessen zum Ausgangspunkt + }; + + /** + * gespiegelte T-Kreuzung, Ausrichtung wie gespiegeltes, also Linie geht nach oben + */ + public static final float[] LINE_CROSSING_T_MIRR = { + -0.5f,0.0f - LINEWIDTH/2,0f, // Start Ecke unten links + 0.5f,0.0f - LINEWIDTH/2,0f, // lange Linie nach rechts + 0.5f , 0 + LINEWIDTH/2 ,0f, // kurze Linie hoch + 0f + LINEWIDTH/2 , 0f + LINEWIDTH/2 ,0f, // Linie links bis Mitte + 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie hoch + 0f - LINEWIDTH/2 , 0.5f ,0f, // kurze Linie nach links + 0f - LINEWIDTH/2, 0f + LINEWIDTH/2,0f, //Linie runter bis Mitte + -0.5f ,0f + LINEWIDTH/2 ,0f, // Linie nach links + -0.5f,0f - LINEWIDTH/2,0f, //kurze Linie runter zum Ausgangspunkt + + + }; + + /** + * T-Kreuzung, 90 Grad gedreht entgegen Uhrzeigersinn, also Linie geht nach rechts + */ + public static final float[] LINE_CROSSING_T_ROT_UNCLOCKWISE = { + 0f - LINEWIDTH/2,-0.5f,0f, // Start Ecke unten links + 0f + LINEWIDTH/2,-0.5f,0f, // kurze Linie nach rechts + 0f + LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte + 0.5f,0.0f - LINEWIDTH/2,0f, // Linie nach rechts + 0.5f , 0f + LINEWIDTH/2 ,0f, // kurze Linie hoch + 0f + LINEWIDTH/2 , 0f + LINEWIDTH/2 ,0f, // Linie nach links bis Mitte + 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie hoch + 0f - LINEWIDTH/2, 0.5f ,0f, // kurze Linie nach links + 0f - LINEWIDTH/2, -0.5f,0f, //lange Linie runter zum Ausgangspunkt + + }; + + /** + * T-Kreuzung, 90 Grad gedreht in Uhrzeigersinn, also Linie geht nach links + */ + public static final float[] LINE_CROSSING_T_ROT_CLOCKWISE = { + 0f - LINEWIDTH/2,-0.5f,0f, // Start Ecke unten links + 0f + LINEWIDTH/2,-0.5f,0f, // kurze Linie nach rechts + 0f + LINEWIDTH/2 , 0.5f ,0f, // lange Linie hoch + 0f - LINEWIDTH/2, 0.5f ,0f, // kurze Linie nach links + 0f - LINEWIDTH/2, 0f + LINEWIDTH/2 ,0f, // Linie runter bis Mitte + -0.5f , 0f + LINEWIDTH/2 ,0f, // Linie nach links + -0.5f , 0f - LINEWIDTH/2 ,0f, // kurze Linie runter + 0f - LINEWIDTH/2 , 0f - LINEWIDTH/2 ,0f, // Linie rechts bis Mitte + 0f - LINEWIDTH/2 , -0.5f ,0f, // Linie runter zum Ausgangspunkt + }; + /** Wand-Hoehe */ private static final float WALL_HEIGHT = 0.2f; @@ -437,8 +525,21 @@ case '~': createLine(x,y,LINE_CORNER_NW,getAppearance(this.parcoursMap[x][y])); break; - - + case '[': + createLine(x,y,LINE_CROSSING_X,getAppearance(this.parcoursMap[x][y])); + break; + case 'T': + createLine(x,y,LINE_CROSSING_T,getAppearance(this.parcoursMap[x][y])); + break; + case ']': + createLine(x,y,LINE_CROSSING_T_MIRR,getAppearance(this.parcoursMap[x][y])); + break; + case '}': + createLine(x,y,LINE_CROSSING_T_ROT_UNCLOCKWISE,getAppearance(this.parcoursMap[x][y])); + break; + case '{': + createLine(x,y,LINE_CROSSING_T_ROT_CLOCKWISE,getAppearance(this.parcoursMap[x][y])); + break; } Index: C:/botneu/ct-Sim/ctSim/model/Parcours.java =================================================================== --- C:/botneu/ct-Sim/ctSim/model/Parcours.java (revision 1451) +++ C:/botneu/ct-Sim/ctSim/model/Parcours.java (working copy) @@ -516,7 +516,7 @@ } /** - * @return Liefert einen stark verienfachten Parcours zurÃŒck. + * @return Liefert einen stark vereinfachten Parcours zurÃŒck. * das Array enthaelt nur 0 (freies Feld) und 1 (blockiertes Feld) */ int[][] getFlatParcours() { @@ -535,6 +535,11 @@ case '/': case '\\': case '+': + case '[': + case ']': + case '{': + case '}': + case 'T': case '~': parcoursMapSimple[x][y] = 0; break; Index: C:/botneu/ct-Sim/parcours/testline_crossings.xml =================================================================== --- C:/botneu/ct-Sim/parcours/testline_crossings.xml (revision 0) +++ C:/botneu/ct-Sim/parcours/testline_crossings.xml (revision 0) @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!DOCTYPE collection SYSTEM "parcours.dtd"> + +<world> + <description> + Dieses ist ein Linien-Testparcours mit Kreuzungen und zyklenfrei + </description> + + <parcours> + + <line>============#</line> + <line>#* L L *#</line> + <line># }T-{ #</line> + <line># L| L #</line> + <line># /--[-\ #</line> + <line>#L-]-L| | #</line> + <line># | | #</line> + <line># /--[L[--Z#</line> + <line># | L | #</line> + <line>#* . . *#</line> + <line>===1====2===#</line> + </parcours> + + <optics> + <appearance type="X"> + <description>quadratische Wand</description> + <texture>textures/rock_wall.jpg</texture> + <color>#999999</color> + </appearance> + <appearance type="#"> + <description>senkrechte Wand</description> + <clone>X</clone> + </appearance> + <appearance type="="> + <description>wagrechte Wand</description> + <clone>X</clone> + </appearance> + + + <appearance type="."> + <description>Fussboden im Eingangsbereich</description> + <color type="ambient">#FFFFFF</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type=" "> + <description>Fussboden im Labyrinth</description> + <color type="ambient">#606060</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type="1"> + <description>Fussboden des Startfeldes 1</description> + <color type="ambient">990000</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type="2"> + <description>Fussboden des Startfeldes 2</description> + <color type="ambient">#000099</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type="0"> + <description>Fussboden des Default-Startfeldes</description> + <color type="ambient">#FFFFFF</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type="Z"> + <description>Fussboden des Zielfeldes 0</description> + <color type="ambient">#66FF00</color> + <color type="diffuse">#CCFFFF</color> + </appearance> + + <appearance type="*"> + <description>Lichtkugel</description> + <color type="emmissive">#FFFF90</color> + </appearance> + + <appearance type="-"> + <description>Linie</description> + <color type="ambient">#000000</color> + <color type="diffuse">#000000</color> + <color type="specular">#000000</color> + <color type="emmissive">#000000</color> + </appearance> + + <appearance type="|"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="/"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="\"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="+"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="["> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="T"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="]"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="}"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="{"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="~"> + <description>Linie</description> + <clone>-</clone> + </appearance> + + <appearance type="L"> + <description>Fussboden mit Loch</description> + <color type="ambient">#000000</color> + <color type="diffuse">#000000</color> + </appearance> + + </optics> + + +</world> \ No newline at end of file Index: C:/botneu/ct-Sim/parcours/testline.xml =================================================================== --- C:/botneu/ct-Sim/parcours/testline.xml (revision 1451) +++ C:/botneu/ct-Sim/parcours/testline.xml (working copy) @@ -108,6 +108,27 @@ <clone>-</clone> </appearance> + <appearance type="["> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="T"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="]"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="}"> + <description>Linie</description> + <clone>-</clone> + </appearance> + <appearance type="{"> + <description>Linie</description> + <clone>-</clone> + </appearance> + </optics> Index: C:/botneu/ct-Sim/Changelog.txt =================================================================== --- C:/botneu/ct-Sim/Changelog.txt (revision 1451) +++ C:/botneu/ct-Sim/Changelog.txt (working copy) @@ -1,5 +1,7 @@ Changelog fuer c't-Sim ====================== +2008-06-30 Frank Menzel [menzelfr@xxxxxxx]: Neue Linienkreuzungen, X und T-Kreuzungen (alle 4 Richtungen), neuer Parcour testline_crossings, Beschreibung am Anfang von ParcoursLoader.java + 2008-04-01 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: LEDs vorne (links/rechts) vertauscht, so dass die linke LED links angezeigt wird und die Rechte rechts 2008-03-29 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Sim-Applet geht nun wieder (hatte keinen Controller!)