Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 0d44cc1f rédigé par Nathan DOMENICHINI's avatar Nathan DOMENICHINI
Parcourir les fichiers

tp4_java

parent b055e2b4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
package FREEMIUM;
import java.util.List;
public class Client {
private String nom;
private List<Integer> favoris;
private EMail email;
IAbonnement abonnement;
public Client(EMail email, String nom, IAbonnement abonnement) {
this.nom = nom;
this.email = email;
this.abonnement = abonnement;
}
public void ecouter(int id) throws Forbidden {
if(this.abonnement.peutEcouter()) this.abonnement.servir_morceau(id);
}
public void ajouterFavori(int id) {
favoris.add((Integer) id);
}
public void changerAbonnement(IAbonnement nouveau) {
this.abonnement = nouveau;
}
public String getNom() {
return this.nom;
}
public List<Integer> getFavoris() {
return this.favoris;
}
}
package FREEMIUM;
public class EMail {
String adresse;
EMail (String adresse) {
this.adresse = adresse;
}
public String getAdresse(){
return this.adresse;
}
@Override
public String toString(){
return this.adresse;
}
@Override
public boolean equals(Object o){
return o.equals(this);
}
@Override
public int hashCode(){
return hashCode();
}
}
package FREEMIUM;
import FREEMIUM.BanqueMusique.Sound;
public class Freemium implements IAbonnement{
private int cpt_musiques, MAX_MORCEAUX;
private boolean pub, OPTION_Q3;
public Freemium(int MAX_MORCEAUX, boolean pub) {
this.MAX_MORCEAUX = MAX_MORCEAUX;
this.pub = pub;
}
@Override
public void reset() {
cpt_musiques = 0;
}
@Override
public boolean payer() {
return true;
}
@Override
public Sound servir_morceau(int id) throws Forbidden{
if(peutEcouter()) {
cpt_musiques++;
return BanqueMusique.getFile(id);
}
return null;
}
@Override
public boolean peutEcouter() {
return cpt_musiques <= 3;
}
}
package FREEMIUM;
public interface IAbonnement {
public void reset();
public boolean payer();
public BanqueMusique.Sound servir_morceau(int id) throws Forbidden;
public boolean peutEcouter();
}
package FREEMIUM;
import FREEMIUM.BanqueMusique.Sound;
public class Premium implements IAbonnement{
int FRAIS_ABONNEMENT, cpt_musiques;
CarteBancaire carte;
public Premium(CarteBancaire carte) {
this.carte = carte;
}
@Override
public void reset() {
cpt_musiques = 0;
}
@Override
public boolean payer() {
return this.carte.paye(FRAIS_ABONNEMENT);
}
@Override
public Sound servir_morceau(int id) throws Forbidden{
if(peutEcouter()) {
cpt_musiques++;
return BanqueMusique.getFile(id);
}
return null;
}
@Override
public boolean peutEcouter() {
return true;
}
}
......@@ -3,19 +3,25 @@ package FREEMIUM;
import java.util.* ;
class Systeme {
List <Utilisateur> lesUtilisateurs ;
List <Client> lesClients ;
Systeme(){
lesUtilisateurs = new LinkedList<>();
lesClients = new ArrayList<Client>();
}
void payerTous(int montant){
for (Utilisateur u : lesUtilisateurs){
u.payer(montant);
void addClient(Client c) {
this.lesClients.add(c);
}
void payerTous(){
for (Client u : lesClients){
u.abonnement.payer();
}
}
Utilisateur get(EMail a){
throw new UnsupportedOperationException(); // FIXME
void resetTous(){
for (Client u : lesClients){
u.abonnement.reset();
}
}
}
package FREEMIUM;
class Utilisateur {
String id, nom ;
public Utilisateur(String id, String nom){
this.id = id ;
this.nom = nom ;
}
void payer(int montant){
System.out.println("Facturation : " + nom + " " + montant);
}
}
package MultiPalet;
public class Champignon {
private int x, y, size;
public Champignon(int x, int y, int size) {
this.x = x;
this.y = y;
this.size = size;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getSize() {
return size;
}
}
......@@ -8,22 +8,41 @@ class Fenetre extends JFrame {
public Fenetre() {
setSize(320, 320);
Pulsar p1 = new Pulsar(60, 90);
Palet p2 = new Palet(300, 60);
Pulsar p2 = new Pulsar(300, 60);
Palet p3 = new Palet(200, 30);
Palet[] liste = {p1,p2};
Palet[] p = {p1,p2,p3};
Champignon c[] = {new Champignon(50, 50, 16)};
this.add(new Paneau(liste));
this.add(new Paneau(p, c));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class Paneau extends JPanel {
Palet p[];
Champignon champiiii[];
Paneau(Palet p[]){
Paneau(Palet p[], Champignon c[]){
super();
this.p=p ;
this.champiiii = c;
cptType();
}
public void cptType(){
int cptPulsar = 0;
int cptPalet = 0;
for(Palet palet : p) {
if ( palet instanceof Pulsar){
cptPulsar ++;
} else if ( palet instanceof Palet) {
cptPalet ++;
}
}
System.out.println("olala le nb de palet : "+ cptPalet+ ", et pulsarrrrr : "+ cptPulsar);
}
@Override
......@@ -46,6 +65,11 @@ class Paneau extends JPanel {
g.fillRoundRect((palet.getX() - palet.getSize()/2), (palet.getY() - palet.getSize()/2), palet.getSize(), palet.getSize(), 5, 5);
palet.deplace() ;
}
g.setColor(Color.RED);
for(Champignon c : champiiii) {
g.fillOval(c.getX(), c.getY(), c.getSize(), c.getSize()+250);
}
}
}
......@@ -57,6 +81,7 @@ public class Jeu {
Fenetre f = new Fenetre() ;
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true){
f.repaint() ;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter