Jeu barbotte

0/5 (5 avis)

Snippet vu 15 328 fois - Téléchargée 18 fois

Contenu du snippet

C'est un jeu de dé entre 2 personnes. Le tirage est fait de façon aléatoire. Aprés tirage des 2 dés la somme des faces supérieures est calculée. Si cette somme vaut 7 ou 11 au premier jet le joueur gagne. Si elle vaut 2, 3 ou 12 au premier jet, le joueur perd. Sinon si la somme vaut autre chose que ce qu'on a cité au premier jet alors elle forme les points du joueur. Dans ce cas le joueur continue à jouer le dé jusqu'à ce qu'il refasse ces points c'est à dire qu'il lance la même valeur que son premier jet pour gagner. Le joueur perd s'il lace une somme de 7 avant de refaire ces points

Source / Exemple :


/*                                          
					Regle de jeu de la barbotte
Le joueur jette deux de a 6 faces numerotées de 1 a 6 respectivemt. Une fois les des au repos la somme des cages de leur face superieure est calculée. Si cette somme vaut 7 ou 11 au premier jet, le joueur gagne. Si elle vaut 2, 3 ou 12 au premier jet, le joueur perd sinon si la somme vaut 4,5,6,8,9 ou 10 au premier jet, alors elle forme les "points" du joueur. Dans ce cas, le joueur continue a jouer les des juska ce kil refasse ces "points" c a d kil lance la meme valeur ke son premier jet pour gagner. Le joueur perd s'il lance une somme de 7 avant de refaire ses "points" 

faire une Applet
faire une fenetre pr presentation
  ____________________________________________________
 |____________________________________________________|
 |                                                    |
 |JTextLabel-->De1  |__|      De2  |__|<--JTextField  |                      	import  javax.swing.*	
 |	                                              |
 |       somme  |__|   points  |__|      	      |				        javax.awt.container	
 |						      |<----- JTextArea	        	javax;swing.JOptionPane
 |	 ______________________                	      |					
 |	|_____jeter le De______| <----- JButton       |
 |____________________________________________________|
utiliser des GUI (Graphical Use Interface)  	

  • /
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.text.NumberFormat; public class Barbotte extends JApplet { private JLabel etiquetteDe1, etiquetteDe2, etiquetteSomme, etiquettePoints, argent, labelargent; private JTextField De1, De2, Somme, Points; private JFormattedTextField debargent; private JButton JetDe, rejoue; private int sommedispo=1000, mise; private boolean premierJet=true; final int GAGNE=0, PERD=1, CONTINUE=2; private int sommeDes=0; private int mesPoints=0; private int etatJeu=CONTINUE; public void init() { do { mise=Integer.parseInt(JOptionPane.showInputDialog("Donnez le montant de votre argent")); } while (mise>sommedispo); Container c= getContentPane(); c.setLayout (new GridLayout(6,2)); //JFormattedTextField debargent=new JFormattedTextField(NumberFormat.getIntegerInstance()); //c.add(debargent); etiquetteDe1= new JLabel("De1"); c.add(etiquetteDe1); De1= new JTextField(10); De1.setEditable(false); c.add(De1); etiquetteDe2= new JLabel("De2"); c.add(etiquetteDe2); De2= new JTextField(10); De2.setEditable(false); c.add(De2); etiquetteSomme= new JLabel("Somme"); c.add(etiquetteSomme); Somme= new JTextField(10); Somme.setEditable(false); c.add(Somme); etiquettePoints= new JLabel("Points"); c.add(etiquettePoints); Points= new JTextField(10); Points.setEditable(false); c.add(Points); JetDe= new JButton ("Jeter les des"); c.add(JetDe); rejoue= new JButton("Rejouer"); c.add(rejoue); rejoue.setEnabled(false); JetDe.addActionListener(new lancer()); argent=new JLabel(sommedispo+"F"); argent.setForeground(Color.RED); c.add(argent); rejoue.addActionListener(new rejouer()); } public void start(){ JOptionPane.showMessageDialog(null,"Bonjour","test", JOptionPane.PLAIN_MESSAGE); } public void stop(){ JOptionPane.showMessageDialog(null,"Bonjour","test", JOptionPane.PLAIN_MESSAGE); } public void destroy(){ JOptionPane.showMessageDialog(null,"Bonjour destroy","test", JOptionPane.PLAIN_MESSAGE); } public int lancerDe() { int de1,de2,sommeget; de1= 1+(int)(Math.random()*6); de2= 1+(int)(Math.random()*6); sommeget= de1+de2; De1.setText(Integer.toString(de1)); De2.setText(Integer.toString(de2)); Somme.setText(Integer.toString(sommeget)); return sommeget; } public void initialiser() { premierJet=true; //final int GAGNE=0, PERD=1, CONTINUE=2; sommeDes=0; mesPoints=0; etatJeu=CONTINUE; } public void test(int restant) { if (restant==0) { showStatus("vous avez ramasse tout un magot c'est le temps de rentrer chez vous"); rejoue.setEnabled(false); JetDe.setEnabled(false); } } class lancer implements ActionListener{ //jeu proprement dit /*private boolean premierJet=true; final int GAGNE=0, PERD=1, CONTINUE=2; private int sommeDes=0; private int mesPoints=0; private int etatJeu=CONTINUE;*/ public void actionPerformed(ActionEvent e){ if (premierJet){ sommeDes=lancerDe(); switch(sommeDes){ case 7: case 11:{ etatJeu=GAGNE; Points.setText(""); //showStatus(" Le joueur gagne"); break;} case 2: case 3: case 12: {etatJeu=PERD; Points.setText(""); //showStatus("Le joueur perd"); break;} default:{ etatJeu=CONTINUE; mesPoints=sommeDes; Points.setText(Integer.toString(mesPoints)); premierJet=false; break;} } } else{ sommeDes=lancerDe(); if (sommeDes==mesPoints) { etatJeu=GAGNE; //showStatus(" Le joueur gagne"); sommedispo+=mise; } else if (sommeDes==7) { etatJeu=PERD;//le joueur perd sommedispo-=mise; } if (etatJeu==CONTINUE) { showStatus("Tirer à nouveau");//aficher ce message sur la barre d'état } else if (etatJeu==GAGNE) { showStatus("Le joueur gagne cliquer jeter les dés pour jouer à nouveau"); argent.setText(sommedispo+"F"); JetDe.setEnabled(false); rejoue.setEnabled(true); } else if (etatJeu==PERD) { showStatus("Le joueur perd cliquer sur rejouer pour jouer à nouveau"); argent.setText(sommedispo+"F"); JetDe.setEnabled(false); rejoue.setEnabled(true); test(sommedispo); } } } } class rejouer implements ActionListener{ public void actionPerformed(ActionEvent e){ initialiser(); De1.setText(""); De2.setText(""); Somme.setText(""); Points.setText(""); JetDe.setEnabled(true); rejoue.setEnabled(false); do { mise=Integer.parseInt(JOptionPane.showInputDialog("Donnez le montant de votre argent")); } while (mise>sommedispo); } } } /*boolean premierJet=true; final int GAGNE=0, PERD=1, CONTINUE=2; int sommeDes=0; int mesPoints=0; int etatJeu=CONTINUE; public void actionPerformed(ActionEvent e) { if (premierJet){ sommeDes=lancerDe(); switch(sommeDes){ case7: case11: etatJeu=GAGNE; point.setText(""); break; case 2: case 3: case 12: etatJeu=PERD; point.setText(""); break; default: etatJeu=CONTINUE; mesPoints=sommeDes; point.setText(Integer.toString(mesPoints)); premierJet=false; break; } } else{ sommeDes=lancerDe(); if (sommeDes==mesPoints) { etatJeu=GAGNE; } else { if (sommeDes==7) { etatJeu=PERD; } } if (etatJeu==CONTINUE) { showStatus("Tirer à nouveau.");//aficher ce message sur la barre d'état } else { if (etatJeu==GAGNE) { "Cliquer jeter les dés pour jouer à nouveau" } else { "Le joueur perd"+" cliquer jeter les des pour jouer à nouveau" } premierJet=true; } }

Conclusion :


à vous de juger les critiques sont les bienvenues ou toutes autres améliorations.

A voir également

Ajouter un commentaire Commentaires
pouyelayese Messages postés 7 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 28 avril 2014
21 janv. 2009 à 00:00
merci au fait je suis débutant. Et c pourquoi il ya toutes ces lacunes que vous voyez. Je connais peu l'API Java. Si vous pouvez amener des améliorations dans le code.
yvkoe Messages postés 32 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 19 janvier 2009
19 janv. 2009 à 11:49
bonjour,
c'est sympa et simple ...j'adore
c'est vrai qu'il y a quelques lourdeurs mais c'est pas très grave.
C'est un jeu qui est déjà sur mon pda.
Merci
dynastart Messages postés 1 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 17 janvier 2009
17 janv. 2009 à 19:50
merci
pouyelayese Messages postés 7 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 28 avril 2014
16 janv. 2009 à 21:49
merci petifa du commentaire. Mais pour les i c'était seulement une question de choix pour moi. j'ai préféré ne pas le mettre en privé car je l'utilise dans presk toutes les lignes du programme. mé pour le boolean, j'ai utilisé des tableaux pour reperer le joueur et lui affecter ces points.
cs_petifa Messages postés 215 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 10 mars 2014
16 janv. 2009 à 12:34
Slt
Globalement, mais prend le pas mal, je trouve que ta source n'est pas très utile. de plus, il y a des choses qui ne vont pas.

tes variable i et point ne sont pas en private, pouquoi ?
# if (i==0)
# {
# voyant.setText("Joueur B joue");
# }
# if (i==1)
# {
# voyant.setText("JoueurA joue");
# }
# if (i==0)
# { i=1;
# }
# else
# { i=0;
# }
ca c'est sale comme code i devrait etre un boolean initialisé à false

# if (i) voyant.setText("JoueurA joue");
# else # voyant.setText("Joueur B joue");
# i = !i;

De même

# if (som==7 || som==11)
# { .... }
# if (som==2 || som==3 || som==12)
# { .... }
# if (som!=7 && som!=11 && som!=2 && som!=3 && som!=12)
# { .... }

remplace par c'est plus simple a lire par la suite.
# if (som==7 || som==11)
# { .... }
# else if (som==2 || som==3 || som==12)
# { .... }
# else
# { .... }

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (pouyelayese)