diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/.settings/org.eclipse.core.runtime.prefs b/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 0000000000000000000000000000000000000000..5a0ad22d2a76684139fad95f6b8d209c7cd0d078 --- /dev/null +++ b/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/doc/sprint-3/README.md b/doc/sprint-3/README.md index 704d0a15594abc2eb39c7394b26af5e7ec37b27e..3e1662b3ebaae0f473f11a981d7a53903091c033 100644 --- a/doc/sprint-3/README.md +++ b/doc/sprint-3/README.md @@ -1,12 +1,12 @@ # Sprint 3 -## D�mo + Planification du sprint suivant +## Démo + Planification du sprint suivant ### Ce que nous avons fait durant ce sprint -Cr�ation des evenements et des d�placement +Création des evenements et des déplacement mise en place de l'affichage ### Ce que nous allons faire durant le prochain sprint -ajout� les unit�s et r�alis� le syst�me d'action +ajouté les unités et réalisé le système d'action -## R�tro +## Rétro diff --git a/doc/sprint-4/README.md b/doc/sprint-4/README.md new file mode 100644 index 0000000000000000000000000000000000000000..43ba1514b6f3061193fa707b5c5341d05b05505a --- /dev/null +++ b/doc/sprint-4/README.md @@ -0,0 +1,13 @@ +# Sprint 4 + +## Démo + Planification du sprint suivant + +### Ce que nous avons fait durant ce sprint +Toutes les unités ont été ajouté +Les actions sont misent en places via l'interface + +### Ce que nous allons faire durant le prochain sprint +réalisation partiel de l'interface +réalisation des événements + +## Rétro \ No newline at end of file diff --git a/doc/sprint-4/radiateur.jpg b/doc/sprint-4/radiateur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2e2292acd77105993eea3cf70fd5774e3711188 Binary files /dev/null and b/doc/sprint-4/radiateur.jpg differ diff --git a/doc/sprint-5/README.md b/doc/sprint-5/README.md new file mode 100644 index 0000000000000000000000000000000000000000..41c707f2f190b8d6ec971772956b185210e02bfa --- /dev/null +++ b/doc/sprint-5/README.md @@ -0,0 +1,16 @@ +# Sprint 5 + +## Démo + Planification du sprint suivant + +### Ce que nous avons fait durant ce sprint +réalisation partiel de l'interface +réalisation des événements +réalisateur des cases procédurale + +### Ce que nous allons faire durant le prochain sprint +mise en place du brouillard de guerre +réalisation de l'interface +mise en place du téléporteur +mise en place du système d'items + +## Rétro \ No newline at end of file diff --git a/doc/sprint-5/radiateur.jpg b/doc/sprint-5/radiateur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd5524346e2a9318db3455b2c2b368de4df61587 Binary files /dev/null and b/doc/sprint-5/radiateur.jpg differ diff --git a/doc/sprint-6/README.md b/doc/sprint-6/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4bf312c6372afd2a781cf75fd9b121f589b363f2 --- /dev/null +++ b/doc/sprint-6/README.md @@ -0,0 +1,14 @@ +# Sprint 5 + +## Démo + Planification du sprint suivant + +### Ce que nous avons fait durant ce sprint +mise en place du brouillard de guerre +réalisation de l'interface +mise en place du téléporteur +mise en place du système d'items + +### Ce que nous allons faire durant le prochain sprint +Avoir un jeu un minimum fonctionnel avec l'ajout des camps, de la coronne sur la map + +## Rétro \ No newline at end of file diff --git a/doc/sprint-6/radiateur.jpg b/doc/sprint-6/radiateur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..57389f92c49d9bf293fd4b4dfb455cafe71a552f Binary files /dev/null and b/doc/sprint-6/radiateur.jpg differ diff --git a/src/events/FortEvent.java b/src/events/FortEvent.java index 604f4107b1e7051ddeb9e47f2e59ca543cd27296..6d589be5fd006012f7d8a1fd65f68dcebf845355 100644 --- a/src/events/FortEvent.java +++ b/src/events/FortEvent.java @@ -19,11 +19,13 @@ public class FortEvent implements Evenements{ uniteVisiteur.setArmor(uniteVisiteur.getArmor()-fortDamage); if (Combattre.isAlive(uniteVisiteur)) { owner = visiteur; + uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur); } }else if(owner.getNomJoueur().equals(visiteur.getNomJoueur())) { System.out.println("Vous accupez maintenant votre fort !"); }else{ owner = visiteur; + uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur); } } diff --git a/src/events/TeleportationEvent.java b/src/events/TeleportationEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..ac6adb9d0372b389f69afbe2ac96dc318c276cd8 --- /dev/null +++ b/src/events/TeleportationEvent.java @@ -0,0 +1,15 @@ +package events; + +import main.Case; + +public class TeleportationEvent implements Evenements{ + + public void action(Case eventCase) { + //TODO:téléporter l'unité sur une case random qui n'est ni un + } + + public String getName() { + return "Teleportation Event"; + } + +} diff --git a/src/items/Crown.java b/src/items/Crown.java index 97da0c6ee93d6d1933b383591a117f2996e6a85a..939fffd9cef45fe8551d9c5e4e8ab28b41906be7 100644 --- a/src/items/Crown.java +++ b/src/items/Crown.java @@ -14,15 +14,18 @@ public class Crown extends Items{ @Override public void usage(Joueur joueur) { - //TODO: premi�re version, tu prend la couronne tu gagne, ensuite faire de syst�me de r�cup et d'arriver au camp - joueur.setWin(true); + return; } @Override - public void recup(Joueur joueur) { - Unite unite = this.getItemCase().getUnite(); + public void recup(Joueur joueur, Items item, Unite unite) { + + System.out.println(unite.toString()); this.setItemCase(null); - unite.setItem(this); + System.out.println(item.getName()); + unite.setItem(item); + unite.setSymbol('c'); + unite.getPlateau().getCase(unite.getX(), unite.getY()).setItem(null); } } diff --git a/src/items/Items.java b/src/items/Items.java index fcf570e9e7eb5063b1da5ff55a4ebc05fc60b5cc..fbc82293b955c27117dd8daffc4924cf2b8b90b1 100644 --- a/src/items/Items.java +++ b/src/items/Items.java @@ -2,10 +2,12 @@ package items; import main.Case; import main.Joueur; +import units.Unite; public abstract class Items { private String name; private Case itemCase; + private int power = 1; public Items(String name, Case itemCase) { super(); @@ -17,6 +19,15 @@ public abstract class Items { return name; } + public int getPower() { + return power; + } + + + public void setPower(int power) { + this.power = power; + } + public Case getItemCase() { return itemCase; } @@ -27,5 +38,5 @@ public abstract class Items { public abstract void usage(Joueur joueur); - public abstract void recup(Joueur joueur); + public abstract void recup(Joueur joueur, Items item,Unite unite); } diff --git a/src/main/Case.java b/src/main/Case.java index 40864f49a9b22eb2fe2d0244e0dcfc9d3084a159..f2f38196cae14f311b86cf6dc853cf26d92d6551 100644 --- a/src/main/Case.java +++ b/src/main/Case.java @@ -1,20 +1,27 @@ package main; +import java.util.ArrayList; +import java.util.List; + +import events.Evenements; +import items.Items; import units.Unite; public class Case { private Type type; private boolean decouverte; - private Event event; + private List<Evenements> events; + private Items item; private Unite unite; private int x; private int y; + private boolean aEteVu; public Case(Type type) { this.type = type; this.decouverte = false; - this.event = null; this.unite = null; + this.events = new ArrayList<Evenements>(); this.x = 0; this.y = 0; } @@ -36,12 +43,16 @@ public class Case { public boolean isDecouverte() { return decouverte; - } + } - public Event getEvent() { - return event; + public List<Evenements> getEvents() { + return events; } - + + public boolean addEvents(Evenements event) { + return events.add(event); + } + public Unite getUnite() { return unite; } @@ -50,10 +61,6 @@ public class Case { this.decouverte = decouverte; } - public void setEvent(Event event) { - this.event = event; - } - public void setUnite(Unite unite) { this.unite = unite; this.type = Type.UNITE; @@ -61,18 +68,31 @@ public class Case { public void setType(Type type) { this.type = type; } + + public Items getItem() { + return item; + } + + public void setItem(Items item) { + this.item = item; + } + public String toString() { +/* if (!this.isDecouverte()) { return "~ "; } + else */if (this.getItem() != null && this.getItem().getName().equalsIgnoreCase("crown")) { + return "c "; + } else if (this.type == Type.GRASS) { return ". "; } else if (this.type == Type.MOUNTAIN) { - return "Ѧ "; + return "m "; } else if (this.type == Type.FORT) { - return "♜ "; + return "t "; } else if (this.type == Type.CAMP) { return "O "; diff --git a/src/main/Event.java b/src/main/Event.java deleted file mode 100644 index d661d23d8c20f193c5083b41967c68adf65d7c03..0000000000000000000000000000000000000000 --- a/src/main/Event.java +++ /dev/null @@ -1,5 +0,0 @@ -package main; - -public enum Event { - FORT; -} diff --git a/src/main/Interface.java b/src/main/Interface.java index aa7ba6f86ad063c2a704591130e526b09f6380cc..e4ac55e248668c50a79a15a61b5f092552af9eb8 100644 --- a/src/main/Interface.java +++ b/src/main/Interface.java @@ -1,5 +1,7 @@ package main; +import units.Unite; + public class Interface { private static int rep = 0; public static void start() { @@ -24,11 +26,36 @@ public class Interface { for(int i = 0; i< j1.getArmee().size(); i++) { System.out.println(i+": "+ j1.getArmee().get(1).toString()); } - Scan.scan(j1.getArmee().size()); - System.out.println("vous pouvez déplacer une unité..."); - System.out.println("1: Vers le haut"); - System.out.println("2: Vers le bas"); - System.out.println("3: Vers la droite"); - System.out.println("4: Vers la gauche"); + Unite u =j1.getArmee().get((Scan.scan(j1.getArmee().size()))); + System.out.println("vous pouvez..."); + if(u.getX()>0) { + if(plateau.getCase(u.getX()-1, u.getY()).getUnite()!=null){ + System.out.println("1: Combattre l'unité au-dessus"); + }else { + System.out.println("1: Se déplacer vers le haut"); + } + } + if(u.getX()<plateau.getPlateau().length*5) { + if(plateau.getCase(u.getX()+1, u.getY()).getUnite()!=null){ + System.out.println("2: Combattre l'unité en bas"); + }else { + System.out.println("2: Se déplacer vers le bas"); + } + } + if(u.getY()<plateau.getPlateau().length*5) { + if(plateau.getCase(u.getX(), u.getY()+1).getUnite()!=null){ + System.out.println("3: Combattre l'unité à droite"); + }else { + System.out.println("3: Se déplacer vers la droite"); + } + } + if(u.getY()>0) { + if(plateau.getCase(u.getX(), u.getY()-1).getUnite()!=null){ + System.out.println("4: Combattre l'unité à gauche"); + }else { + System.out.println("4: Se déplacer vers la gauche"); + } + } + rep = Scan.scan(4); } } diff --git a/src/main/Main.java b/src/main/Main.java index 15bcdedda6a883419cd7e1668f002ab1dc8a0b03..9dd3e40e0249ddffabee76ad1f674a58015694b2 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -16,19 +16,25 @@ public class Main { */ Plateau plateau = new Plateau(); + int x = 11; int y = 10; + + plateau.getCase(x, y).setUnite(new Paysant(x, y, plateau, winner)); winner.getArmee().get(0).getPlateau().getRegion(0,0).changeToCamp(); Affichage.affichage(plateau); - while (y != 30) { - winner.getArmee().get(0).move(deplacement()); - System.out.println('\n'); - Affichage.affichage(plateau); + while(y<30) { + winner.getArmee().get(0).move(deplacement()); + System.out.println('\n'); + //winner.getArmee().get(0).teleporte(); + Affichage.affichage(plateau); } Menu(); + plateau.getCase(12, 0); - Affichage.affichage(plateau); + Affichage.affichage(plateau); + //Menu(); } public static void Menu() { diff --git a/src/main/Plateau.java b/src/main/Plateau.java index 96d7a56ce0191f9e906f723db9d67ab676febe31..c9c05b50141f66cd6cd62de56b766dd55ae5f99d 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -1,9 +1,14 @@ package main; +import java.util.Random; + +import items.Crown; + public class Plateau { private Region[][] plateau; public Plateau() { + Random random = new Random(); this.plateau = new Region[6][6]; for (int i = 0; i < plateau.length; i++) { for (int j = 0; j < plateau[0].length; j++) { @@ -13,6 +18,9 @@ public class Plateau { plateau[i][j].fillRegion(); } } + int rd1 = (int)random.nextInt(10)+10; + int rd2 = (int)random.nextInt(30); + this.getCase(rd1, rd2).setItem(new Crown(this.getCase(0, 0))); } public Case getCase(int x, int y) { return plateau[x/5][y/5].region[x%5][y%5]; diff --git a/src/main/Region.java b/src/main/Region.java index b08ee1270a95f3c7aafd5266d5b79efb6a88e84b..d467efbb1a4399c89707f0bb82e0c54abf4bf450 100644 --- a/src/main/Region.java +++ b/src/main/Region.java @@ -2,6 +2,8 @@ package main; import java.util.Random; +import events.FortEvent; + public class Region { public Case[][] region = new Case[5][5]; private Joueur proprietaire = null; @@ -21,13 +23,13 @@ public class Region { else { region[i][j] = new Case(Type.GRASS); } - region[i][j].setX(i * x); - region[i][j].setY(j * y); + region[i][j].setX(i + (x *5)); + region[i][j].setY(j + (y *5)); } } int rd1 = (int)random.nextInt(5); int rd2 = (int)random.nextInt(5); - region[rd1][rd2].setEvent(Event.FORT); + region[rd1][rd2].addEvents(new FortEvent()); region[rd1][rd2].setType(Type.FORT); } public void changeToCamp() { diff --git a/src/units/Archer.java b/src/units/Archer.java index 5cc6874b6fc0f4d5f6add23a75b0054025a9e30e..83586c1e38f552b1c144fdeb7b23de971db999ef 100644 --- a/src/units/Archer.java +++ b/src/units/Archer.java @@ -1,6 +1,5 @@ package units; -import main.Case; import main.Joueur; import main.Plateau; diff --git a/src/units/Chevalier.java b/src/units/Chevalier.java index 1e263986754b56581a9bfef0245c32e05d449250..583bfb0bc41f78e31b160f62530e0521a9d7b8dd 100644 --- a/src/units/Chevalier.java +++ b/src/units/Chevalier.java @@ -1,6 +1,5 @@ package units; -import main.Case; import main.Joueur; import main.Plateau; diff --git a/src/units/Eclaireur.java b/src/units/Eclaireur.java index 4c02d3e172c8868dd8094b2b7c79a8580cc8b90b..62aaeb6e6db81bec5623ebcfdaab96da03986d49 100644 --- a/src/units/Eclaireur.java +++ b/src/units/Eclaireur.java @@ -1,6 +1,5 @@ package units; -import main.Case; import main.Joueur; import main.Plateau; diff --git a/src/units/Paysant.java b/src/units/Paysant.java index 518bb00745c07e573ce109b0228b53109237ed60..f361b7e5fb16d3d4d09396d93d3af5b09304e6eb 100644 --- a/src/units/Paysant.java +++ b/src/units/Paysant.java @@ -2,7 +2,6 @@ package units; import java.util.Scanner; -import main.Case; import main.Joueur; import main.Plateau; @@ -12,7 +11,7 @@ public class Paysant extends Unite{ public static final int DAMAGE = 1; public static final char SYMBOL = 'p'; public static final int PATOGIVE = 1; - public static final int VISION = 2; + public static final int VISION = 4; public Paysant(int x, int y, Plateau plateau, Joueur joueur) { super(x, y, plateau, SYMBOL, ARMOR, DAMAGE, joueur, VISION); diff --git a/src/units/Unite.java b/src/units/Unite.java index a87edd006391df136772e18392e5eb0b994d60d8..25eac3c1654a3da92f9a6abacf08a831338f6094 100644 --- a/src/units/Unite.java +++ b/src/units/Unite.java @@ -3,9 +3,7 @@ package units; import java.util.Random; import items.Items; -import main.Affichage; import main.Case; -import main.Event; import main.Joueur; import main.Plateau; import main.Type; @@ -120,10 +118,6 @@ public abstract class Unite { this.plateau.getCase(x, y).setUnite(this); temp = this.plateau.getCase(x, y).getType(); this.plateau.getCase(x, y).setType(Type.UNITE); - if(this.plateau.getCase(x, y).getEvent() == Event.FORT) { - this.plateau.getRegion(x, y).setProprietaire(joueur); - this.joueur.getRoyaume().add(this.plateau.getRegion(x, y)); - } /*if(this.plateau.getCase(x, y).getEvents().length > 0){ System.out.println("oui"); }*/ @@ -132,6 +126,14 @@ public abstract class Unite { return false; } //à voir le type + + public void updateItem() { + Case unitcase = plateau.getCase(x,y); + if(this.getItem() == null && unitcase.getItem() != null) { + unitcase.getItem().recup(joueur,unitcase.getItem(),this); + } + } + public boolean move(char c) { if(c == 's') { @@ -143,6 +145,7 @@ public abstract class Unite { this.plateau.getCase(x, y).setType(temp); this.x+=1; updateDecouverte(this.plateau.getCase(x+1, y), this.vision); + updateItem(); return true; } } @@ -152,6 +155,7 @@ public abstract class Unite { this.plateau.getCase(x, y).setType(temp); this.y+=1; updateDecouverte(this.plateau.getCase(x, y+1), this.vision); + updateItem(); return true; } } @@ -161,6 +165,7 @@ public abstract class Unite { this.plateau.getCase(x, y).setType(temp); this.y-=1; updateDecouverte(this.plateau.getCase(x, y-1), this.vision); + updateItem(); return true; } } @@ -170,6 +175,7 @@ public abstract class Unite { this.plateau.getCase(x, y).setType(temp); this.x-=1; updateDecouverte(this.plateau.getCase(x-1, y), this.vision); + updateItem(); return true; } } @@ -193,37 +199,30 @@ public abstract class Unite { this.y=rd2; } public void updateDecouverte (Case emplacement, int vision) { - System.out.println("" + emplacement.getX() + ", " + emplacement.getY()); - if (emplacement.getX()+1 < this.plateau.getLength()) { - if(this.plateau.getCase(emplacement.getX()+1, emplacement.getY()).isDecouverte()==false) { + if (vision > -1) { + if (emplacement.getX() < 29) { this.plateau.getCase(emplacement.getX()+1, emplacement.getY()).setDecouverte(true); + if (this.plateau.getCase(emplacement.getX()+1, emplacement.getY()).getType() != Type.MOUNTAIN) { + updateDecouverte(this.plateau.getCase(emplacement.getX()+1, emplacement.getY()), vision-1); + } } - if (vision-- > -1) { - updateDecouverte(this.plateau.getCase(emplacement.getX()+1, emplacement.getY()), vision--); - } - } - if (emplacement.getY()-1 > -1) { - if(this.plateau.getCase(emplacement.getX(), emplacement.getY() -1).isDecouverte()==false) { + if (emplacement.getY() > 0) { this.plateau.getCase(emplacement.getX(), emplacement.getY() -1).setDecouverte(true); + if (this.plateau.getCase(emplacement.getX(), emplacement.getY()-1).getType() != Type.MOUNTAIN) { + updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() -1), vision-1); + } } - if (vision-- > -1) { - updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() -1), vision--); - } - } - if (emplacement.getY()+1 < plateau.getWidth()) { - if(this.plateau.getCase(emplacement.getX(), emplacement.getY() +1).isDecouverte()==false) { + if (emplacement.getY() < 29) { this.plateau.getCase(emplacement.getX(), emplacement.getY() +1).setDecouverte(true); + if (this.plateau.getCase(emplacement.getX()+1, emplacement.getY()+1).getType() != Type.MOUNTAIN) { + updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() +1), vision-1); + } } - if (vision-- > -1) { - updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() +1), vision--); - } - } - if (emplacement.getX()-1 > -1) { - if(this.plateau.getCase(emplacement.getX()-1, emplacement.getY()).isDecouverte()==false) { + if (emplacement.getX() > 0) { this.plateau.getCase(emplacement.getX()-1, emplacement.getY()).setDecouverte(true); - } - if (vision-- > -1) { - updateDecouverte(this.plateau.getCase(emplacement.getX()-1, emplacement.getY()), vision--); + if (this.plateau.getCase(emplacement.getX()-1, emplacement.getY()).getType() != Type.MOUNTAIN) { + updateDecouverte(this.plateau.getCase(emplacement.getX()-1, emplacement.getY()), vision-1); + } } } }