Skip to content

Commit c11a986

Browse files
Tezz03“Tezz03”anthonydmays
authored
feat: adds Montez's custom player object (#511)
* feat:mbLesson_09 * Delete lesson_09/types/types_app/src/main/java/com/codedifferently/lesson9/dataprovider/montezBProviderProvider.java * Delete lesson_09/types/types_app/src/main/resources/data/montezb.json * feat:create java file and test file * fix:upload more tests * fix: to upload * chore: fixes namespaces Signed-off-by: Anthony D. Mays <[email protected]> --------- Signed-off-by: Anthony D. Mays <[email protected]> Co-authored-by: “Tezz03” <“[email protected]”> Co-authored-by: Anthony D. Mays <[email protected]>
1 parent 642bad6 commit c11a986

File tree

2 files changed

+205
-0
lines changed
  • lesson_16/objects/objects_app/src

2 files changed

+205
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package com.codedifferently.lesson16.player;
2+
3+
public class Player {
4+
5+
private String name;
6+
private Type type;
7+
private int level;
8+
private double currentExperience;
9+
private int expPerFight;
10+
private boolean isAlive;
11+
12+
public enum Type {
13+
HUMAN,
14+
ELF,
15+
ORC,
16+
DRAGONIOD
17+
}
18+
19+
public Player(
20+
String name,
21+
Type type,
22+
int level,
23+
double currentExperience,
24+
int expPerFight,
25+
boolean isAlive) {
26+
this.name = name;
27+
this.type = type;
28+
this.level = level;
29+
this.currentExperience = currentExperience;
30+
this.expPerFight = expPerFight;
31+
this.isAlive = isAlive;
32+
}
33+
34+
// Getters and Setters
35+
public String getName() {
36+
return name;
37+
}
38+
39+
public void setName(String name) {
40+
this.name = name;
41+
}
42+
43+
public Type getType() {
44+
return type;
45+
}
46+
47+
public void setType(Type characterType) {
48+
this.type = characterType;
49+
}
50+
51+
public int getLevel() {
52+
return level;
53+
}
54+
55+
public void setLevel(int level) {
56+
this.level = level;
57+
}
58+
59+
public double getCurrentExperience() {
60+
return currentExperience;
61+
}
62+
63+
public void setCurrentExperiience(double currentExperience) {
64+
this.currentExperience = currentExperience;
65+
}
66+
67+
public int getExpPerFight() {
68+
if (expPerFight <= 0) {
69+
throw new IllegalStateException("Experience per fight must be greater than 0.");
70+
}
71+
return expPerFight;
72+
}
73+
74+
public void setExpPerFight(int expPerFight) {
75+
this.expPerFight = expPerFight;
76+
}
77+
78+
public boolean getIsAlive() {
79+
return isAlive;
80+
}
81+
82+
public void gainExperience(int fights) {
83+
for (int i = 0; i < fights; i++) {
84+
currentExperience += expPerFight;
85+
86+
double requiredExp = 100 * Math.pow(2, level - 1); // Level 1: 100 XP, Level 2: 200 XP, etc.
87+
88+
while (currentExperience >= requiredExp) {
89+
currentExperience -= requiredExp; // carry over any extra XP
90+
level++;
91+
System.out.println(name + " leveled up to level " + level + "!");
92+
requiredExp = 100 * Math.pow(2, level - 1); // Update the required XP for the new level
93+
}
94+
}
95+
// used ai for lines between 85 and 97
96+
}
97+
}
98+
99+
// int level = 1; int experience = 0; for(int i = 1; i <= 100; i++) {
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
package com.codedifferently.lesson16.player;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
6+
import com.codedifferently.lesson16.player.Player.Type;
7+
import java.util.ArrayList;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class PlayerTest {
11+
12+
@Test
13+
public void getName() {
14+
var expectedName = "JinWhoo";
15+
16+
Player player1 = new Player("JinWhoo", null, 0, 0, 0, true);
17+
18+
var actual = player1.getName();
19+
20+
assertEquals(expectedName, actual);
21+
}
22+
23+
@Test
24+
public void setName() {
25+
var expectedName = "Montez";
26+
27+
Player player = new Player("JinWhoo", null, 0, 0, 0, true);
28+
29+
player.setName(expectedName);
30+
31+
assertEquals(expectedName, player.getName());
32+
}
33+
34+
@Test
35+
public void getType() {
36+
Player player1 = new Player(null, Player.Type.DRAGONIOD, 0, 0, 0, true);
37+
Type expected = Type.DRAGONIOD;
38+
assertEquals(expected, player1.getType());
39+
}
40+
41+
@Test
42+
public void setType() {
43+
Player player = new Player(null, Player.Type.HUMAN, 0, 0, 0, true);
44+
player.setType(Player.Type.ELF);
45+
assertEquals(Player.Type.ELF, player.getType());
46+
}
47+
48+
@Test
49+
public void getLevel() {
50+
Player player = new Player(null, null, 5, 0, 0, true);
51+
assertEquals(5, player.getLevel());
52+
}
53+
54+
@Test
55+
public void setLevel() {
56+
Player player = new Player(null, null, 1, 0, 0, true);
57+
player.setLevel(10);
58+
assertEquals(10, player.getLevel());
59+
}
60+
61+
@Test
62+
public void getCurrentExperience() {
63+
Player player = new Player(null, null, 0, 150.5, 0, true);
64+
assertEquals(150.5, player.getCurrentExperience());
65+
}
66+
67+
@Test
68+
public void setCurrentExperience() {
69+
Player player = new Player(null, null, 0, 0, 0, true);
70+
player.setCurrentExperiience(200.75);
71+
assertEquals(200.75, player.getCurrentExperience());
72+
}
73+
74+
@Test
75+
public void getExpPerFight() {
76+
Player player = new Player(null, null, 0, 0, 50, true);
77+
assertEquals(50, player.getExpPerFight());
78+
}
79+
80+
@Test
81+
public void setExpPerFight() {
82+
Player player = new Player(null, null, 0, 0, 0, true);
83+
player.setExpPerFight(100);
84+
assertEquals(100, player.getExpPerFight());
85+
}
86+
87+
@Test
88+
public void getIsAlive() {
89+
Player player = new Player(null, null, 0, 0, 0, true);
90+
assertTrue(player.getIsAlive());
91+
}
92+
93+
@Test
94+
public void testLevelUpOnce() {
95+
ArrayList<String> abilities = new ArrayList<>();
96+
Player player1 = new Player("Jordan", Player.Type.HUMAN, 1, 0, 100, true);
97+
98+
player1.gainExperience(1); // 1 fight = 100 XP
99+
100+
assertEquals(2, player1.getLevel()); // Should now be level 2
101+
assertEquals(0, player1.getCurrentExperience()); // XP resets after exact level up
102+
}
103+
}
104+
105+
// String name, Type type, int level, double currentExperience, int expPerFight, ArrayList<String>
106+
// unlockedAbilities, boolean isAlive

0 commit comments

Comments
 (0)