public void CreateMap() { if (roadStart.Iterated == false) { roadStart.X = roadStart.Y = 0; roadStart.Iterated = true; } AvailableRoads ar = roadStart.getNextRoads(); if (ar.roads[0] != null) { ShowMapSetRoad(ar.roads[0], roadStart, 0); } if (ar.roads[1] != null) { ShowMapSetRoad(ar.roads[1], roadStart, 1); } if (ar.roads[2] != null) { ShowMapSetRoad(ar.roads[2], roadStart, 2); } if (ar.roads[3] != null) { ShowMapSetRoad(ar.roads[3], roadStart, 3); } // Ezen a ponton minden útnak már be van állítva az X és Y koordinátája // int MinX = 0, MinY = 0; MaxX = 0; MaxY = 0; ListIterator<Road> i = roads.listIterator(); Road current; while (i.hasNext()) { current = i.next(); if (current.X < MinX) MinX = current.X; if (current.Y < MinY) MinY = current.Y; if (current.X > MaxX) MaxX = current.X; if (current.Y > MaxY) MaxY = current.Y; } while (i.hasPrevious()) { current = i.previous(); current.X -= MinX; current.Y -= MinY; } MaxX = (MaxX - MinX) + 1; MaxY = (MaxY - MinY) + 1; }
/** * ShowMap indítja el ezt a rekurzív fv-t ami bejárja az utakat és kitölti az X,Y koordinátájuk * * @param current Az aktuális, amelynek beállítjuk pozícióját * @param prev Az út, ami mellé pozícionálunk * @param direction Az irány, amiben csatlakozunk az előző úthoz */ public void ShowMapSetRoad(Road current, Road prev, int direction) { if (current.Iterated) return; // Már bejártuk ezt az utat AvailableRoads ar = current.getNextRoads(); // Pozícionáld ezt az új utat (prev)// switch (direction) { case 0: // A prev út tőlünk jobbra van// current.X = prev.X - 1; current.Y = prev.Y; break; case 1: // A prev út alattunk van // current.X = prev.X; current.Y = prev.Y - 1; break; case 2: // A prev út tőlünk balra van // current.X = prev.X + 1; current.Y = prev.Y; break; case 3: // A prev út felettünk van // current.X = prev.X; current.Y = prev.Y + 1; break; } current.Iterated = true; if (ar.roads[0] != null) { ShowMapSetRoad(ar.roads[0], current, 0); } if (ar.roads[1] != null) { ShowMapSetRoad(ar.roads[1], current, 1); } if (ar.roads[2] != null) { ShowMapSetRoad(ar.roads[2], current, 2); } if (ar.roads[3] != null) { ShowMapSetRoad(ar.roads[3], current, 3); } }