Exemplo n.º 1
0
 public void move() {
   if (_toEat.getEaten()) {
     _toEat = null;
     _targetPos = null;
     _toExecute = "arret";
   } else {
     if (_targetPos.getX() == _actualPos.getX() && _targetPos.getY() == _actualPos.getY()) {
       System.out.println("Trying to eat");
       _toEat.eat();
     } else {
       // On change la position du pigeon
       // on v�rifie sur l'axe x
       if (_actualPos.getX() != _targetPos.getX()) {
         if (_actualPos.getX() < _targetPos.getX()) {
           this._position = "droite";
           this._actualPos.setX(_actualPos.getX() + 1);
         } else {
           this._position = "gauche";
           this._actualPos.setX(_actualPos.getX() - 1);
         }
       }
       // on v�rifie sur l'axe y
       if (_actualPos.getY() != _targetPos.getY()) {
         if (_actualPos.getY() < _targetPos.getY()) {
           this._actualPos.setY(_actualPos.getY() + 1);
         } else {
           this._actualPos.setY(_actualPos.getY() - 1);
         }
       }
     }
   }
 }
Exemplo n.º 2
0
    @Override
    public void run() {
      // System.out.println("update map now");
      LinkedList<EdgeOp> backlist = new LinkedList<>();
      PublicData pd = PublicData.getData();
      int i;
      PosOp tmpPosOp;
      EdgeOp tmpEdgeOp;
      Pos tmpPos;
      for (i = 0; i < pd.posTask.size(); i++) {
        tmpPosOp = pd.posTask.get(i);
        if (tmpPosOp.op == 0) { // op==0 add a pos
          MapViewer.this.g.addVertex(new Integer(tmpPosOp.pos));
          tmpPos = pd.agentsPos.get(tmpPosOp.pos);
          MapViewer.this.layout.setLocation(tmpPosOp.pos, tmpPos.getX(), tmpPos.getY());
        } else {
          MapViewer.this.g.removeVertex(tmpPosOp.pos);
        }
      }
      for (i = 0; i < pd.edgeTask.size(); i++) {
        tmpEdgeOp = pd.edgeTask.get(i);
        if (tmpEdgeOp.op == 0) { // add a edge
          // int edgeNum=g.getEdgeCount();
          MapViewer.this.g.addEdge(edgeCnt, tmpEdgeOp.start, tmpEdgeOp.end);
          backlist.add(new EdgeOp(1, edgeCnt, 0, pd.displayCnt));
          edgeCnt++;
        } else { // remove

          if (tmpEdgeOp.delay <= 0) {
            g.removeEdge(tmpEdgeOp.start);
          } else {
            tmpEdgeOp.delay--;
            backlist.add(tmpEdgeOp);
          }
        }
      }
      pd.resetTask();
      pd.edgeTask = backlist;
      vv.repaint();
      // throw new UnsupportedOperationException("Not supported yet."); //To change body of
      // generated methods, choose Tools | Templates.
    }
Exemplo n.º 3
0
 private void parseRect() {
   // Список символов
   List<List<Dot>> dotvv = new ArrayList<List<Dot>>();
   for (int i = 0; i < tc.getSymbols().size(); i++) {
     List<Dot> dotv = new ArrayList<Dot>();
     // Список определений символов
     // Нарисовать элементы Symbol
     // Нарисовать строки из полей Field
     for (int j = 0; j < tc.getSymbols().get(i).getField2s().size(); j++) {
       if (tc.getSymbols().get(i).getField2s().get(j).getShow() == 1) {
         Dot dd1 =
             new Dot(
                 (tc.getSymbols().get(i).getPos().getX()
                     + tc.getSymbols().get(i).getField2s().get(j).getPos().getX()),
                 (tc.getSymbols().get(i).getPos().getY()
                     + tc.getSymbols().get(i).getField2s().get(j).getPos().getY()));
         dotv.add(dd1);
         if (ModelDSN.debug >= 2)
           System.out.println("0.Added x-" + dd1.getX() + ", y-" + dd1.getY());
       }
     }
     for (int j = 0; j < tc.getSymbolDefs().size(); j++) {
       if (tc.getSymbols().get(i).getId() == tc.getSymbolDefs().get(j).getId()) {
         // Координаты правого нижнего угла
         for (int k = 0;
             k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getRectangles().size();
             k++) {
           Dot dd1 =
               new Dot(
                   tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getRectangles()
                           .get(k)
                           .getA()
                           .getX(),
                   tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getRectangles()
                           .get(k)
                           .getA()
                           .getY());
           Dot dd2 =
               new Dot(
                   tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getRectangles()
                           .get(k)
                           .getB()
                           .getX(),
                   tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getRectangles()
                           .get(k)
                           .getB()
                           .getY());
           dotv.add(dd1);
           dotv.add(dd2);
         }
         // Наристовать строки
         for (int k = 0; k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getTexts().size(); k++) {
           Dot dd1 =
               new Dot(
                   tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getTexts()
                           .get(k)
                           .getDp()
                           .getX(),
                   tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getTexts()
                           .get(k)
                           .getDp()
                           .getY());
           Dot dd2 =
               new Dot(
                   tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getTexts()
                           .get(k)
                           .getDp()
                           .getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getTexts()
                           .get(k)
                           .getStr()
                           .length(),
                   tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getTexts()
                           .get(k)
                           .getDp()
                           .getY()
                       + 3);
           if (ModelDSN.debug >= 2)
             System.out.println("1.Added x-" + dd1.getX() + ", y-" + dd1.getY());
           if (ModelDSN.debug >= 2)
             System.out.println("2.Added x-" + dd2.getX() + ", y-" + dd2.getY());
           if (ModelDSN.debug >= 1)
             System.out.println(
                 "Str - "
                     + tc.getSymbolDefs().get(j).getTinyCadSymbol().getTexts().get(k).getStr());
           dotv.add(dd1);
           dotv.add(dd2);
         }
         // Нарисовать круги
         for (int k = 0;
             k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getEllipses().size();
             k++) {
           int x1 =
               Math.round(
                   (tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getEllipses()
                           .get(k)
                           .getA()
                           .getX()));
           int y1 =
               Math.round(
                   (tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getEllipses()
                           .get(k)
                           .getA()
                           .getY()));
           int x2 =
               Math.round(
                   (tc.getSymbols().get(i).getPos().getX()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getEllipses()
                           .get(k)
                           .getB()
                           .getX()));
           int y2 =
               Math.round(
                   (tc.getSymbols().get(i).getPos().getY()
                       + tc.getSymbolDefs()
                           .get(j)
                           .getTinyCadSymbol()
                           .getEllipses()
                           .get(k)
                           .getB()
                           .getY()));
           Dot dd1 = new Dot(Math.min(x1, x2), Math.min(y1, y2));
           Dot dd2 =
               new Dot(
                   Math.min(x1, x2) + (Math.max(x1, x2) - Math.min(x1, x2)),
                   Math.min(y1, y2) + (Math.max(y1, y2) - Math.min(y1, y2)));
           dotv.add(dd1);
           dotv.add(dd2);
         }
         // Нарисовать POLYGON линии
         for (int k = 0;
             k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getPolygons().size();
             k++) {
           Pos dp = tc.getSymbolDefs().get(j).getTinyCadSymbol().getPolygons().get(k).getDp();
           for (int l = 0;
               l
                   < tc.getSymbolDefs()
                       .get(j)
                       .getTinyCadSymbol()
                       .getPolygons()
                       .get(k)
                       .getDpointv()
                       .size();
               l++) {
             Dot dd1 =
                 new Dot(
                     tc.getSymbols().get(i).getPos().getX() + dp.getX(),
                     tc.getSymbols().get(i).getPos().getY() + dp.getY());
             Dot dd2 =
                 new Dot(
                     tc.getSymbols().get(i).getPos().getX()
                         + dp.getX()
                         + tc.getSymbolDefs()
                             .get(j)
                             .getTinyCadSymbol()
                             .getPolygons()
                             .get(k)
                             .getDpointv()
                             .get(l)
                             .getDp()
                             .getX(),
                     tc.getSymbols().get(i).getPos().getY()
                         + dp.getY()
                         + tc.getSymbolDefs()
                             .get(j)
                             .getTinyCadSymbol()
                             .getPolygons()
                             .get(k)
                             .getDpointv()
                             .get(l)
                             .getDp()
                             .getY());
             dotv.add(dd1);
             dotv.add(dd2);
           }
         }
       }
     }
     dotvv.add(dotv);
   }
   // Отсортировать список dotvv по координатам x
   for (int i = 0; i < dotvv.size(); i++) {
     Collections.sort(dotvv.get(i), new DotXComparator());
     tc.getModules()
         .add(
             new Module(
                 new Dot(dotvv.get(i).get(0).getX(), 0),
                 new Dot(dotvv.get(i).get(dotvv.get(i).size() - 1).getX(), 0)));
   }
   // Отсортировать список dotvv по координатам y
   for (int i = 0; i < dotvv.size(); i++) {
     Collections.sort(dotvv.get(i), new DotYComparator());
     String val = "No name";
     List<Field2> allFields = new ArrayList<Field2>();
     for (int j = 0; j < tc.getSymbols().get(i).getField2s().size(); j++) {
       if (tc.getSymbols().get(i).getField2s().get(j).getDescription().equals("Ref")) {
         val = tc.getSymbols().get(i).getField2s().get(j).getValue();
       }
       allFields.add(tc.getSymbols().get(i).getField2s().get(j));
     }
     tc.getModules()
         .set(
             i,
             new Module(
                 new Dot(tc.getModules().get(i).getA().getX(), dotvv.get(i).get(0).getY()),
                 new Dot(
                     tc.getModules().get(i).getB().getX(),
                     dotvv.get(i).get(dotvv.get(i).size() - 1).getY()),
                 val,
                 allFields));
     if (ModelDSN.debug >= 2) {
       System.out.println(
           "X1-"
               + tc.getModules().get(i).getA().getX()
               + ", Y1-"
               + tc.getModules().get(i).getA().getX()
               + ", X2-"
               + tc.getModules().get(i).getB().getX()
               + ", Y2-"
               + tc.getModules().get(i).getB().getY());
     }
   }
 }
