Skip to main content
Sign in
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
  • variant
2 results

Target

Select target project
  • LAMROUS Anis abraham / FirefighterStarter
  • MANSOUR Chadi / FirefighterStarter Mansour Chadi Chahine Rami
  • RADELLAH Badr / FirefighterStarter
  • NDIAYE Ousseynou / FirefighterStarter
  • COUETOUX Basile / FirefighterStarter
  • BACHTARZI Imed eddine / FirefighterStarter
  • ZOUAOUI Wassim / FireFighter
  • ABDELMOUDJIB Mohammed el amine / FirefighterStarter
  • OUALAN Yanis / FirefighterStarter
  • BELHACHEMI Mehdi / FirefighterStarter
  • LABOUREL Arnaud / Firefighter template
  • PARRA Luis / Firefighter_LuisPARRA_YanisLOUNADI
  • VIOLA Anthony / Firefighter Project
  • KALLEL Mohamed ali / Kallel_Mohamed_Firefighter
  • MAAZOUZ Ilyas / Firefighter template
  • PHAM Thi ngoc linh / Firefighter template
  • LATIOUI Abdelilah / Firefighter template
  • SECK Idrissa / Firefighter template
  • YOUSSOUF Ali moussa / Firefighter template
  • WILSON Danny adjete / Firefighter template
20 results
Select Git revision
  • main
  • variant
2 results
Show changes

Commits on Source 5

4 files
+ 67
20
Compare changes
  • Side-by-side
  • Inline

Files

+20 −0
Original line number Original line Diff line number Diff line
package model;

import javafx.geometry.Pos;
import util.Position;

import java.util.Set;

public class Fire {
    private Position firePositions;
    public Fire(Position position){
          this.firePositions = position;
    }
    public Position getFirePositions(){
        return this.firePositions;

    }
    public void setFirePositions(Position firePositions){
        this.firePositions = firePositions;
    }
}
+22 −0
Original line number Original line Diff line number Diff line
package model;

import util.Position;

import java.util.List;

public class FireFighter {

    private Position firefighterPositions;

    public FireFighter(Position firefighterPositions) {
        this.firefighterPositions = firefighterPositions;

    }

    public void setFirefighterPosition(Position firefighterPositions) {
            this.firefighterPositions = firefighterPositions;
    }
    public Position getFirefighterPosition() {
        return firefighterPositions;
    }
}
+24 −19
Original line number Original line Diff line number Diff line
package model;
package model;


import util.Position;
import util.Position;
import util.TargetStrategy;


import java.util.*;
import java.util.*;


@@ -11,8 +12,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
  private final int initialFireCount;
  private final int initialFireCount;
  private final int initialFirefighterCount;
  private final int initialFirefighterCount;
  private final TargetStrategy targetStrategy = new TargetStrategy();
  private final TargetStrategy targetStrategy = new TargetStrategy();
  private List<Position> firefighterPositions;
  private List<FireFighter> firefighter;
  private Set<Position> firePositions;
  private Set<Fire> fire;
  private Map<Position, List<Position>> neighbors = new HashMap();
  private Map<Position, List<Position>> neighbors = new HashMap();
  private final Position[][] positions;
  private final Position[][] positions;
  private int step = 0;
  private int step = 0;
@@ -40,12 +41,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
  }
  }


  public void initializeElements() {
  public void initializeElements() {
    firefighterPositions = new ArrayList<>();
    firefighter= new ArrayList<>();
    firePositions = new HashSet<>();
    fire = new HashSet<>();
    for (int index = 0; index < initialFireCount; index++)
    for (int index = 0; index < initialFireCount; index++)
      firePositions.add(randomPosition());
      fire.add(new Fire(randomPosition()));
    for (int index = 0; index < initialFirefighterCount; index++)
    for (int index = 0; index < initialFirefighterCount; index++)
      firefighterPositions.add(randomPosition());
      firefighter.add(new FireFighter(randomPosition()));
  }
  }


  private Position randomPosition() {
  private Position randomPosition() {
@@ -55,10 +56,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
  @Override
  @Override
  public List<ModelElement> getState(Position position) {
  public List<ModelElement> getState(Position position) {
    List<ModelElement> result = new ArrayList<>();
    List<ModelElement> result = new ArrayList<>();
    for (Position firefighterPosition : firefighterPositions)
    for (FireFighter firefighter : firefighter)
      if (firefighterPosition.equals(position))
      if (firefighter.getFirefighterPosition().equals(position))
        result.add(ModelElement.FIREFIGHTER);
        result.add(ModelElement.FIREFIGHTER);
    if (firePositions.contains(position))

    for (Fire fire: fire)
      if (fire.getFirePositions().equals(position))
       result.add(ModelElement.FIRE);
       result.add(ModelElement.FIRE);
    return result;
    return result;
  }
  }
@@ -84,10 +87,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
    List<Position> modifiedPositions = new ArrayList<>();
    List<Position> modifiedPositions = new ArrayList<>();
    if (step % 2 == 0) {
    if (step % 2 == 0) {
      List<Position> newFirePositions = new ArrayList<>();
      List<Position> newFirePositions = new ArrayList<>();
      for (Position fire : firePositions) {
      for (Fire fire : fire) {
        newFirePositions.addAll(neighbors.get(fire));
        newFirePositions.addAll(neighbors.get(fire));
      }
      }
      firePositions.addAll(newFirePositions);
      for(Position position : newFirePositions) {
        fire.add(new Fire(position));
      }
      modifiedPositions.addAll(newFirePositions);
      modifiedPositions.addAll(newFirePositions);
    }
    }
    return modifiedPositions;
    return modifiedPositions;
@@ -102,13 +107,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
  private List<Position> updateFirefighters() {
  private List<Position> updateFirefighters() {
    List<Position> modifiedPosition = new ArrayList<>();
    List<Position> modifiedPosition = new ArrayList<>();
    List<Position> firefighterNewPositions = new ArrayList<>();
    List<Position> firefighterNewPositions = new ArrayList<>();
    for (Position firefighterPosition : firefighterPositions) {
    for (FireFighter firefighterPosition : firefighter) {
      Position newFirefighterPosition =
      Position newFirefighterPosition =
              targetStrategy.neighborClosestToFire(firefighterPosition,
              targetStrategy.neighborClosestToFire(firefighterPosition,
                      firePositions, neighbors);
                      firePositions, neighbors);
      firefighterNewPositions.add(newFirefighterPosition);
      firefighterNewPositions.add(newFirefighterPosition);
      extinguish(newFirefighterPosition);
      extinguish(newFirefighterPosition);
      modifiedPosition.add(firefighterPosition);
      modifiedPosition.add(firefighterPosition.getFirefighterPosition());
      modifiedPosition.add(newFirefighterPosition);
      modifiedPosition.add(newFirefighterPosition);
      List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
      List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
              .filter(firePositions::contains).toList();
              .filter(firePositions::contains).toList();
@@ -127,20 +132,20 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
  }
  }


  private void extinguish(Position position) {
  private void extinguish(Position position) {
    firePositions.remove(position);
    fire.remove(position);
  }
  }




  @Override
  @Override
  public void setState(List<ModelElement> state, Position position) {
  public void setState(List<ModelElement> state, Position position) {
    firePositions.remove(position);
    extinguish(position);
    for (; ; ) {
    for (; ; ) {
      if (!firefighterPositions.remove(position)) break;
      if (!firefighterPostion.remove(position)) break;
    }
    }
    for (ModelElement element : state) {
    for (ModelElement element : state) {
      switch (element) {
      switch (element) {
        case FIRE -> firePositions.add(position);
        case FIRE -> fire.add(new Fire(position));
        case FIREFIGHTER -> firefighterPositions.add(position);
        case FIREFIGHTER -> firefighter.add(new FireFighter(position));
      }
      }
    }
    }
  }
  }
+1 −1
Original line number Original line Diff line number Diff line
package model;
package util;


import util.Position;
import util.Position;