Skip to content
Snippets Groups Projects
Commit b4b2e016 authored by Camille Okubo's avatar Camille Okubo
Browse files
parents 0de1a55a 466f1561
No related branches found
No related tags found
No related merge requests found
package bitFight; package bitFight;
public enum Attack implements Action { public enum Attack implements Action {
PUNCH(10); PUNCH(10, "punch");
private int damage; private int damage;
private String name;
Attack(int damage) { Attack(int damage, String name) {
this.damage = damage; this.damage = damage;
this.name = name;
} }
public int getDamage() { public int getDamage() {
return damage; return damage;
...@@ -18,4 +20,7 @@ public enum Attack implements Action { ...@@ -18,4 +20,7 @@ public enum Attack implements Action {
public String getActionTypeToString() { public String getActionTypeToString() {
return "Attack"; return "Attack";
} }
public String getName() {
return name;
}
} }
\ No newline at end of file
package bitFight; package bitFight;
import java.util.Scanner;
public class Level{ public class Level{
int nbLevel=1; int nbLevel=1;
...@@ -26,5 +28,42 @@ public class Level{ ...@@ -26,5 +28,42 @@ public class Level{
this.difficulty = difficulty; this.difficulty = difficulty;
} }
public void display() {
System.out.println("Level " + this.nbLevel);
System.out.println("Difficulty = " + this.difficulty);
}
public boolean check() {
Scanner sc = new Scanner(System.in);
String c = sc.nextLine();
if (c == null) {
sc.close();
return false;
}
sc.close();
return true;
}
public void ennemyShowing(Enemy ennemy) {
System.out.println("An ennemy just appeared : " + ennemy.toString());
}
public void ennemyDying() {
System.out.println("The ennemy is dead!");
}
public void playerDying() {
}
public void fighting(Player p, Enemy ennemy) {
System.out.println(p.getName() + "'s life : " + p.getCurrentHealth());
this.ennemyShowing(ennemy);
System.out.println("Press any key to attack and press enter");
if (this.check()) {
this.ennemyDying();
}
}
} }
package bitFight;
import java.util.Scanner;
public class LevelDisplay {
private int levelNb = 1;
private String levelText = "New level : prepare to fight!";
public int getLevelNb() {
return levelNb;
}
public void display() {
System.out.println("Niveau " + this.levelNb);
System.out.println(this.levelText);
}
public boolean validate() {
Scanner sc = new Scanner(System.in);
String c = sc.nextLine();
if (c == null) {
sc.close();
return false;
}
sc.close();
return true;
}
public void ennemyShowing(Enemy ennemy) {
System.out.println("An ennemy just appeared : " + ennemy.toString());
}
public void ennemyDying() {
System.out.println("The ennemy is dead!");
}
public void fighting(Player p, Enemy ennemy) {
System.out.println(p.getName() + "'s life : " + p.getCurrentHealth());
this.ennemyShowing(ennemy);
System.out.println("Press any key to attack and press enter");
this.validate();
if (this.validate()) {
this.ennemyDying();
}
}
}
...@@ -3,11 +3,19 @@ package bitFight; ...@@ -3,11 +3,19 @@ package bitFight;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import java.util.Scanner; import java.util.Scanner;
class Main { class Main {
public static void main(String[] args) { public static void main(String[] args) {
// Récupère le nom de cahque attaque dans une ArrayList
ArrayList<String> attacksNames = new ArrayList<>();
for (Attack a : Attack.values()) {
attacksNames.add(a.getName());
}
Scanner in = new Scanner(System.in); Scanner in = new Scanner(System.in);
Random rand = new Random(); Random rand = new Random();
...@@ -20,7 +28,6 @@ class Main { ...@@ -20,7 +28,6 @@ class Main {
System.out.println(JoueurEnnemi.getCurrentHealth()); System.out.println(JoueurEnnemi.getCurrentHealth());
while (!input.getInput().equals("q") && !JoueurEnnemi.isDead()) { while (!input.getInput().equals("q") && !JoueurEnnemi.isDead()) {
System.out.println("départ");
LocalDateTime timeBeforeAttack = LocalDateTime.now(); LocalDateTime timeBeforeAttack = LocalDateTime.now();
int attackTime = 8 - (int)(5 * rand.nextDouble()); //A garder au début de la boucle int attackTime = 8 - (int)(5 * rand.nextDouble()); //A garder au début de la boucle
...@@ -29,11 +36,21 @@ class Main { ...@@ -29,11 +36,21 @@ class Main {
System.out.println("Error input invalid"); System.out.println("Error input invalid");
input.setInput(in.nextLine()); input.setInput(in.nextLine());
} }
System.out.println("input valide");
// Évènement après choisi d'attaquer
if (input.getInput().equals("a")) { if (input.getInput().equals("a")) {
JoueurEnnemi.damage(Attack.PUNCH.getDamage()); input.setInput(in.nextLine());
System.out.println("Ennemi" + " health : " + JoueurEnnemi.getCurrentHealth()); // Boucle tant que le joueur n'a pas taper de nom d'une attaque valide
while (!attacksNames.contains(input.getInput())) {
if (!attacksNames.contains(input.getInput())){
System.out.println("WARNING ! : Choose an attack in the list");
input.setInput(in.nextLine());
}
}
String attack = attacksNames.get(attacksNames.indexOf(input.getInput())).toUpperCase();
JoueurEnnemi.damage(Attack.valueOf(attack).getDamage());
System.out.println(JoueurEnnemi.toString());
input.setInput(in.nextLine()); input.setInput(in.nextLine());
} }
......
...@@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; ...@@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test;
public class attackTest { public class attackTest {
@Test @Test
void testGetDamage() { void testGetDamage() {
assertEquals(attack.PUNCH.getDamage(),10); assertEquals(Attack.PUNCH.getDamage(),10);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment