예제 #1
0
  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;
  }
예제 #2
0
  /**
   * 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);
    }
  }