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-5/README.md b/doc/sprint-5/README.md index 7abc22ad717c5159f473374c323fcf306e85547c..41c707f2f190b8d6ec971772956b185210e02bfa 100644 --- a/doc/sprint-5/README.md +++ b/doc/sprint-5/README.md @@ -8,6 +8,9 @@ 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-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/items/Crown.java b/src/items/Crown.java index 33e2c3675db6bfc44c31f1daf51c5cc818126143..1c138dba9d3fdeb78a29c1896b6be881fac1d4a1 100644 --- a/src/items/Crown.java +++ b/src/items/Crown.java @@ -14,18 +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 - if (this.getPower() != 0) { - joueur.setWin(true); - this.setPower(0); - } + 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('♛'); + unite.getPlateau().getCase(unite.getX(), unite.getY()).setItem(null); } } diff --git a/src/items/Items.java b/src/items/Items.java index eddd6d333650645395c819961cc177629d055bb7..fbc82293b955c27117dd8daffc4924cf2b8b90b1 100644 --- a/src/items/Items.java +++ b/src/items/Items.java @@ -2,6 +2,7 @@ package items; import main.Case; import main.Joueur; +import units.Unite; public abstract class Items { private String name; @@ -37,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 373dcd6eb86b19cb31aa033c3d5d7aea6a107f25..b2c7ca80c9142f44dbc2e81641c43dca45ca1653 100644 --- a/src/main/Case.java +++ b/src/main/Case.java @@ -15,6 +15,7 @@ public class Case { private Unite unite; private int x; private int y; + private boolean aEteVu; public Case(Type type) { this.type = type; @@ -80,14 +81,20 @@ public class Case { if (!this.isDecouverte()) { return "~ "; } + else if (this.getItem() != null && this.getItem().getName().equalsIgnoreCase("crown")) { + return "♛ "; + } else if (this.type == Type.GRASS) { return ". "; } else if (this.type == Type.MOUNTAIN) { - return "Ѧ "; + return "m "; } else if (this.type == Type.FORT) { - return "♜ "; + return "♖ "; + } + else if (this.type == Type.CAMP) { + return "O "; } else { return "? ";} } diff --git a/src/main/Main.java b/src/main/Main.java index f9afb918b1a1dafe86b7c651c8971f89e400292a..53f0fa036ae8fbec2d5a2cd87888430986c38857 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -7,36 +7,38 @@ import units.Paysant; public class Main { private static Joueur winner = new Joueur("Winner"); private int actionPoint; - private static Plateau plateau = new Plateau(); + public static void main(String[] args) { - /*Region[][] regions = new Region[6][6]; - for(int i = 0; i<regions.length; i++) { - for(int j = 0; j<regions[i].length; j++) { - regions[i][j] = new Region(); - } - }*/ + /* + * Region[][] regions = new Region[6][6]; for(int i = 0; i<regions.length; i++) + * { for(int j = 0; j<regions[i].length; j++) { regions[i][j] = new Region(); } + * } + */ + + 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'); - winner.getArmee().get(0).teleporte(); + //winner.getArmee().get(0).teleporte(); Affichage.affichage(plateau); } - Menu(); + Menu(plateau); plateau.getCase(12, 0); Affichage.affichage(plateau); //Menu(); } - public static void Menu () { + public static void Menu (Plateau plateau) { int continuer= 2; - //System.out.print("Bienvenue dans Game of Crown, vous êtes actuellement sur le Menu !"); while(continuer != 3) { while(continuer==2) { continuer =Interface.start(); @@ -47,19 +49,20 @@ public class Main { } } } + public static char deplacement() { Scanner sc = new Scanner(System.in); System.out.println("Veuillez choisir une direction"); while (!sc.hasNext("[zqsd]")) { - System.out.println("Cette touche n'est pas acceptés, veuillez réessayer"); - sc.next(); + System.out.println("Cette touche n'est pas acceptés, veuillez réessayer"); + sc.next(); } return sc.next().charAt(0); } - - private Joueur Game (Joueur[] joueurs) { + + private Joueur Game(Joueur[] joueurs) { boolean gameEnd = false; - while(gameEnd){ + while (gameEnd) { for (Joueur currentPlayer : joueurs) { setActionPoint(currentPlayer); Tour(currentPlayer, actionPoint); @@ -67,28 +70,29 @@ public class Main { } return getWinner(); } - - public void Tour (Joueur currentPlayer, int actionPoint) { - + + public void Tour(Joueur currentPlayer, int actionPoint) { + } - - public void setActionPoint (int actionPoint) { + + public void setActionPoint(int actionPoint) { this.actionPoint = actionPoint; } - - public void setActionPoint (Joueur currentPlayer) { + + public void setActionPoint(Joueur currentPlayer) { this.actionPoint = currentPlayer.getArmee().size() + (currentPlayer.getRoyaume().size() * 3); } - - public int getActionPoint () { + + public int getActionPoint() { return this.actionPoint; } - - public void setWinner (Joueur winner) { - Main.winner = winner; + + + public void setWinner(Joueur winner) { + this.winner = winner; } - - public Joueur getWinner () { - return Main.winner; + + public Joueur getWinner() { + return this.winner; } } 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 2bc804a88d4c3f049a8396077eb3310dc1851852..d467efbb1a4399c89707f0bb82e0c54abf4bf450 100644 --- a/src/main/Region.java +++ b/src/main/Region.java @@ -23,8 +23,8 @@ 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); @@ -32,6 +32,15 @@ public class Region { region[rd1][rd2].addEvents(new FortEvent()); region[rd1][rd2].setType(Type.FORT); } + public void changeToCamp() { + for (int i = 0; i < region.length; i++) { + for (int j = 0; j < region[0].length; j++) { + if (region[i][j].getType()==Type.FORT) { + region[i][j].setType(Type.CAMP); + } + } + } + } public void setX(int x) { this.x = x; } diff --git a/src/main/Type.java b/src/main/Type.java index 59fb26206d3636820dea9b4c1ef28b8e03aac2b6..bdfacc4ab2b794f54a2785d7d71be011f0b47d1e 100644 --- a/src/main/Type.java +++ b/src/main/Type.java @@ -1,5 +1,5 @@ package main; public enum Type { - UNITE,GRASS, MOUNTAIN, VILLAGE, FORT; + UNITE,GRASS, MOUNTAIN, CAMP, FORT; } diff --git a/src/units/Paysant.java b/src/units/Paysant.java index dd7b0ffa72146075bb23f04a61dd54d965c5d964..f361b7e5fb16d3d4d09396d93d3af5b09304e6eb 100644 --- a/src/units/Paysant.java +++ b/src/units/Paysant.java @@ -11,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 7b1909b25a22617fd0f355c3f914a1450f35d39b..5303c5c3fb742feb344015febed73c75c352f2de 100644 --- a/src/units/Unite.java +++ b/src/units/Unite.java @@ -1,7 +1,9 @@ package units; +import java.util.List; import java.util.Random; +import events.Evenements; import items.Items; import main.Case; import main.Joueur; @@ -20,6 +22,8 @@ public abstract class Unite { public static int generalId = 1; private Joueur joueur; private Items item; + private Type temp = Type.GRASS; + private Type temp2 = null; public Unite(int x, int y, Plateau plateau, char symbol, int armor, int damage, Joueur joueur, int vision) { this.id = generalId; @@ -113,54 +117,75 @@ public abstract class Unite { } public boolean updatePosition(int x,int y) { - if(x>=0 && x<plateau.getPlateau().length*plateau.getRegion(0, 0).region.length && y>=0 && y<plateau.getPlateau().length*plateau.getRegion(0, 0).region.length ) { - this.plateau.getCase(x, y).setUnite(this); - this.plateau.getCase(x, y).setType(Type.UNITE); - - return true; + if(x>=0 && x<(plateau.getPlateau().length*plateau.getRegion(0, 0).region.length-1) && y>=0 && y<(plateau.getPlateau().length*plateau.getRegion(0, 0).region.length-1) ) { + if(this.plateau.getCase(x, y).getType() != Type.MOUNTAIN) { + temp2 = temp; + temp = this.plateau.getCase(x, y).getType(); + this.plateau.getCase(x, y).setUnite(this); + System.out.println(temp); + this.plateau.getCase(x, y).setType(Type.UNITE); + if(this.plateau.getCase(x, y).getEvents().size() > 0){ + List<Evenements> temp = this.plateau.getCase(x, y).getEvents(); + for (Evenements evenements : temp) { + evenements.action(this.plateau.getCase(x, y)); + } + } + return true; + } } 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' && updatePosition(x+1,y))*/ if(c == 's') { - if (plateau.getCase(x+1,y).getUnite() != null || plateau.getCase(x+1, y).getUnite().getJoueur() != this.joueur) { + /*if (plateau.getCase(x+1,y).getUnite() != null || plateau.getCase(x+1, y).getUnite().getJoueur() != this.joueur) { //combat(); - } + }*/ if (updatePosition(x+1,y)) { this.plateau.getCase(x, y).setUnite(null); - this.plateau.getCase(x, y).setType(Type.GRASS); + this.plateau.getCase(x, y).setType(temp2); this.x+=1; updateDecouverte(this.plateau.getCase(x+1, y), this.vision); + updateItem(); return true; } } else if(c == 'd') { if (updatePosition(x,y+1)) { this.plateau.getCase(x, y).setUnite(null); - this.plateau.getCase(x, y).setType(Type.GRASS); + this.plateau.getCase(x, y).setType(temp2); this.y+=1; updateDecouverte(this.plateau.getCase(x, y+1), this.vision); + updateItem(); return true; } } else if(c == 'q') { if (updatePosition(x,y-1)) { this.plateau.getCase(x, y).setUnite(null); - this.plateau.getCase(x, y).setType(Type.GRASS); + this.plateau.getCase(x, y).setType(temp2); this.y-=1; updateDecouverte(this.plateau.getCase(x, y-1), this.vision); + updateItem(); return true; } } else if(c == 'z') { if (updatePosition(x-1, y)) { this.plateau.getCase(x, y).setUnite(null); - this.plateau.getCase(x, y).setType(Type.GRASS); + this.plateau.getCase(x, y).setType(temp2); this.x-=1; updateDecouverte(this.plateau.getCase(x-1, y), this.vision); + updateItem(); return true; } } @@ -184,37 +209,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); + } } } }