Exemplo n.º 4
0
 public void flood(Pos pos) {
   flood(pos.getX(), pos.getY(), true);
   Minesweeper.getGame().checkWin();
 }
Exemplo n.º 5
0
 public Tile getTile(Pos pos) {
   return getTile(pos.getX(), pos.getY());
 }
Exemplo n.º 6
0
  public void move_randomly() {
    Random r = new Random();
    int valeur = r.nextInt(8);

    switch (valeur) {
      case 0:
        if (_actualPos.getX() + 4 < 800) {
          _position = "droite";
          _actualPos.setX(_actualPos.getX() + 4);
        }
        break;
      case 1:
        if (_actualPos.getX() + 4 < 800 && _actualPos.getY() + 4 < 500) {
          _position = "droite";
          _actualPos.setX(_actualPos.getX() + 4);
          _actualPos.setY(_actualPos.getY() + 4);
        }
        break;
      case 2:
        if (_actualPos.getY() + 4 < 500) {
          _actualPos.setY(_actualPos.getY() + 4);
        }
        break;
      case 3:
        if (_actualPos.getX() - 4 > 0 && _actualPos.getY() + 4 < 500) {
          _position = "gauche";
          _actualPos.setX(_actualPos.getX() - 4);
          _actualPos.setY(_actualPos.getY() + 4);
        }
        break;
      case 4:
        if (_actualPos.getX() - 4 > 0) {
          _position = "gauche";
          _actualPos.setX(_actualPos.getX() - 4);
        }
        break;
      case 5:
        if (_actualPos.getX() - 4 > 0 && _actualPos.getY() - 4 > 0) {
          _position = "gauche";
          _actualPos.setX(_actualPos.getX() - 4);
          _actualPos.setY(_actualPos.getY() - 4);
        }
        break;
      case 6:
        if (_actualPos.getY() - 4 > 0) {
          _actualPos.setY(_actualPos.getY() - 4);
        }
        break;
      case 7:
        if (_actualPos.getX() + 4 < 800 && _actualPos.getY() - 4 > 0) {
          _position = "droite";
          _actualPos.setX(_actualPos.getX() + 4);
          _actualPos.setY(_actualPos.getY() - 4);
        }
        break;
      default:
        System.out.println("NOT SUPPOSED TO HAPPEN AHDHGSGSDFHDFGHDFH");
    }
  }