Skip to content
Snippets Groups Projects
Commit c99740f9 authored by michael.divia's avatar michael.divia
Browse files

Suite Partie 2

parent b3ff98a1
No related branches found
No related tags found
No related merge requests found
Showing
with 514 additions and 6 deletions
......@@ -2,6 +2,7 @@ package ch.hepia;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class JeudeCarte {
......@@ -14,9 +15,13 @@ public class JeudeCarte {
for (COULEUR couleur : COULEUR.values()) {
for (int rang = 1; rang < (nb / 4) + 1; rang++) {
for (int rang = 7; rang <= (nb / 4) + 6; rang++) {
if (rang > 13) {
jeuDeCartes.add(new Carte(couleur, rang - 13));
} else {
jeuDeCartes.add(new Carte(couleur, rang));
}
}
......@@ -31,6 +36,24 @@ public class JeudeCarte {
}
}
Collections.sort(jeuDeCartes, new Comparator<Carte>() {
public int compare(Carte carte1, Carte carte2) {
int comparaisonCouleur = carte1.getCouleur().compareTo(carte2.getCouleur());
if (comparaisonCouleur == 0) {
return Integer.compare(carte1.getRang(), carte2.getRang());
} else {
return comparaisonCouleur;
}
}
});
}
public Carte GetTopCarteOfGame() {
......
File added
File added
File added
File added
File added
File added
File added
/home/padi/Git/java-card-game/src/main/java/ch/hepia/JeudeCarte.java
/home/padi/Git/java-card-game/src/main/java/ch/hepia/Carte.java
/home/padi/Git/java-card-game/src/main/java/ch/hepia/App.java
/home/padi/Git/java-card-game/src/main/java/ch/hepia/Hand.java
/home/padi/Git/java-card-game/Partie_1/src/main/java/ch/hepia/Hand.java
/home/padi/Git/java-card-game/Partie_1/src/main/java/ch/hepia/Carte.java
/home/padi/Git/java-card-game/Partie_1/src/main/java/ch/hepia/App.java
/home/padi/Git/java-card-game/Partie_1/src/main/java/ch/hepia/JeudeCarte.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.hepia</groupId>
<artifactId>Java_Card_Game</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Java_Card_Game</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>20</maven.compiler.source>
<maven.compiler.target>20</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>19</version>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>ch.hepia.App</mainClass>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
\ No newline at end of file
package ch.hepia;
public class App {
public static void main(String[] args) {
Paquet BlackJack = new Paquet(6, 52);
BlackJack.getPaquet().get(0).ShowPaquet();
BlackJack.getPaquet().get(1).ShowPaquet();
BlackJack.getPaquet().get(2).ShowPaquet();
BlackJack.getPaquet().get(3).ShowPaquet();
BlackJack.getPaquet().get(4).ShowPaquet();
}
}
package ch.hepia;
enum COULEUR {
coeur,
carreau,
pique,
trefle
}
public class Carte {
final private COULEUR couleur;
final private int rang;
private int force;
private static final int NOMBRE_DE_RANGS = 13;
String[][] playingCards = {
{ "🃟", "🂱", "🂲", "🂳", "🂴", "🂵", "🂶", "🂷", "🂸", "🂹", "🂺", "🂻", "🂽", "🂾" },
{ "🃟", "🃁", "🃂", "🃃", "🃄", "🃅", "🃆", "🃇", "🃈", "🃉", "🃊", "🃋", "🃍", "🃎" },
{ "🃟", "🂡", "🂢", "🂣", "🂤", "🂥", "🂦", "🂧", "🂨", "🂩", "🂪", "🂫", "🂭", "🂮" },
{ "🃟", "🃑", "🃒", "🃓", "🃔", "🃕", "🃖", "🃗", "🃘", "🃙", "🃚", "🃛", "🃝", "🃞" }
};
public Carte(COULEUR couleur, int rang) {
if (rang < 0 || rang > NOMBRE_DE_RANGS) {
throw new IllegalArgumentException("Carte invalide : rang incorrect");
}
this.couleur = couleur;
this.rang = rang;
}
public Carte(COULEUR couleur, int rang, int force) {
if (rang < 0 || rang > NOMBRE_DE_RANGS) {
throw new IllegalArgumentException("Carte invalide : rang incorrect");
}
this.couleur = couleur;
this.rang = rang;
this.force = force;
}
public COULEUR getCouleur() {
return this.couleur;
}
public int getRang() {
return this.rang;
}
public int getForce() {
return this.force;
}
public String getNomCouleur() {
String[] NOMS_COULEURS = { "♥", "♦", "♠", "♣" };
return NOMS_COULEURS[couleur.ordinal()];
}
public String getNomRang() {
String[] NOMS_RANGS = { "Joker", "As", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Valet", "Dame", "Roi" };
return NOMS_RANGS[rang];
}
public String getNomComplet() {
if (getRang() == 0) {
return "🃟";
} else {
return playingCards[couleur.ordinal()][rang];
}
}
}
package ch.hepia;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Hand implements Comparable<Hand> {
private List<Carte> Hand;
public Hand(Carte... cartes) {
Hand = new ArrayList<>();
for (Carte carte : cartes) {
Hand.add(carte);
}
}
public Hand(JeudeCarte game, int nb) {
Hand = new ArrayList<>();
this.DrawCardFromGame(game, nb);
}
public void AddCardToHand(Carte... cartes) {
for (Carte carte : cartes) {
this.Hand.add(carte);
}
}
public void RemoveCardFromHand(Carte... cartes) {
for (Carte carte : cartes) {
this.Hand.remove(carte);
}
}
public void DrawCardFromGame(JeudeCarte game) {
this.AddCardToHand(game.GetTopCarteOfGame());
game.RemoveCarteFromGame(game.GetTopCarteOfGame());
}
public void DrawCardFromGame(JeudeCarte game, int nb) {
for (int x = 0; x < nb; x++) {
this.DrawCardFromGame(game);
}
}
public void SortHand() {
Collections.sort(Hand, new Comparator<Carte>() {
public int compare(Carte carte1, Carte carte2) {
int comparaisonCouleur = carte1.getCouleur().compareTo(carte2.getCouleur());
if (comparaisonCouleur == 0) {
return Integer.compare(carte1.getRang(), carte2.getRang());
} else {
return comparaisonCouleur;
}
}
});
}
public void ShowHand() {
this.SortHand();
System.out.println("-------- Main --------");
COULEUR currentcolor = null;
for (Carte carte : Hand) {
System.out.print(carte.getNomComplet() + " ");
}
System.out.println("\n----------------------");
}
@Override
public int compareTo(Hand otherHand) {
int Hand_1_Power = 0;
int Hand_2_Power = 0;
for (Carte carte : Hand) {
Hand_1_Power += carte.getRang();
}
for (Carte carte : otherHand.Hand) {
Hand_2_Power += carte.getRang();
}
if (Hand_1_Power > Hand_2_Power) {
return 1;
} else if (Hand_1_Power < Hand_2_Power) {
return -1;
} else {
return 0;
}
}
}
package ch.hepia;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class JeudeCarte {
private List<Carte> jeuDeCartes;
public JeudeCarte(int nb) {
jeuDeCartes = new ArrayList<>();
for (COULEUR couleur : COULEUR.values()) {
for (int rang = 7; rang <= (nb / 4) + 6; rang++) {
if (rang > 13) {
jeuDeCartes.add(new Carte(couleur, rang - 13));
} else {
jeuDeCartes.add(new Carte(couleur, rang));
}
}
}
if (nb % 4 != 0) {
for (int x = 0; x < nb % 4; x++) {
jeuDeCartes.add(new Carte(COULEUR.carreau, 0));
}
}
Collections.sort(jeuDeCartes, new Comparator<Carte>() {
public int compare(Carte carte1, Carte carte2) {
int comparaisonCouleur = carte1.getCouleur().compareTo(carte2.getCouleur());
if (comparaisonCouleur == 0) {
return Integer.compare(carte1.getRang(), carte2.getRang());
} else {
return comparaisonCouleur;
}
}
});
}
public Carte GetTopCarteOfGame() {
return this.jeuDeCartes.get(0);
}
public void AddCarteToGame(Carte... cartes) {
for (Carte carte : cartes) {
this.jeuDeCartes.add(carte);
}
}
public void RemoveCarteFromGame(Carte... cartes) {
for (Carte carte : cartes) {
this.jeuDeCartes.remove(carte);
}
}
public void shuffle() {
Collections.shuffle(jeuDeCartes);
}
public void ShowPaquet() {
System.out.println("------- Paquet -------");
for (Carte carte : jeuDeCartes) {
System.out.println(carte.getNomComplet());
}
System.out.println("----------------------");
}
}
package ch.hepia;
import java.util.List;
import java.util.ArrayList;
public class Paquet {
private List<JeudeCarte> paquet;
public Paquet(int nb_paquet, int nb_carte) {
paquet = new ArrayList<>();
for (int i = 0; i < nb_paquet; ++i) {
JeudeCarte jeuDeCarte = new JeudeCarte(nb_carte);
jeuDeCarte.shuffle();
paquet.add(jeuDeCarte);
}
}
public List<JeudeCarte> getPaquet() {
return paquet;
}
}
package ch.hepia;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CarteTest {
@Test
public void testGetCouleur() {
Carte carte = new Carte(COULEUR.coeur, 2);
assertEquals(COULEUR.coeur, carte.getCouleur());
}
@Test
public void testGetRang() {
Carte carte = new Carte(COULEUR.carreau, 7);
assertEquals(7, carte.getRang());
}
@Test
public void testGetForce() {
Carte carte = new Carte(COULEUR.trefle, 12, 10);
assertEquals(10, carte.getForce());
}
@Test
public void testGetNomCouleur() {
Carte carte = new Carte(COULEUR.coeur, 0);
assertEquals("Coeur", carte.getNomCouleur());
}
@Test
public void testGetNomRang() {
Carte carte = new Carte(COULEUR.coeur, 2);
assertEquals("2", carte.getNomRang());
}
@Test
public void testGetNomComplet() {
Carte carte = new Carte(COULEUR.carreau, 12);
assertEquals("Dame de Carreau", carte.getNomComplet());
}
@Test
public void testGetNomComplet_2() {
Carte carte = new Carte(COULEUR.carreau, 0);
assertEquals("Joker", carte.getNomComplet());
}
}
\ No newline at end of file
File added
File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment