Skip to content
Snippets Groups Projects
Commit 4f2a021d authored by Maxime Wallart's avatar Maxime Wallart :speech_balloon:
Browse files

final

parents d0674cb5 9c25530a
Branches Maxime
No related tags found
No related merge requests found
Showing with 203 additions and 74 deletions
......@@ -3,6 +3,11 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.source=1.7
......@@ -8,6 +8,7 @@ public class CrownReceived implements Evenements{
if(eventCase.getUnite().getItem().getName().equals("Crown")) {
Joueur joueur = eventCase.getUnite().getJoueur();
joueur.setWin(true);
System.out.println("vous avez gagné !!!!!!");
}
}
......
......@@ -9,17 +9,24 @@ import units.Unite;
public class FortEvent implements Evenements{
private Joueur owner = null;
private int fortDamage = 5;
private int fortDamage = 1;
public void action(Case eventCase) {
Joueur visiteur = eventCase.getUnite().getJoueur();
Unite uniteVisiteur = eventCase.getUnite();
if (eventCase.getType() == Type.FORT) {
if (eventCase.getType() == Type.UNITE) {
System.out.println("evenelent fort déclenché");
if (owner == null) {
uniteVisiteur.setArmor(uniteVisiteur.getArmor()-fortDamage);
int armorTemp = uniteVisiteur.getArmor();
uniteVisiteur.setArmor(armorTemp-fortDamage);
if (Combattre.isAlive(uniteVisiteur)) {
owner = visiteur;
uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur);
}else {
eventCase.setType(Type.FORT);
}
}else if(owner.getNomJoueur().equals(visiteur.getNomJoueur())) {
System.out.println("Vous accupez maintenant votre fort !");
......@@ -27,6 +34,7 @@ public class FortEvent implements Evenements{
owner = visiteur;
uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur);
}
}
}
......
package events;
import main.Case;
import main.Joueur;
import main.Scan;
import main.Type;
import units.Paysant;
import units.Unite;
public class VillageEvent implements Evenements{
private Joueur owner = null;
public void action(Case eventCase) {
Joueur visiteur = eventCase.getUnite().getJoueur();
Unite uniteVisiteur = eventCase.getUnite();
if (eventCase.getType() == Type.VILLAGE) {
System.out.println("1. Ne rien faire/n2. Piller village");
if (owner == visiteur) {
System.out.println("3. Enrôler paysan (5 Po)");
}
switch (Scan.readString()) {
case "1":
break;
case "2":
visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() + 10);
eventCase.setPillage();
break;
case "3":
if (uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).getType() != Type.MOUNTAIN) {
uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).setUnite(new Paysant(eventCase.getX(), eventCase.getY()+1, uniteVisiteur.getPlateau(), visiteur));
visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
}
else if (uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).getType() != Type.MOUNTAIN) {
uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).setUnite(new Paysant(eventCase.getX(), eventCase.getY()-1, uniteVisiteur.getPlateau(), visiteur));
visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
}
else if (uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).getType() != Type.MOUNTAIN) {
uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).setUnite(new Paysant(eventCase.getX()+1, eventCase.getY(), uniteVisiteur.getPlateau(), visiteur));
visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
}
else if (uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).getType() != Type.MOUNTAIN) {
uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).setUnite(new Paysant(eventCase.getX()-1, eventCase.getY(), uniteVisiteur.getPlateau(), visiteur));
visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
}
else {
System.out.println("Il n'y a pas la place pour placer une unité autour ! Rendez l'argent !");
}
break;
default:
break;
}
}
}
public String getName() {
return "Village event";
}
}
......@@ -15,7 +15,8 @@ public class Case {
private Unite unite;
private int x;
private int y;
private boolean aEteVu;
private boolean pille;
private int tempsDepuisPillage;
public Case(Type type) {
this.type = type;
......@@ -24,6 +25,26 @@ public class Case {
this.events = new ArrayList<Evenements>();
this.x = 0;
this.y = 0;
this.pille = false;
this.tempsDepuisPillage = 0;
}
public void setPillage() {
this.pille = true;
this.tempsDepuisPillage = 5;
}
public boolean getPille () {
return this.pille;
}
public void setPille (boolean pille) {
this.pille = pille;
}
public void decreaseTimePillage () {
if (this.tempsDepuisPillage == 0) {
setPille(false);
}
else {
this.tempsDepuisPillage--;
}
}
public void setX(int x) {
this.x = x;
......@@ -78,6 +99,7 @@ public class Case {
}
public String toString() {
if (!this.isDecouverte()) {
return "~ ";
}
......@@ -88,14 +110,18 @@ public class Case {
return ". ";
}
else if (this.type == Type.MOUNTAIN) {
return "m ";
return "Ѧ ";
}
else if (this.type == Type.FORT) {
return "♖ ";
return "♜ ";
//return "♖ ";
}
else if (this.type == Type.CAMP) {
return "O ";
}
else if (this.type == Type.VILLAGE) {
return "V ";
}
else { return "? ";}
}
}
......@@ -3,59 +3,33 @@ package main;
import units.Unite;
public class Interface {
private static Affichage a = new Affichage();
private static int rep = 0;
public static void start() {
public static int start() {
System.out.println("Bienvenu sur Game of Crown");
System.out.println("Veuillez choisir l'une des trois options suivantes en tapant le numéro correspondant dans le terminal");
System.out.println("1: Commencer une partie");
System.out.println("2: Consulter les règles");
System.out.println("3: Quitter le jeu");
rep = Scan.scan(3);
if(rep==1) {
}else if(rep==2) {
System.out.println("Le but du jeu est de prendre la couronne situé sur une case aléatoire \ndu terrain et de la ramener dans son camp ou de détruire l'armée de \nson adversaire");
}else if(rep==3) {
if(rep==2) {
System.out.println("\nLe but du jeu est de prendre la couronne situé sur une case aléatoire \ndu terrain et de la ramener dans son camp ou de détruire l'armée de \nson adversaire\n");
}
return rep;
}
public static void tourDeJeu(Plateau plateau, Joueur j1) {
rep =-1;
Affichage.affichage(plateau);
a.affichage(plateau);
System.out.println("Choissisez l'unité que vous voulez déplacer");
if(j1.getArmee().size()!=0) {
for(int i = 0; i< j1.getArmee().size(); i++) {
System.out.println(i+": "+ j1.getArmee().get(1).toString());
}
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");
}
System.out.println(i+1 +": "+ j1.getArmee().get(i).toString());
}
if(u.getY()>0) {
if(plateau.getCase(u.getX(), u.getY()-1).getUnite()!=null){
System.out.println("4: Combattre l'unité à gauche");
Unite u =j1.getArmee().get(Scan.scan(j1.getArmee().size())-1);
u.move(Main.deplacement());
a.affichage(plateau);
}else {
System.out.println("4: Se déplacer vers la gauche");
}
System.out.println("Aucune unité disponible");
}
rep = Scan.scan(4);
}
}
......@@ -9,8 +9,11 @@ public class Main {
private static Joueur joueur2 = new Joueur("Joueur 2", 25, 15);
private Joueur winner = null;
private int actionPoint;
static Main m = new Main();
public static void main(String[] args) {
Affichage a = new Affichage();
/*
* 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(); }
......@@ -19,6 +22,7 @@ public class Main {
Plateau plateau = new Plateau();
plateau.getCase(joueur1.xCamp, joueur1.yCamp).setUnite(new Paysant(joueur1.xCamp, joueur1.yCamp, plateau, joueur1));
plateau.getCase(joueur2.xCamp, joueur2.yCamp).setUnite(new Paysant(joueur2.xCamp, joueur2.yCamp, plateau, joueur2));
joueur1.getArmee().get(0).getPlateau().getRegion(joueur1.xCamp-1,joueur1.yCamp-1).changeToCamp();
......@@ -27,9 +31,11 @@ public class Main {
while(true!=false) {
joueur1.getArmee().get(0).move(deplacement());
//System.out.println(winner.getArmee().get(0).getPlateau().getRegion(0, 0).);
System.out.println('\n');
System.out.println(joueur1.getArmee().get(0).getX());
//winner.getArmee().get(0).teleporte();
Affichage.affichage(plateau);
//joueur2.getArmee().get(0).move(deplacement());
......@@ -43,8 +49,17 @@ public class Main {
//Menu();
}
public static void Menu() {
System.out.print("Bienvenue dans Game of Crown, vous êtes actuellement sur le Menu !");
public void menu (Plateau plateau) {
int continuer= 2;
while(continuer != 3) {
while(continuer==2) {
continuer =Interface.start();
}
if(continuer !=3) {
continuer =2;
m.game(new Joueur[]{winner,null}, plateau);
}
}
}
public static char deplacement() {
......@@ -57,19 +72,21 @@ public class Main {
return sc.next().charAt(0);
}
private Joueur Game(Joueur[] joueurs) {
private Joueur game(Joueur[] joueurs, Plateau plateau) {
boolean gameEnd = false;
while (gameEnd) {
while (!gameEnd) {
for (Joueur currentPlayer : joueurs) {
setActionPoint(currentPlayer);
Tour(currentPlayer, actionPoint);
Tour(currentPlayer, actionPoint, plateau);
}
}
return getWinner();
}
public void Tour(Joueur currentPlayer, int actionPoint) {
public void Tour(Joueur currentPlayer, int actionPoint, Plateau plateau) {
for(int i =0; i<actionPoint; i++) {
Interface.tourDeJeu(plateau, currentPlayer);
}
}
public void setActionPoint(int actionPoint) {
......@@ -84,6 +101,7 @@ public class Main {
return this.actionPoint;
}
public void setWinner(Joueur winner) {
this.winner = winner;
}
......
......@@ -18,9 +18,13 @@ public class Plateau {
plateau[i][j].fillRegion();
}
}
int rd1 = (int)random.nextInt(10)+10;
int rd2 = (int)random.nextInt(30);
int rd1;
int rd2;
do {
rd1 = (int)random.nextInt(10)+10;
rd2 = (int)random.nextInt(30);
this.getCase(rd1, rd2).setItem(new Crown(this.getCase(0, 0)));
} while (this.getCase(rd1, rd2).getType() != Type.GRASS);
}
public Case getCase(int x, int y) {
return getRegion(x,y).region[x%5][y%5];
......
......@@ -2,7 +2,9 @@ package main;
import java.util.Random;
import events.CrownReceived;
import events.FortEvent;
import events.VillageEvent;
public class Region {
public Case[][] region = new Case[5][5];
......@@ -31,12 +33,20 @@ public class Region {
int rd2 = (int)random.nextInt(5);
region[rd1][rd2].addEvents(new FortEvent());
region[rd1][rd2].setType(Type.FORT);
int k = (int)random.nextInt(2);
for (int l = 0; l < k; l++) {
rd1 = (int)random.nextInt(5);
rd2 = (int)random.nextInt(5);
region[rd1][rd2].addEvents(new VillageEvent());
region[rd1][rd2].setType(Type.VILLAGE);
}
}
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);
region[i][j].addEvents(new CrownReceived());
}
}
}
......
......@@ -16,8 +16,31 @@ public class Scan {
sc.nextLine();
}
} while (res <= 0 || res > nbOfQuestion);
sc.close();
return res;
}
public static String readString() {
String res = "";
Scanner scanner = new Scanner(System.in);
res = scanner.nextLine();
scanner.close();
return res;
}
public static String readString(String message) {
String res = "";
Scanner scanner = new Scanner(System.in);
System.out.println(message);
res = scanner.nextLine();
scanner.close();
return res;
}
public static void clearScreen() {
for( int i = 0 ; i < 100; i++) {
System.out.println();
}
}
}
package main;
public enum Type {
UNITE,GRASS, MOUNTAIN, CAMP, FORT;
UNITE,GRASS, MOUNTAIN, CAMP, VILLAGE, FORT;
}
......@@ -7,7 +7,7 @@ public class Archer extends Unite{
public static final int ARMOR = 5;
public static final int DAMAGE = 5;
public static final char SYMBOL = 'A';
public static final char SYMBOL = 'Ð';
public static final int VISION = 2;
public Archer(int x, int y, Plateau plateau, Joueur joueur) {
......
......@@ -7,7 +7,7 @@ public class Chevalier extends Unite {
public static final int ARMOR = 10;
public static final int DAMAGE = 5;
public static final char SYMBOL = 'C';
public static final char SYMBOL = '';
public static final int VISION = 2;
public Chevalier(int x, int y, Plateau plateau, Joueur joueur) {
......
......@@ -9,9 +9,7 @@ public class Combattre {
uniteDef.setArmor(uniteDef.getArmor()-uniteAttq.getDamage());
if (isAlive(uniteDef)) {
//TODO: peut tre mettre moins de dgat pour l'unit qui dfend
uniteAttq.setArmor(uniteAttq.getArmor()-uniteDef.getDamage());
//TODO: attention au archer !
isAlive(uniteAttq);
}
}
......
......@@ -7,7 +7,7 @@ public class Eclaireur extends Unite {
public static final int ARMOR = 1;
public static final int DAMAGE = 0;
public static final char SYMBOL = 'E';
public static final char SYMBOL = '';
public static final int VISION = 2;
public Eclaireur(int x, int y, Plateau plateau, Joueur joueur) {
......
......@@ -9,9 +9,9 @@ public class Paysant extends Unite{
public static final int ARMOR = 2;
public static final int DAMAGE = 1;
public static final char SYMBOL = 'p';
public static final char SYMBOL = '';
public static final int PATOGIVE = 1;
public static final int VISION = 4;
public static final int VISION = 1;
public Paysant(int x, int y, Plateau plateau, Joueur joueur) {
super(x, y, plateau, SYMBOL, ARMOR, DAMAGE, joueur, VISION);
......
......@@ -219,6 +219,7 @@ public abstract class Unite {
this.plateau.getCase(x, y).setType(Type.GRASS);
this.x=rd1;
this.y=rd2;
updateDecouverte(this.plateau.getCase(rd1, rd2), this.vision);
}
public void updateDecouverte (Case emplacement, int vision) {
if (vision > -1) {
......@@ -236,7 +237,7 @@ public abstract class Unite {
}
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) {
if (this.plateau.getCase(emplacement.getX(), emplacement.getY()+1).getType() != Type.MOUNTAIN) {
updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() +1), vision-1);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment