Projet java : jeu de l'oie
Fermé
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
-
4 mai 2018 à 01:39
baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 - 6 mai 2018 à 15:20
baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 - 6 mai 2018 à 15:20
A voir également:
- Jeu de l'oie java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- 94 jeu - Télécharger - Puzzle & Réflexion
- Java apk - Télécharger - Langages
- Jeu zuma - Télécharger - Jeux vidéo
4 réponses
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
1
Modifié le 4 mai 2018 à 08:47
Modifié le 4 mai 2018 à 08:47
package jeudeloie; import java.util.Scanner; /** * * @author ophel */ public class Jeu { private Case[] lesCases; private Joueur[] lesJoueurs; private Joueur joueurCourant; public Jeu(){ lesCases= new Case[64]; initJoueurs(); joueurCourant=lesJoueurs[0]; // initTours(); } public void initJoueurs(){ Scanner sc= new Scanner(System.in); System.out.println("Veuillez entrer le nombre de joueurs:"); int nb= sc.nextInt(); sc.nextLine(); lesJoueurs= new Joueur[nb]; for(int i=0; i<nb; i++) {System.out.println("Veuillez entrer le pseudo du joueur"+(i+1)); String s= sc.nextLine(); lesJoueurs[i]= new Joueur(s); } } public void initTours(){ while(joueurCourant.getCasej().getNumero()!=64){ for(int i=0; i<lesJoueurs.length;i++ ) { joueurCourant=lesJoueurs[i]; System.out.println("Vous êtes sur la case numéro "+lesJoueurs[i].getCasej().getNumero()+" intitulée "+lesJoueurs[i].getCasej().getLibelle()); lesJoueurs[i].getCasej().execute(); } } } public void finJeu(){ System.out.println("Le joueur gagnant est: "+joueurCourant); System.exit(0); } }
package jeudeloie; /** * * @author ophel */ public class Case { private String libelle; private int numero; private Action act; private Joueur joueur; public String getLibelle() { return libelle; } public void setLibelle(String libelle) { this.libelle = libelle; } public Joueur getJoueur() { return joueur; } public void setJoueur(Joueur joueur) { this.joueur = joueur; } public int getNumero() { return numero; } public void setNumero(int num) { this.numero = num; if (num==0) { libelle="Départ"; act.setType("Lancer"); } if(num>0&&num<6) { libelle="case standart"; act.setType("Lancer"); } if (num==6) { libelle="Pont"; act.setType("Redirection"); } if (num==9||num==18||num==27||num==36||num==45||num==54||num==63) { libelle="Oie"; act.setType("Redirection"); } if (num==7||num==8) { libelle="Case standart"; act.setType("Lancer"); } if(num>9&& num<18) { libelle="Case standart"; act.setType("Lancer"); } if( num== 19) { libelle="Hotel"; act.setType("LancerOccasionel"); } if(num>19&&num<27) { libelle="Case standart"; act.setType("Lancer"); } if(num>27&&num<31) { libelle="Case standart"; act.setType("Lancer"); } if( num==31) { libelle="Puits"; act.setType("LancerOccasionnel"); } if(num>31&&num<36) { libelle="Case standart"; act.setType("Lancer"); } if( num>36&&num<42) { libelle="Case standart"; act.setType("Lancer"); } if (num==42) { libelle="Labyrinthe"; act.setType("Redirection"); } if(num>42&&num<45) { libelle="Case standart"; act.setType("Lancer"); } if(num>45&&num<52) { libelle="Case standart"; act.setType("Lancer"); } if(num==52) { libelle="Prison"; } if(num==53) { libelle="Case standart"; act.setType("Lancer"); } if(num>54&&num<58) { libelle="Case standart"; act.setType("Lancer"); } if(num==58) { libelle="Mort"; act.setType("Redirection"); } if(num>58&&num<63) { libelle="Case standart"; act.setType("Lancer"); } if(num==63) { libelle="Arrivée"; act.setType("Gain"); } } public Action getAct() { return act; } public void setAct(Action act) { this.act = act; } public Case(){ libelle="Départ"; numero=0; act= null; } public void execute(){ if (act.getType().equals("Lancer")) {act= new Lancer(joueur); act.execute(); } } }
package jeudeloie; /** * * @author ophel */ public abstract class Action { private String type; public String getType() { return type; } public void setType(String type) { this.type = type; } public abstract void execute(); }
package jeudeloie; /** * * @author ophel */ public class Joueur { private String pseudo; private Case casej; public String getPseudo() { return pseudo; } public void setPseudo(String pseudo) { this.pseudo = pseudo; } public Case getCasej() { return casej; } public void setCasej(Case casej) { this.casej = casej; } public Joueur(String s){ setPseudo(s); casej= new Case(); casej.setNumero(0); } }
package jeudeloie; import java.util.Scanner; /** * * @author ophel */ public class Lancer extends Action { private Joueur j; public Lancer(Joueur joueur){ j=joueur; } public void execute(){ Scanner sc= new Scanner(System.in); System.out.println(j.getPseudo()+" ,veuillez entrer le résultat du premier dé:"); int de1= sc.nextInt(); System.out.println(j.getPseudo()+" ,veuillez entrer le résultat du deuxième dé:"); int de2= sc.nextInt(); int som= de1+de2; j.getCasej().setNumero( j.getCasej().getNumero()+som); System.out.println("Vous êtes sur la case numéro "+j.getCasej().getNumero()+" intitulée "+j.getCasej().getLibelle()); } }
voila ce que j'ai fait pour l'instant
Chris 94
Messages postés
50978
Date d'inscription
mardi 8 janvier 2008
Statut
Modérateur
Dernière intervention
17 février 2023
7 334
4 mai 2018 à 01:41
4 mai 2018 à 01:41
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
4 mai 2018 à 09:32
4 mai 2018 à 09:32
Bonjour,
Est-ce que tu pourrais nous donner ton main(), moi j'ai un NullPointerException dès la saisie des pseudos...
Et au passage, c'est quoi qui te bloque ? (comme je n'ai pas pu tester ce n'est pas forcément évident)
Tu as une erreur, ou juste un truc que tu voudrais faire (quoi ?) qui ne marche pas comme tu voudrais ? (qu'est-ce que tu voudrais ?)
Est-ce que tu pourrais nous donner ton main(), moi j'ai un NullPointerException dès la saisie des pseudos...
Et au passage, c'est quoi qui te bloque ? (comme je n'ai pas pu tester ce n'est pas forcément évident)
Tu as une erreur, ou juste un truc que tu voudrais faire (quoi ?) qui ne marche pas comme tu voudrais ? (qu'est-ce que tu voudrais ?)
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
1
Modifié le 4 mai 2018 à 11:22
Modifié le 4 mai 2018 à 11:22
Ah oui ça marchait avant que je mette le casej.setNumero(0) dans le constructeur de la classe joueur normalement;
Mon main :
Bah du coup j'aimerai déja que ma classe lancer marche pour pouvoir coder les autres actions possibles des cases..
Mon main :
package jeudeloie; /** * * @author ophel */ public class Jeudeloie { /** * @param args the command line arguments */ public static void main(String[] args) { Jeu j= new Jeu(); // TODO code application logic here } }
Bah du coup j'aimerai déja que ma classe lancer marche pour pouvoir coder les autres actions possibles des cases..
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié le 4 mai 2018 à 16:41
Modifié le 4 mai 2018 à 16:41
Voici ce que je te propose :
1) utiliser des enum à la place des classes Action et Case.
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
2) utiliser des références de méthodes (par exemple avec un Consumer) pour tes actions.
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
Exemple (partiel) pour les case 0 à 10 :
1) utiliser des enum à la place des classes Action et Case.
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
2) utiliser des références de méthodes (par exemple avec un Consumer) pour tes actions.
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
Exemple (partiel) pour les case 0 à 10 :
package jeudeloie; import java.util.function.Consumer; public enum Action { LANCER("Lancer", Action::executeLancer), STANDARD("Case standard", Action::executeStandard), REDIRECTION("Redirection", Action::executeRedirection); private final String libelle; private final Consumer<Joueur> executeMethod; private Action(String libelle, Consumer<Joueur> executeMethod) { this.libelle = libelle; this.executeMethod = executeMethod; } public String getLibelle() { return libelle; } public void execute(Joueur joueur) { executeMethod.accept(joueur); } private static void executeLancer(Joueur joueur) { int numero = joueur.getPosition(); System.out.println("Vous êtes sur la case numéro " + numero + " intitulée " + Case.findByNumero(numero).getLibelle()); } private static void executeStandard(Joueur joueur) { //TODO } private static void executeRedirection(Joueur joueur) { //TODO } }
package jeudeloie; public enum Case { DEPART("Départ", Action.LANCER, 0), STANDARD("Case standard", Action.LANCER, 1, 2, 3, 4, 5, 7, 8), PONT("Pont", Action.REDIRECTION, 6), OIE("Oie", Action.REDIRECTION, 9); private final String libelle; private final Action action; private final int[] numeros; private Case(String libelle, Action action, int... numeros) { this.libelle = libelle; this.action = action; this.numeros = numeros; } public String getLibelle() { return libelle; } public Action getAction() { return action; } public static Case findByNumero(int numero) { for (Case c : Case.values()) for (int n : c.numeros) if (n == numero) return c; throw new IllegalArgumentException("La case " + numero + " n'existe pas."); } }
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
1
4 mai 2018 à 13:22
4 mai 2018 à 13:22
Merci beaucoup! cependant je ne suis pas sure d'avoir le droit d'utiliser cela étant donné qu'on ne l'a pas vu en cours.. :(
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
>
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
4 mai 2018 à 13:41
4 mai 2018 à 13:41
Aucun cours ne pourra t'apprendre tout un langage comme Java, il y a forcément des choses que tu devras découvrir par toi même, et celles-ci en font partie.
Remarque : pour les enum c'est même surprenant qu'on ne les enseigne pas, c'est vraiment basique.
Après, est-ce que c'est autorisé ou non dans le cadre de ton projet, seul ton prof pourra y répondre, mais faire preuve d'initiative est rarement sanctionné. Après tout, tu es à l'université, plus au collège...
Remarque : pour les enum c'est même surprenant qu'on ne les enseigne pas, c'est vraiment basique.
Après, est-ce que c'est autorisé ou non dans le cadre de ton projet, seul ton prof pourra y répondre, mais faire preuve d'initiative est rarement sanctionné. Après tout, tu es à l'université, plus au collège...
baladur13
Messages postés
47308
Date d'inscription
mercredi 11 avril 2007
Statut
Modérateur
Dernière intervention
17 février 2025
13 564
>
ophlapetite
Messages postés
5
Date d'inscription
vendredi 4 mai 2018
Statut
Membre
Dernière intervention
4 mai 2018
6 mai 2018 à 15:20
6 mai 2018 à 15:20
Bonjour
Puisque vous dites dans une alerte le problème résolu, et comme on est jamais aussi bien servi que par soi-même
==> https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/
Puisque vous dites dans une alerte le problème résolu, et comme on est jamais aussi bien servi que par soi-même
==> https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/
Modifié le 4 mai 2018 à 02:19
Je ne pourrais pas t'aider moi-même, c'est hors de mes compétences. Essaye de décrire ce qui bloque ou bugue quand tu fais tourner ton code.
4 mai 2018 à 02:33
du coup ce qui me bloque c'est au moment d’exécuter les actions des différentes cases du jeu