Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 456a26a3 rédigé par fmoinard's avatar fmoinard
Parcourir les fichiers

Ajout du Pattern State

parent d2dc6eb0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!2Master
public interface Etat {
void partie(JustePrix justePrix);
}
public class EtatArret implements Etat {
@Override
public void partie(JustePrix justePrix) {
System.out.println("Vous n'avez pas encore commencé à jouer");
justePrix.setEtat(this);
}
public String toString() {
return "Etat arrêt";
}
}
public class EtatGagne implements Etat{
@Override
public void partie(JustePrix justePrix) {
System.out.println("Vous avez gagné");
justePrix.setEtat(this);
}
public String toString() {
return "Etat gagné";
}
}
public class EtatJouer implements Etat{
@Override
public void partie(JustePrix justePrix) {
System.out.println("Vous êtes en train de jouer");
justePrix.setEtat(this);
}
public String toString() {
return "Etat jouer";
}
}
public class EtatPerdu implements Etat{
@Override
public void partie(JustePrix justePrix) {
System.out.println("Vous avez perdu");
justePrix.setEtat(this);
}
public String toString() {
return "Etat perdu";
}
}
...@@ -2,6 +2,13 @@ import java.util.Scanner; ...@@ -2,6 +2,13 @@ import java.util.Scanner;
public class Game { public class Game {
public static void main(String[] args) { public static void main(String[] args) {
JustePrix justePrixPartie = new JustePrix();
EtatArret etatArret = new EtatArret();
etatArret.partie(justePrixPartie);
System.out.println(justePrixPartie.getEtat().toString());
Produit S21 = new TelephoneBuilder().setOs("Android10").setProcesseur("Intel").setBatterie( Produit S21 = new TelephoneBuilder().setOs("Android10").setProcesseur("Intel").setBatterie(
4000).setEcran(6.20).setMarque("Samsung").setPrix(700).getProduit(); 4000).setEcran(6.20).setMarque("Samsung").setPrix(700).getProduit();
Produit iPhone13 = new TelephoneBuilder().setOs("iOS15").setProcesseur("Apple").setBatterie( Produit iPhone13 = new TelephoneBuilder().setOs("iOS15").setProcesseur("Apple").setBatterie(
...@@ -29,10 +36,10 @@ public class Game { ...@@ -29,10 +36,10 @@ public class Game {
choix = scan.nextInt(); choix = scan.nextInt();
if (choix == 1) { if (choix == 1) {
justeprix = S21.getPrix(); justeprix = S21.getPrix();
jouerPartie(justeprix); jouerPartie(justeprix, justePrixPartie);
} else if (choix == 2) { } else if (choix == 2) {
justeprix = iPhone13.getPrix(); justeprix = iPhone13.getPrix();
jouerPartie(justeprix); jouerPartie(justeprix, justePrixPartie);
} }
} else if (choix == 2) { } else if (choix == 2) {
System.out.println("Vous avez choisi les tablettes, voici les téléphones que vous pouvez deviner :"); System.out.println("Vous avez choisi les tablettes, voici les téléphones que vous pouvez deviner :");
...@@ -41,24 +48,28 @@ public class Game { ...@@ -41,24 +48,28 @@ public class Game {
choix = scan.nextInt(); choix = scan.nextInt();
if (choix == 1) { if (choix == 1) {
justeprix = SurfacePro7.getPrix(); justeprix = SurfacePro7.getPrix();
jouerPartie(justeprix); jouerPartie(justeprix, justePrixPartie);
} else if (choix == 2) { } else if (choix == 2) {
justeprix = iPad.getPrix(); justeprix = iPad.getPrix();
jouerPartie(justeprix); jouerPartie(justeprix, justePrixPartie);
} }
} }
} }
private static void jouerPartie(int justeprix) private static void jouerPartie(int justeprix, JustePrix justePrixPartie)
{ {
EtatJouer etatJouer = new EtatJouer();
etatJouer.partie(justePrixPartie);
System.out.println(justePrixPartie.getEtat().toString());
int prix = -1; int prix = -1;
int essai = 0; int essai = 0;
Scanner deviner = new Scanner(System.in); Scanner deviner = new Scanner(System.in);
System.out.println("Vous avez 15 essais deviner le prix, attention... partez !"); System.out.println("Vous avez 10 essais deviner le prix, attention... partez !");
while (justeprix != prix && essai <= 15) while (justeprix != prix && essai <= 10)
{ {
prix = deviner.nextInt(); prix = deviner.nextInt();
if (justeprix > prix) { if (justeprix > prix) {
...@@ -69,7 +80,17 @@ public class Game { ...@@ -69,7 +80,17 @@ public class Game {
essai ++; essai ++;
} }
System.out.println("Bravo ! le juste prix est : " + justeprix); if (essai > 10) {
System.out.println("Vous l'avez trouvé en " + essai + " essais"); EtatPerdu etatPerdu = new EtatPerdu();
etatPerdu.partie(justePrixPartie);
System.out.println(justePrixPartie.getEtat().toString());
} else {
EtatGagne etatGagne = new EtatGagne();
etatGagne.partie(justePrixPartie);
System.out.println(justePrixPartie.getEtat().toString());
System.out.println("Bravo ! le juste prix est : " + justeprix + ". Vous l'avez trouvé en " + essai + " essais");
}
} }
} }
public class JustePrix {
private Etat etat;
public JustePrix() {
etat = null;
}
public void setEtat(Etat etat) {
this.etat = etat;
}
public Etat getEtat() {
return etat;
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter