Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
COO-beat-them-all
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Guillaume DEWISME
COO-beat-them-all
Commits
a23e01b7
Commit
a23e01b7
authored
Dec 04, 2024
by
Guillaume Dewisme
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor/separation class
parent
aa7b1c38
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
289 additions
and
155 deletions
+289
-155
game_log.txt
game_log.txt
+121
-0
Battle.java
src/main/java/org/example/Battle.java
+58
-0
BeatThemAllGame.java
src/main/java/org/example/BeatThemAllGame.java
+2
-116
Main.java
src/main/java/org/example/Main.java
+65
-39
Test.java
src/main/java/org/example/Test.java
+43
-0
No files found.
game_log.txt
View file @
a23e01b7
...
@@ -28,3 +28,124 @@
...
@@ -28,3 +28,124 @@
[2024-12-03T09:19:23.567938600] h a quitté le jeu
[2024-12-03T09:19:23.567938600] h a quitté le jeu
[2024-12-03T09:26:44.170530700] Début de l'aventure de h
[2024-12-03T09:26:44.170530700] Début de l'aventure de h
[2024-12-03T09:26:44.191598800] h rencontre un Catcheur
[2024-12-03T09:26:44.191598800] h rencontre un Catcheur
[2024-12-04T08:06:11.886795400] Début de l'aventure de enza
[2024-12-04T08:06:11.906987500] enza rencontre un Brigand
[2024-12-04T08:06:14.972843200] enza attaque Brigand
[2024-12-04T08:06:14.984444100] Brigand attaque enza
[2024-12-04T08:06:15.452842500] enza attaque Brigand
[2024-12-04T08:06:15.453852600] Brigand attaque enza
[2024-12-04T08:06:15.734624500] enza attaque Brigand
[2024-12-04T08:06:15.747554800] Brigand attaque enza
[2024-12-04T08:06:15.937984300] enza attaque Brigand
[2024-12-04T08:06:15.939057100] Brigand attaque enza
[2024-12-04T08:06:16.099067300] enza attaque Brigand
[2024-12-04T08:06:16.100073] Brigand attaque enza
[2024-12-04T08:06:16.518136500] enza attaque Brigand
[2024-12-04T08:06:16.519666] enza a vaincu Brigand
[2024-12-04T08:06:16.525711800] enza gagne 50 XP
[2024-12-04T08:06:19.083672200] enza rencontre un Catcheur
[2024-12-04T08:06:20.502166900] enza attaque Catcheur
[2024-12-04T08:06:20.503174800] Catcheur attaque enza
[2024-12-04T08:06:20.663921100] enza attaque Catcheur
[2024-12-04T08:06:20.664929400] Catcheur attaque enza
[2024-12-04T08:06:20.825076100] enza attaque Catcheur
[2024-12-04T08:06:20.826083900] Catcheur attaque enza
[2024-12-04T08:06:21.018907100] enza attaque Catcheur
[2024-12-04T08:06:21.019912400] Catcheur attaque enza
[2024-12-04T08:06:21.164705400] enza attaque Catcheur
[2024-12-04T08:06:21.165715100] Catcheur attaque enza
[2024-12-04T08:06:21.695040300] enza attaque Catcheur
[2024-12-04T08:06:21.696047500] Catcheur attaque enza
[2024-12-04T08:06:22.114982700] enza attaque Catcheur
[2024-12-04T08:06:22.115993] Catcheur attaque enza
[2024-12-04T08:06:22.605196200] enza attaque Catcheur
[2024-12-04T08:06:22.608218500] Catcheur attaque enza
[2024-12-04T08:06:23.389572800] enza attaque Catcheur
[2024-12-04T08:06:23.391592] Catcheur attaque enza
[2024-12-04T08:06:23.988257] enza attaque Catcheur
[2024-12-04T08:06:23.990270900] Catcheur attaque enza
[2024-12-04T08:06:24.536198400] enza attaque Catcheur
[2024-12-04T08:06:24.540229100] Catcheur attaque enza
[2024-12-04T08:06:25.291977700] enza attaque Catcheur
[2024-12-04T08:06:25.292983300] Catcheur attaque enza
[2024-12-04T08:06:25.840277200] enza attaque Catcheur
[2024-12-04T08:06:25.841286100] enza a vaincu Catcheur
[2024-12-04T08:06:25.841286100] enza gagne 50 XP
[2024-12-04T08:06:25.842293600] enza monte au niveau 2
[2024-12-04T08:06:25.845316200] enza a obtenu un objet : Potion de Puissance
[2024-12-04T08:06:28.115597200] enza rencontre un Catcheur
[2024-12-04T08:06:28.712540700] enza attaque Catcheur
[2024-12-04T08:06:28.714556900] Catcheur attaque enza
[2024-12-04T08:06:29.212602500] enza attaque Catcheur
[2024-12-04T08:06:29.213668300] Catcheur attaque enza
[2024-12-04T08:06:29.663737100] enza attaque Catcheur
[2024-12-04T08:06:29.664744700] Catcheur attaque enza
[2024-12-04T08:06:30.162629100] enza attaque Catcheur
[2024-12-04T08:06:30.163633700] Catcheur attaque enza
[2024-12-04T08:06:30.614482100] enza attaque Catcheur
[2024-12-04T08:06:30.615493300] Catcheur attaque enza
[2024-12-04T08:06:31.098397400] enza attaque Catcheur
[2024-12-04T08:06:31.099403200] Catcheur attaque enza
[2024-12-04T08:06:31.586841300] enza attaque Catcheur
[2024-12-04T08:06:31.587849200] Catcheur attaque enza
[2024-12-04T08:06:32.049652] enza attaque Catcheur
[2024-12-04T08:06:32.051666900] Catcheur attaque enza
[2024-12-04T08:06:32.518839300] enza attaque Catcheur
[2024-12-04T08:06:32.518839300] enza a vaincu Catcheur
[2024-12-04T08:06:32.519848500] enza gagne 50 XP
[2024-12-04T08:06:34.711476300] enza rencontre un Brigand
[2024-12-04T08:06:35.919905300] enza attaque Brigand
[2024-12-04T08:06:35.921443200] Brigand attaque enza
[2024-12-04T08:06:36.279740900] Brigand attaque enza
[2024-12-04T08:06:36.485140800] enza attaque Brigand
[2024-12-04T08:06:36.486193700] Brigand attaque enza
[2024-12-04T08:06:37.195137600] enza attaque Brigand
[2024-12-04T08:06:37.196142400] Brigand attaque enza
[2024-12-04T08:06:37.597595100] enza attaque Brigand
[2024-12-04T08:06:37.598601900] enza a vaincu Brigand
[2024-12-04T08:06:37.598601900] enza gagne 50 XP
[2024-12-04T08:06:37.599609900] enza a obtenu un objet : Potion de Puissance
[2024-12-04T08:06:37.873410700] enza a quitté le jeu
[2024-12-04T08:12:43.025968600] TestHero attaque TestEnemy
[2024-12-04T08:12:43.050025700] TestHero utilise sa capacité spéciale
[2024-12-04T08:17:08.984955300] TestHero attaque TestEnemy
[2024-12-04T08:17:09.011202800] TestHero utilise sa capacité spéciale
[2024-12-04T08:17:14.275467] Début de l'aventure de enza
[2024-12-04T08:17:14.276466800] enza rencontre un Gangster
[2024-12-04T08:17:16.786200900] enza attaque Gangster
[2024-12-04T08:17:16.788200800] Gangster attaque enza
[2024-12-04T08:17:17.042149800] enza attaque Gangster
[2024-12-04T08:17:17.042149800] Gangster attaque enza
[2024-12-04T08:17:17.219064800] enza attaque Gangster
[2024-12-04T08:17:17.219064800] Gangster attaque enza
[2024-12-04T08:17:17.425350200] enza attaque Gangster
[2024-12-04T08:17:17.426350] Gangster attaque enza
[2024-12-04T08:17:17.619110300] enza attaque Gangster
[2024-12-04T08:17:17.620109900] enza a vaincu Gangster
[2024-12-04T08:17:17.623626300] enza gagne 50 XP
[2024-12-04T08:17:17.625622200] enza a obtenu un objet : Potion de Puissance
[2024-12-04T08:17:19.218841200] enza rencontre un Gangster
[2024-12-04T08:17:20.081855300] enza attaque Gangster
[2024-12-04T08:17:20.082854] Gangster attaque enza
[2024-12-04T08:17:20.257506500] enza attaque Gangster
[2024-12-04T08:17:20.258506500] Gangster attaque enza
[2024-12-04T08:17:20.419169700] enza attaque Gangster
[2024-12-04T08:17:20.420201400] Gangster attaque enza
[2024-12-04T08:17:20.610147400] enza attaque Gangster
[2024-12-04T08:17:20.611145100] Gangster attaque enza
[2024-12-04T08:17:20.786237700] enza attaque Gangster
[2024-12-04T08:17:20.786237700] enza a vaincu Gangster
[2024-12-04T08:17:20.786237700] enza gagne 50 XP
[2024-12-04T08:17:20.786237700] enza monte au niveau 2
[2024-12-04T08:17:20.786237700] enza a obtenu un objet : Potion de Santé
[2024-12-04T08:17:23.698100600] enza rencontre un Brigand
[2024-12-04T08:17:24.866409800] enza attaque Brigand
[2024-12-04T08:17:24.867395400] Brigand attaque enza
[2024-12-04T08:17:25.024673100] enza attaque Brigand
[2024-12-04T08:17:25.025674900] Brigand attaque enza
[2024-12-04T08:17:25.200961800] enza attaque Brigand
[2024-12-04T08:17:25.201963800] Brigand attaque enza
[2024-12-04T08:17:25.376582500] enza attaque Brigand
[2024-12-04T08:17:25.377582500] enza a vaincu Brigand
[2024-12-04T08:17:25.377582500] enza gagne 50 XP
[2024-12-04T08:17:25.585241200] enza a quitté le jeu
src/main/java/org/example/Battle.java
0 → 100644
View file @
a23e01b7
package
org
.
example
;
import
java.util.Random
;
import
java.util.Scanner
;
import
org.example.BeatThemAllGame.PreemptiveStrike
;
public
class
Battle
{
public
static
void
battle
(
Scanner
scanner
,
Hero
hero
,
Enemy
enemy
)
{
if
(
hero
.
specialAbility
instanceof
PreemptiveStrike
&&
!
hero
.
specialUsed
)
{
hero
.
useSpecialAbility
(
enemy
);
hero
.
specialUsed
=
true
;
if
(!
enemy
.
isAlive
())
{
System
.
out
.
println
(
"Vous avez vaincu "
+
enemy
.
name
+
" avant même qu'il puisse agir !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a vaincu "
+
enemy
.
name
+
" avec une attaque préventive"
);
return
;
}
}
while
(
hero
.
isAlive
()
&&
enemy
.
isAlive
())
{
System
.
out
.
println
(
"\n=== Votre tour ==="
);
System
.
out
.
println
(
"1. Attaquer"
);
System
.
out
.
println
(
"2. Utiliser la capacité spéciale"
);
System
.
out
.
println
(
"3. Utiliser un objet"
);
System
.
out
.
print
(
"Votre choix : "
);
int
choice
=
scanner
.
nextInt
();
switch
(
choice
)
{
case
1
:
hero
.
attack
(
enemy
);
break
;
case
2
:
hero
.
useSpecialAbility
(
enemy
);
break
;
case
3
:
hero
.
useItem
();
break
;
default
:
System
.
out
.
println
(
"Choix invalide, vous perdez votre tour !"
);
break
;
}
if
(
enemy
.
isAlive
())
{
System
.
out
.
println
(
"\n=== Tour de l'ennemi ==="
);
if
(
enemy
.
specialAbility
!=
null
&&
new
Random
().
nextInt
(
100
)
<
30
)
{
enemy
.
useSpecialAbility
(
hero
);
Logger
.
getInstance
().
log
(
enemy
.
name
+
" utilise sa capacité spéciale"
);
}
else
{
enemy
.
attack
(
hero
);
}
}
else
{
System
.
out
.
println
(
"Vous avez vaincu "
+
enemy
.
name
+
" !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a vaincu "
+
enemy
.
name
);
}
}
}
}
\ No newline at end of file
src/main/java/org/example/BeatThemAllGame.java
View file @
a23e01b7
package
org
.
example
;
package
org
.
example
;
import
java.util.*
;
import
java.util.Random
;
import
java.util.Scanner
;
public
class
BeatThemAllGame
{
public
class
BeatThemAllGame
{
...
@@ -139,120 +140,5 @@ public class BeatThemAllGame {
...
@@ -139,120 +140,5 @@ public class BeatThemAllGame {
}
}
}
}
// pour gérer le combat
public
static
void
battle
(
Scanner
scanner
,
Hero
hero
,
Enemy
enemy
)
{
if
(
hero
.
specialAbility
instanceof
PreemptiveStrike
&&
!
hero
.
specialUsed
)
{
hero
.
useSpecialAbility
(
enemy
);
hero
.
specialUsed
=
true
;
if
(!
enemy
.
isAlive
())
{
System
.
out
.
println
(
"Vous avez vaincu "
+
enemy
.
name
+
" avant même qu'il puisse agir !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a vaincu "
+
enemy
.
name
+
" avec une attaque préventive"
);
return
;
}
}
while
(
hero
.
isAlive
()
&&
enemy
.
isAlive
())
{
System
.
out
.
println
(
"\n=== Votre tour ==="
);
System
.
out
.
println
(
"1. Attaquer"
);
System
.
out
.
println
(
"2. Utiliser la capacité spéciale"
);
System
.
out
.
println
(
"3. Utiliser un objet"
);
System
.
out
.
print
(
"Votre choix : "
);
int
choice
=
scanner
.
nextInt
();
switch
(
choice
)
{
case
1
:
hero
.
attack
(
enemy
);
break
;
case
2
:
hero
.
useSpecialAbility
(
enemy
);
break
;
case
3
:
hero
.
useItem
();
break
;
default
:
System
.
out
.
println
(
"Choix invalide, vous perdez votre tour !"
);
break
;
}
if
(
enemy
.
isAlive
())
{
System
.
out
.
println
(
"\n=== Tour de l'ennemi ==="
);
if
(
enemy
.
specialAbility
!=
null
&&
new
Random
().
nextInt
(
100
)
<
30
)
{
enemy
.
useSpecialAbility
(
hero
);
Logger
.
getInstance
().
log
(
enemy
.
name
+
" utilise sa capacité spéciale"
);
}
else
{
enemy
.
attack
(
hero
);
}
}
else
{
System
.
out
.
println
(
"Vous avez vaincu "
+
enemy
.
name
+
" !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a vaincu "
+
enemy
.
name
);
}
}
}
// afficher le titre (on pourra changer l'ascii)
public
static
void
displayTitle
()
{
System
.
out
.
println
(
"**************************************************"
);
System
.
out
.
println
(
"* BEAT THEM ALL *"
);
System
.
out
.
println
(
"**************************************************"
);
System
.
out
.
println
(
" ____ _ _ _ "
);
System
.
out
.
println
(
" | _ \\ | | | | | | "
);
System
.
out
.
println
(
" | |_) | __ _| |_| |_| | ___ "
);
System
.
out
.
println
(
" | _ < / _` | __| __| |/ _ \\ "
);
System
.
out
.
println
(
" | |_) | (_| | |_| |_| | __/ "
);
System
.
out
.
println
(
" |____/ \\__,_|\\__|\\__|_|\\___| "
);
System
.
out
.
println
();
}
// pareil qu'au dessus
public
static
void
displayGameOver
()
{
System
.
out
.
println
(
"\n=== VOUS ÊTES MORT ==="
);
System
.
out
.
println
(
" _____"
);
System
.
out
.
println
(
" / \\"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | RIP |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" |_______|"
);
System
.
out
.
println
(
"\nMerci d'avoir joué !"
);
}
// Tests unitaires intégrés dans le main (pour simplifier) pour l'instant
public
static
void
runTests
()
{
System
.
out
.
println
(
"\n--- Exécution des tests unitaires ---"
);
testEnemyDefeated
();
testGameOver
();
testSpecialAbility
();
testItemUsage
();
System
.
out
.
println
(
"--- Tous les tests se sont terminés avec succès ---\n"
);
}
public
static
void
testEnemyDefeated
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
50
,
0
,
null
);
Enemy
enemy
=
new
Enemy
(
"TestEnemy"
,
50
,
0
,
0
,
null
);
hero
.
attack
(
enemy
);
assert
enemy
.
currentHP
==
0
:
"L'ennemi aurait dû être vaincu."
;
}
public
static
void
testGameOver
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
0
,
0
,
0
,
null
);
assert
!
hero
.
isAlive
()
:
"Le héros devrait être mort."
;
}
public
static
void
testSpecialAbility
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
20
,
0
,
new
DoubleAttack
());
Enemy
enemy
=
new
Enemy
(
"TestEnemy"
,
100
,
0
,
0
,
null
);
hero
.
useSpecialAbility
(
enemy
);
assert
enemy
.
currentHP
==
60
:
"La capacité spéciale du héros n'a pas fonctionné correctement."
;
}
public
static
void
testItemUsage
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
20
,
0
,
null
);
hero
.
currentHP
=
50
;
Item
potion
=
new
HealthPotion
();
potion
.
applyEffect
(
hero
);
assert
hero
.
currentHP
==
100
:
"La potion de santé n'a pas restauré correctement les PV du héros."
;
}
}
}
src/main/java/org/example/Main.java
View file @
a23e01b7
...
@@ -3,54 +3,80 @@ package org.example;
...
@@ -3,54 +3,80 @@ package org.example;
import
java.util.Random
;
import
java.util.Random
;
import
java.util.Scanner
;
import
java.util.Scanner
;
import
static
org
.
example
.
BeatThemAllGame
.
battle
;
import
static
org
.
example
.
BeatThemAllGame
.
chooseHero
;
import
static
org
.
example
.
BeatThemAllGame
.
chooseHero
;
import
static
org
.
example
.
BeatThemAllGame
.
displayGameOver
;
import
static
org
.
example
.
BeatThemAllGame
.
displayTitle
;
import
static
org
.
example
.
BeatThemAllGame
.
generateRandomEnemy
;
import
static
org
.
example
.
BeatThemAllGame
.
generateRandomEnemy
;
import
static
org
.
example
.
BeatThemAllGame
.
getRandomItem
;
import
static
org
.
example
.
BeatThemAllGame
.
getRandomItem
;
public
class
Main
{
public
class
Main
{
public
void
main
(
String
[]
args
)
{
// afficher le titre (on pourra changer l'ascii)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
public
static
void
displayTitle
()
{
displayTitle
();
System
.
out
.
println
(
"**************************************************"
);
System
.
out
.
println
(
"* BEAT THEM ALL *"
);
System
.
out
.
println
(
"**************************************************"
);
System
.
out
.
println
(
" ____ _ _ _ "
);
System
.
out
.
println
(
" | _ \\ | | | | | | "
);
System
.
out
.
println
(
" | |_) | __ _| |_| |_| | ___ "
);
System
.
out
.
println
(
" | _ < / _` | __| __| |/ _ \\ "
);
System
.
out
.
println
(
" | |_) | (_| | |_| |_| | __/ "
);
System
.
out
.
println
(
" |____/ \\__,_|\\__|\\__|_|\\___| "
);
System
.
out
.
println
();
}
Hero
hero
=
chooseHero
(
scanner
);
// pareil qu'au dessus
System
.
out
.
println
();
public
static
void
displayGameOver
()
{
System
.
out
.
println
(
"\n=== VOUS ÊTES MORT ==="
);
System
.
out
.
println
(
" _____"
);
System
.
out
.
println
(
" / \\"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | RIP |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" | |"
);
System
.
out
.
println
(
" |_______|"
);
System
.
out
.
println
(
"\nMerci d'avoir joué !"
);
}
System
.
out
.
println
(
"Votre aventure commence !"
);
public
static
void
main
(
String
[]
args
)
{
Logger
.
getInstance
().
log
(
"Début de l'aventure de "
+
hero
.
name
);
Test
.
runTests
();
Scanner
scanner
=
new
Scanner
(
System
.
in
);
displayTitle
();
boolean
gameRunning
=
true
;
Hero
hero
=
chooseHero
(
scanner
);
while
(
gameRunning
&&
hero
.
isAlive
())
{
System
.
out
.
println
();
Enemy
enemy
=
generateRandomEnemy
();
System
.
out
.
println
(
"\nUn "
+
enemy
.
name
+
" apparaît !"
);
System
.
out
.
println
(
"Votre aventure commence !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" rencontre un "
+
enemy
.
name
);
Logger
.
getInstance
().
log
(
"Début de l'aventure de "
+
hero
.
name
);
battle
(
scanner
,
hero
,
enemy
);
if
(!
hero
.
isAlive
())
{
boolean
gameRunning
=
true
;
displayGameOver
();
while
(
gameRunning
&&
hero
.
isAlive
())
{
Logger
.
getInstance
().
log
(
hero
.
name
+
" est mort"
);
Enemy
enemy
=
generateRandomEnemy
();
break
;
System
.
out
.
println
(
"\nUn "
+
enemy
.
name
+
" apparaît !"
);
}
Logger
.
getInstance
().
log
(
hero
.
name
+
" rencontre un "
+
enemy
.
name
);
hero
.
resetSpecialAbility
();
Battle
.
battle
(
scanner
,
hero
,
enemy
);
hero
.
gainExperience
(
50
);
if
(!
hero
.
isAlive
())
{
displayGameOver
();
// Chance de trouver un objet après le combat
Logger
.
getInstance
().
log
(
hero
.
name
+
" est mort"
);
if
(
new
Random
().
nextInt
(
100
)
<
50
)
{
break
;
Item
foundItem
=
getRandomItem
();
}
System
.
out
.
println
(
"Vous trouvez un objet sur l'ennemi !"
);
hero
.
resetSpecialAbility
();
hero
.
addItem
(
foundItem
);
hero
.
gainExperience
(
50
);
}
// Chance de trouver un objet après le combat
if
(
new
Random
().
nextInt
(
100
)
<
50
)
{
Item
foundItem
=
getRandomItem
();
System
.
out
.
println
(
"Vous trouvez un objet sur l'ennemi !"
);
hero
.
addItem
(
foundItem
);
}
// Demander au joueur s'il veut continuer
// Demander au joueur s'il veut continuer
System
.
out
.
print
(
"\nVoulez-vous continuer ? (oui/non) : "
);
System
.
out
.
print
(
"\nVoulez-vous continuer ? (oui/non) : "
);
String
choice
=
scanner
.
next
();
String
choice
=
scanner
.
next
();
if
(!
choice
.
equalsIgnoreCase
(
"oui"
))
{
if
(!
choice
.
equalsIgnoreCase
(
"oui"
))
{
gameRunning
=
false
;
gameRunning
=
false
;
System
.
out
.
println
(
"Merci d'avoir joué !"
);
System
.
out
.
println
(
"Merci d'avoir joué !"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a quitté le jeu"
);
Logger
.
getInstance
().
log
(
hero
.
name
+
" a quitté le jeu"
);
}
}
}
}
}
}
}
}
\ No newline at end of file
src/main/java/org/example/Test.java
0 → 100644
View file @
a23e01b7
package
org
.
example
;
import
org.example.BeatThemAllGame.HealthPotion
;
public
class
Test
{
//TO-DO => les tests sont à refaire/améliorer !
public
static
void
runTests
()
{
System
.
out
.
println
(
"\n--- Exécution des tests unitaires ---"
);
testEnemyDefeated
();
testGameOver
();
testSpecialAbility
();
testItemUsage
();
System
.
out
.
println
(
"--- Tous les tests se sont terminés avec succès ---\n"
);
}
public
static
void
testEnemyDefeated
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
50
,
0
,
null
);
Enemy
enemy
=
new
Enemy
(
"TestEnemy"
,
50
,
0
,
0
,
null
);
hero
.
attack
(
enemy
);
assert
enemy
.
currentHP
==
0
:
"L'ennemi aurait dû être vaincu."
;
}
public
static
void
testGameOver
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
0
,
0
,
0
,
null
);
assert
!
hero
.
isAlive
()
:
"Le héros devrait être mort."
;
}
public
static
void
testSpecialAbility
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
20
,
0
,
new
DoubleAttack
());
Enemy
enemy
=
new
Enemy
(
"TestEnemy"
,
100
,
0
,
0
,
null
);
hero
.
useSpecialAbility
(
enemy
);
assert
enemy
.
currentHP
==
60
:
"La capacité spéciale du héros n'a pas fonctionné correctement."
;
}
public
static
void
testItemUsage
()
{
Hero
hero
=
new
Hero
(
"TestHero"
,
100
,
20
,
0
,
null
);
hero
.
currentHP
=
50
;
Item
potion
=
new
HealthPotion
();
potion
.
applyEffect
(
hero
);
assert
hero
.
currentHP
==
100
:
"La potion de santé n'a pas restauré correctement les PV du héros."
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment