Merge pull request 'Trois classes créees.' (#7) from createJob into Dev

Reviewed-on: #7
This commit is contained in:
Grough 2024-08-01 18:05:57 +00:00
commit 59fec89325
27 changed files with 464 additions and 1 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="openjdk-22 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Java_Petit_projet.iml" filepath="$PROJECT_DIR$/Java_Petit_projet.iml" />
</modules>
</component>
</project>

124
.idea/uiDesigner.xml generated Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

11
Java_Petit_projet.iml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,170 @@
package heroes; package heroes;
import heroes.jobs.Job;
import heroes.races.Race;
public class Hero { public class Hero {
protected String name;
protected Race race;
protected Job job;
protected int healthBaseLevel;
protected int strengthBaseLevel;
protected int dexterityBaseLevel;
protected int intelligenceBaseLevel;
protected int defenseBaseLevel;
protected int health;
protected int strength;
protected int dexterity;
protected int intelligence;
protected int defense;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Race getRace() {
return race;
}
public void setRace(Race race) {
this.race = race;
}
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
if (job != null){
job.adjustStats(this);
}
}
public int getHealthBaseLevel() {
return healthBaseLevel;
}
public void setHealthBaseLevel(int healthBaseLevel) {
this.healthBaseLevel = healthBaseLevel;
}
public int getStrengthBaseLevel() {
return strengthBaseLevel;
}
public void setStrengthBaseLevel(int strengthBaseLevel) {
this.strengthBaseLevel = strengthBaseLevel;
}
public int getDexterityBaseLevel() {
return dexterityBaseLevel;
}
public void setDexterityBaseLevel(int dexterityBaseLevel) {
this.dexterityBaseLevel = dexterityBaseLevel;
}
public int getIntelligenceBaseLevel() {
return intelligenceBaseLevel;
}
public void setIntelligenceBaseLevel(int intelligenceBaseLevel) {
this.intelligenceBaseLevel = intelligenceBaseLevel;
}
public int getDefenseBaseLevel() {
return defenseBaseLevel;
}
public void setDefenseBaseLevel(int defenseBaseLevel) {
this.defenseBaseLevel = defenseBaseLevel;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getStrength() {
return strength;
}
public void setStrength(int strength) {
this.strength = strength;
}
public int getDexterity() {
return dexterity;
}
public void setDexterity(int dexterity) {
this.dexterity = dexterity;
}
public int getIntelligence() {
return intelligence;
}
public void setIntelligence(int intelligence) {
this.intelligence = intelligence;
}
public int getDefense() {
return defense;
}
public void setDefense(int defense) {
this.defense = defense;
}
public Hero() {
this.setName("Hero");
this.setRace(null);
this.setJob(null);
this.setHealthBaseLevel(100);
this.setStrengthBaseLevel(10);
this.setDexterityBaseLevel(10);
this.setIntelligenceBaseLevel(10);
this.setDefenseBaseLevel(10);
setHealth(this.getHealthBaseLevel());
setStrength(this.getStrengthBaseLevel());
setDexterity(this.getDexterityBaseLevel());
setIntelligence(this.getIntelligenceBaseLevel());
setDefense(this.getDefenseBaseLevel());
}
public Hero(String name) {
this.setName(name);
this.setRace(null);
this.setJob(null);
this.setHealthBaseLevel(100);
this.setStrengthBaseLevel(10);
this.setDexterityBaseLevel(10);
this.setIntelligenceBaseLevel(10);
this.setDefenseBaseLevel(10);
setHealth(this.getHealthBaseLevel());
setStrength(this.getStrengthBaseLevel());
setDexterity(this.getDexterityBaseLevel());
setIntelligence(this.getIntelligenceBaseLevel());
setDefense(this.getDefenseBaseLevel());
}
public void printStats() {
System.out.println("Caractéristiques de " + this.getName() + " :");
// System.out.println("Classe : " + this.getJob().getName());
// System.out.println("Race : " + this.getRace().getName());
System.out.println("Point de vie : " + this.getHealth());
System.out.println("Force : " + this.getStrength());
System.out.println("Dextérité : " + this.getDexterity());
System.out.println("Intelligence : " + this.getIntelligence());
System.out.println("Défense : " + this.getDefense());
}
} }

View File

@ -2,5 +2,16 @@ package heroes.jobs;
import heroes.Hero; import heroes.Hero;
public abstract class Job extends Hero { public abstract class Job {
public String jobName;
public String getJobName() {
return jobName;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
public abstract void adjustStats(Hero hero);
} }

16
src/heroes/jobs/Mage.java Normal file
View File

@ -0,0 +1,16 @@
package heroes.jobs;
import heroes.Hero;
public class Mage extends Job{
public Mage() {
this.setJobName("Mage");
}
@Override
public void adjustStats(Hero hero) {
hero.setHealth(hero.getHealthBaseLevel() - 10);
hero.setStrength(hero.getStrengthBaseLevel() - 10);
hero.setDefense(hero.getDefenseBaseLevel() - 5);
hero.setIntelligence(hero.getIntelligenceBaseLevel() + 20);
}
}

View File

@ -0,0 +1,16 @@
package heroes.jobs;
import heroes.Hero;
public class Rogue extends Job{
public Rogue() {
this.setJobName("Voleur");
}
@Override
public void adjustStats(Hero hero) {
hero.setHealth(hero.getHealthBaseLevel() - 10);
hero.setStrength(hero.getStrengthBaseLevel() + 5);
hero.setDexterity(hero.getDexterityBaseLevel() + 20);
hero.setIntelligence(hero.getIntelligenceBaseLevel() - 5);
}
}

View File

@ -0,0 +1,17 @@
package heroes.jobs;
import heroes.Hero;
public class Warrior extends Job {
public Warrior() {
this.setJobName("Guerrier");
}
@Override
public void adjustStats(Hero hero) {
hero.setHealth(hero.getHealthBaseLevel() + 10);
hero.setStrength(hero.getStrengthBaseLevel() + 10);
hero.setDefense(hero.getDefenseBaseLevel() + 10);
hero.setDexterity(hero.getDexterityBaseLevel() - 5);
hero.setIntelligence(hero.getIntelligenceBaseLevel() - 5);
}
}

View File

@ -1,4 +1,78 @@
package systems; package systems;
import heroes.Hero;
import heroes.jobs.Mage;
import heroes.jobs.Rogue;
import heroes.jobs.Warrior;
import java.util.Scanner;
public class Game { public class Game {
public Scanner scanner = new Scanner(System.in);
public Game() {
System.out.println("Bienvenue dans ce projet fou ! Veux-tu créer ton personnage ?");
System.out.println("1.Oui\n2.Non");
String startGame = scanner.next();
switch (startGame.toLowerCase()) {
case "oui", "yes", "y", "o" -> createCharacter();
case "non", "no", "n" -> {
System.out.println("Très bien, à bientôt !");
System.exit(0);
}
}
}
public void createCharacter() {
System.out.println("Quel est le nom de ton personnage ?");
String name = scanner.next();
System.out.println("Ton personnage s'appelle " + name + " ! Veux-tu le modifier ? \n1.Oui\n2.Non");
String choice = scanner.next();
switch (choice.toLowerCase()) {
case "oui", "yes", "y", "o" -> {
createCharacter();
}
case "non", "no", "n" -> {
System.out.println("Très bien, " + name + ".");
Hero hero = new Hero(name);
hero.printStats();
selectJob(hero);
}
}
}
public void selectJob(Hero hero){
System.out.println("Quelle classe veux-tu choisir ? Un guerrier ? (G), un mage ? (M), un voleur ? (V)");
String job = scanner.next();
switch (job.toLowerCase()) {
case "guerrier", "g" -> {
hero.setJob(new Warrior());
System.out.println("Tu as choisi la classe de guerrier !");
hero.printStats();
}
case "mage", "m" -> {
hero.setJob(new Mage());
System.out.println("Tu as choisi la classe de mage !");
hero.printStats();
}
case "voleur", "v" -> {
hero.setJob(new Rogue());
System.out.println("Tu as choisi la classe de voleur !");
hero.printStats();
}
}
System.out.println("Voici les caractéristiques de ton personnage :");
hero.printStats();
System.out.println(hero.getJob().getJobName());
System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non");
String choice = scanner.next();
switch (choice.toLowerCase()) {
case "oui", "yes", "y", "o" -> selectRace(hero);
case "non", "no", "n" -> selectJob(hero);
}
}
private void selectRace(Hero hero) {
}
} }