-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDrone.java
87 lines (60 loc) · 2.59 KB
/
Drone.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import java.util.ArrayList;
abstract class Drone {
Case positionActuelle;
protected String nomDuDrone ;
protected static int compteurDeMac=1;
protected int adresseMac;
protected Case positionInitiale;
protected ArrayList<String> historiquePosition= new ArrayList<>();
protected Terrain terrainActuel = new Terrain(10,10);
//******** Constructeurs
protected Drone(String nomDuDrone, Terrain terrainActuel) throws Exception{
this.nomDuDrone=nomDuDrone;
this.adresseMac=compteurDeMac;
this.terrainActuel = terrainActuel;
compteurDeMac++;
positionInitiale=new Case(((int) (Math.random()* terrainActuel.getNombreDeLignes())),((int) (Math.random()* terrainActuel.getNombreDeColonnes())) );
this.positionActuelle=positionInitiale;
this.historiquePosition.add(positionActuelle.toString());
}
protected Drone(String nomDuDrone) throws Exception{
this.nomDuDrone=nomDuDrone;
this.adresseMac=compteurDeMac;
compteurDeMac++;
positionInitiale=new Case(((int) (Math.random()*this.terrainActuel.getNombreDeLignes())),((int) (Math.random()*this.terrainActuel.getNombreDeColonnes())) );
this.positionActuelle=positionInitiale;
this.historiquePosition.add(positionActuelle.toString()+" sur terrain : "+this.terrainActuel.toString());
}
//************ Getters
public Case getPositionActuelle() {
return positionActuelle;
}
public int getAdresseMac() {
return adresseMac;
}
public Case getPositionInitiale() {
return positionInitiale;
}
public ArrayList<String> getHistoriquePosition() {
return historiquePosition;
}
public String getNomDuDrone() {
return nomDuDrone;
}
//******Setters
public void setNomDuDrone(String nomDuDrone) {
this.nomDuDrone = nomDuDrone;
}
protected void setTerrain( Terrain nouveauTerrain){
this.terrainActuel =nouveauTerrain;
this.positionActuelle= new Case(((int) (Math.random()* terrainActuel.getNombreDeLignes())),((int) (Math.random()* terrainActuel.getNombreDeColonnes())) );
this.historiquePosition.add(positionActuelle.toString()+" sur nouveau terrain : "+this.terrainActuel.toString());
//déplacement en 0-0 à chaque changement de terrain et suppression de l'ancienne historique
/*Iterator<String> i=historiquePosition.iterator();
while (i.hasNext()){
i.next();
i.remove();
}*/
}
protected abstract void seDeplacer(int ligne, int colonne) throws Exception;
}