Les apports du bricolage
- Jouer aux cartes et s'amuser
- Compter en s'amusant
- Développer et s'entraîner aux stratégies de jeu
- S'occuper les jours de pluie
- Jouer sur la plage ou à la campagne
Fournitures pour jouer au jeu de brisque:
- Un jeu de 32 cartes
- 2 joueurs
Réalisation du jeu de brisque
Les principes du jeu
- Le jeu de Brisque consiste à se débarrasser de toutes ses cartes en gagnant le plus de points. Certaines cartes peuvent être "mariées" pour donner plus de points. A chaque carte et paire est associé un nombre de points. Le gagnant est celui qui totalise le plus grand nombre de points.
- La valeur des cartes seules est la suivante :
o As = 11 points
o Dix= 10 points
o Roi = 4 points
o Dame = 3 points
o Valet = 2 points
o Autres cartes = 0 point
o Roi et dame de même couleur = 20 points
o Roi et dame d'atouts = 40 points
- Le dernier jeu rapporte 10 points au joueur.
Le déroulement de la partie
- Le donneur distribue aux joueurs 5 cartes, puis 2 cartes et enfin 3 cartes.
- Le donneur retourne la carte suivante à côté du paquet pour indiquer l'atout du jeu.
- Si un joueur détient le 7 d'atout il peut l'échanger contre la carte retournée tant que la pioche n'est pas épuisée.
- L'adversaire du joueur joue une carte qu'il pose devant lui, puis il tire une carte dans la pioche.
- L'autre joueur joue à son tour en posant une carte à côté de la première et tire une carte dans la pioche. Celui qui emporte le "pli" est celui qui pose la plus grosse carte de la couleur initialement demandée. Si le second joueur n'a pas de carte de la couleur demandée il peut poser n'importe quelle carte, mais il perd le "pli".
- La partie continue jusqu'à épuisement de la pioche et des cartes de chaque joueur. Le joueur qui emporte le dernier pli remporte 10 points supplémentaires.
Le décompte des points
- Chacun compte ses points, le gagnant est celui qui obtient le plus de points.
Source / Exemple :
/* deux version sont proposées
Vesion Txt : GameText.java
Version 2D : GameIHM.java
voir zip pour le reste */
package mariage;
/*
* deroulement de la partie
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
/**
* @author SOULEYMANE
* Cette classe permet d'avoir la version graphique du Jeu
*
*/
public class GameIHM extends JFrame implements ActionListener,Game {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
* @uml.property name="joueur"
* @uml.associationEnd multiplicity="(0 -1)"
*/
//le joueur lui meme
private PlayeurIHM playeur;
//l'ordinateur qui est aussi un joueur
private Ordi ordi;
// le tapis ou se deroule le jeu
private Tapis tapis = new Tapis(playeur,ordi,null);
//la barre des menus
private JMenuBar barreMenus ;
//le menu fermer pour fermer la fenettre Jframe
private JMenuItem fermer;
/**
* Constructeur :
* on va initialiser les attributs
* - playeur de type Playeur qui herite de Joueur
* - ordi de type Ordi l'ordinatieur aussi
* -la pile de 32 carte
* -index qui represente ici le nombre de cout que vont jouer lordi et le playeur
* index = 16 carte on a :32 cartes en tout divisées par 2;
*
*/
public GameIHM() {
playeur = new PlayeurIHM(new Main(),"jules",this);
ordi = new Ordi(new Main(),"ORDI",this);
pile = new ArrayList<Carte>();
index =16;
initPile();
battreCarte();
initAtout();
distribuerCarte(playeur);
distribuerCarte(ordi);
playeur.setAvoirMain(true);
ordi.setAvoirMain(false);
tapis.setJoueur(playeur, ordi);
setTitle("Mariage 1.0");
setSize(615,660);
getContentPane().add(tapis);
barreMenus = new JMenuBar();
setJMenuBar(barreMenus);
fermer = new JMenuItem ("Fermer");
barreMenus.add(fermer);
fermer.addActionListener(this);
playeur.setNom((String)JOptionPane.showInputDialog("Votre nom ??"));
addWindowListener(new WindowAdapter() {
// ferme la fenetre
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
);
setVisible(true);
}
/*
* Fermer la fenetre
* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed (ActionEvent ev){
System.exit(0);
}
/**
* @param args
*/
public static void main(String[] args) {
//on cree l'instance GameIHM
GameIHM g=new GameIHM();
//on lace le jeu
g.run();
}
/**
* @uml.property name="atout"
*/
private Carte atout;
/**
* Getter of the property <tt>atout</tt>
* @return Returns the atout.
* @uml.property name="atout"
*/
public Carte getAtout() {
return atout;
}
/**
* Setter of the property <tt>atout</tt>
* @param atout The atout to set.
* @uml.property name="atout"
*/
public void setAtout(Carte atout) {
this.atout = atout;
}
/**
* @uml.property name="pile"
*/
private List<Carte> pile;
/**
* Getter of the property <tt>pile</tt>
* @return Returns the pile.
* @uml.property name="pile"
*/
public List<Carte> getPile() {
return pile;
}
/**
* Setter of the property <tt>pile</tt>
* @param pile The pile to set.
* @uml.property name="pile"
*/
public void setPile(List<Carte> pile) {
this.pile = pile;
}
/**
* @uml.property name="typeCarte" readOnly="true" multiplicity="(0 -1)" dimension="1"
*/
private static final String[] typeCartes={"7","8","9","Valet","Dame","Roi","10","As"};
/**
* Getter of the property <tt>typeCarte</tt>
* @return Returns the typeCartes.
* @uml.property name="typeCarte"
*/
public String[] getTypeCarte() {
return typeCartes;
}
/**
* @uml.property name="player"
*/
private Joueur player;
/**
* Getter of the property <tt>player</tt>
* @return Returns the player.
* @uml.property name="player"
*/
public Joueur getPlayer() {
return player;
}
/**
* Setter of the property <tt>player</tt>
* @param player The player to set.
* @uml.property name="player"
*/
public void setPlayer(Joueur player) {
this.player = player;
}
/**initialisation de la pile
* La valeur des cartes seules est la suivante :
* As = 11 points
* Dix= 10 points
* Roi = 4 points
* Dame = 3 points
* Valet = 2 points
* Autres cartes = 0 point
*/
public void initPile(){
Carte[] quatreCarte = new Carte[4];
for(int i=0 ;i<typeCartes.length;i++){
Carte carreau = new Carte(i,Couleur.Carreau,typeCartes[i]);
Carte coeur = new Carte(i,Couleur.Coeur,typeCartes[i]);
Carte pique = new Carte(i,Couleur.Pique,typeCartes[i]);
Carte trefle = new Carte(i,Couleur.Trefle,typeCartes[i]);
quatreCarte[0]=carreau;
quatreCarte[1]=coeur;
quatreCarte[2]=pique;
quatreCarte[3]=trefle;
//10 vaut 10 points
if (typeCartes[i]=="10"){
for(int j=0;j<quatreCarte.length;j++){
quatreCarte[j].setPoint(10);
}
}
//As vaut 11 points
if (typeCartes[i]=="As"){
for(int j=0;j<quatreCarte.length;j++){
quatreCarte[j].setPoint(11);
}
}
//roi vaut 4
if (typeCartes[i]=="Roi"){
for(int j=0;j<quatreCarte.length;j++){
quatreCarte[j].setPoint(4);
}
}
//Dame vaut 3
if (typeCartes[i]=="Dame"){
for(int j=0;j<quatreCarte.length;j++){
quatreCarte[j].setPoint(3);
}
}
//valet vaut 2
if (typeCartes[i]=="Roi"){
for(int j=0;j<quatreCarte.length;j++){
quatreCarte[j].setPoint(2);
}
}
for(int j=0;j<quatreCarte.length;j++)
pile.add(quatreCarte[j]);
}
//initialise la pile qui sera afficher sur le tapis
tapis.setPile(pile);
}
/**
*/
public void initAtout(){
Random ran = new Random();
atout = pile.get(ran.nextInt(pile.size()));
atout.setAtout(true);
for(int i=0;i<pile.size();i++){
if (pile.get(i).getCouleur().equals(atout.getCouleur()))
pile.get(i).setAtout(true);
}
mettreAtoutEnFinDePile();
}
/**
*/
public void distribuerCarte(Joueur j){
for(int i=0;i<6;i++)
j.getMain().ajouterCarte(pile.remove(i));
}
/**
*/
public void afficherTouteLesCartes(){
for(int i = 0;i<pile.size();i++){
pile.get(i).afficherCarte();
System.out.println(pile.get(i).getValeur());
}
}
/**
*/
public void battreCarte(){
Collections.shuffle(pile);
}
/**
* affiche l'atout du jeu
*/
public void afficherAtout(){
System.out.print("ATOUT ==> ");
atout.afficherCarte();
}
/**
* le joueur pioche une carte
* on prend la premiere carte de la pile et on l'ajoute
*
*/
public void piocherCarte(Joueur j){
if (!pile.isEmpty()){
j.getMain().ajouterCarte(getPile().remove(0));
j.getMain().trierCarte();
}
}
/**
* met l'atout en fin de pile
*/
public void mettreAtoutEnFinDePile(){
Collections.swap(pile, pile.indexOf(atout),pile.size()-1 );
}
/**deroulement du jeu
* l'algo :
* initialise c1 et c2 une carte null;
* tant que index>0 faire
*
*
*
*/
public void run(){
Carte c1=new Carte(0,Couleur.Carreau,"NULLCARTE");
Carte c2=new Carte(0,Couleur.Carreau,"NULLCARTE");
while(index-->0){
System.out.print("ATOUT======>>>");
//atout.afficherCarte();
if (getPile().size()!=0)
System.out.println("Nombre de carte(s) restante(s) dans la pile : "+getPile().size());
else
System.out.println(" Il ya plus de carte dans la pile !! ");
//tapis.affiche();
tapis.affichecarter(atout);
if(playeur.getAvoirMain()){
Carte c = playeur.getMain().getSept();
if ((c!=null)&&(!pile.isEmpty())){
System.out.println(playeur.nom +" a échangé l'atout "+atout.getName()+atout.getCouleur()+" contre le 7 de" +c.getCouleur());
JOptionPane.showMessageDialog(tapis, playeur.nom +" a échangé l'atout "+atout.getName()+atout.getCouleur()+" contre le 7 de" +c.getCouleur(), "Attention", 2);
playeur.echangeSept();
tapis.affichecarter(atout);
getTapis().repaint();
}
c1 = playeur.jouerUnCarte(new Carte(0,Couleur.Carreau,"NULLCARTE"));
tapis.afficheJoue(c1, 1);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
c2 = ordi.jouerUnCarte(c1);
tapis.afficheJoue(c2, 0);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
tapis.efface();
}
if (ordi.avoirMain){
Carte c = ordi.getMain().getSept();
if ((c!=null)&&(!pile.isEmpty())){
System.out.println(ordi.nom +" va échanger l'atout "+atout.getName()+atout.getCouleur()+" contre son 7 de" +c.getCouleur());
JOptionPane.showMessageDialog(tapis, ordi.nom +" va échanger l'atout "+atout.getName()+atout.getCouleur()+" contre son 7 de" +c.getCouleur(), "Attention", 2);
ordi.echangeSept();
getTapis().repaint();
tapis.affichecarter(atout);
}
try {
Thread.sleep(1000);
} catch (Exception e) {
}
c2 = ordi.jouerUnCarte(new Carte(0,Couleur.Carreau,"NULLCARTE"));
tapis.afficheJoue(c2, 0);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
c1 = playeur.jouerUnCarte(c2);
tapis.afficheJoue(c1, 1);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
tapis.efface();
}
if (c1.isSup(c2)){
playeur.getCartesObtenues().add(c1);
playeur.getCartesObtenues().add(c2);
playeur.marquerPoint(c1.getPoint()+c2.getPoint());
piocherCarte(playeur);
piocherCarte(ordi);
System.out.println("le joueur qui bat sur ce cout est : "+playeur.nom);
System.out.println("c'est à "+playeur.nom+" de jouer");
playeur.setAvoirMain(true);
ordi.setAvoirMain(false);
}else
{
ordi.getCartesObtenues().add(c1);
ordi.getCartesObtenues().add(c2);
ordi.marquerPoint(c1.getPoint()+c2.getPoint());
piocherCarte(ordi);
piocherCarte(playeur);
System.out.println("le joueur qui bat sur ce cout est : "+ordi.nom);
System.out.println("c'est à "+ordi.nom+" de jouer");
ordi.setAvoirMain(true);
playeur.setAvoirMain(false);
}
getTapis().repaint();
}
if (c1.isSup(c2)){
playeur.marquerPoint(10);
}
else ordi.marquerPoint(10);
System.out.println("++++++ PARTIE TERMINEE +++++++");
JOptionPane.showMessageDialog(this, "PARTIE TERMINE :\n"+playeur.getNom()+" : "+playeur.getScore()+"\n"+ordi.getNom()+" : "+ordi.getScore(), "SCORE", 2);
System.out.println("SCORE");
System.out.println(playeur.getNom()+" : "+playeur.getScore());
System.out.println(ordi.getNom()+" : "+ordi.getScore());
if (playeur.getScore()>ordi.getScore()){
System.out.println("le GAGNANT DE CETTE PARTIE EST : "+playeur.getNom());
JOptionPane.showMessageDialog(this, "le GAGNANT DE CETTE PARTIE EST : "+playeur.getNom() , "bravo !!!", 2);
}
else if (playeur.getScore()<ordi.getScore()){
System.out.println("le GAGNANT DE CETTE PARTIE EST : "+ordi.getNom());
JOptionPane.showMessageDialog(this, "le GAGNANT DE CETTE PARTIE EST : "+ordi.getNom() , "bravo !!!", 2);
}
else {
System.out.println("EGALITE DE SCORE !!!");
JOptionPane.showMessageDialog(this, "EGALITE DE SCORE !!! " , "Gagant", 2);
}
rejouer();
}
public void rejouer(){
if (JOptionPane.showConfirmDialog(tapis, "Voulez-vous rejouer ?","Rejouer",JOptionPane.YES_NO_OPTION) == 0){
initPile();
battreCarte();
initAtout();
distribuerCarte(playeur);
distribuerCarte(ordi);
tapis.setJoueur(playeur, ordi);
setTapis(tapis);
index=16;
playeur.setCartesObtenues(new ArrayList<Carte>());
ordi.setCartesObtenues(new ArrayList<Carte>());
run();
}
}
/**
* @uml.property name="index"
*/
private int index;
/**
* Getter of the property <tt>index</tt>
* @return Returns the index.
* @uml.property name="index"
*/
public int getIndex() {
return index;
}
/**
* Setter of the property <tt>index</tt>
* @param index The index to set.
* @uml.property name="index"
*/
public void setIndex(int index) {
this.index = index;
}
public Tapis getTapis() {
// TODO Auto-generated method stub
return tapis;
}
public void run(Joueur j, Joueur o) {
// TODO Auto-generated method stub
}
/**
* @return the ordi
*/
public Ordi getOrdi() {
return ordi;
}
/**
* @param ordi the ordi to set
*/
public void setOrdi(Ordi ordi) {
this.ordi = ordi;
}
/**
* @return the playeur
*/
public PlayeurIHM getPlayeur() {
return playeur;
}
/**
* @param playeur the playeur to set
*/
public void setPlayeur(PlayeurIHM playeur) {
this.playeur = playeur;
}
/**
* @param tapis the tapis to set
*/
public void setTapis(Tapis tapis) {
this.tapis = tapis;
}
}
Conclusion :
il autre autre version est cours pour corriger certains bugs.
les point obtenus lors d'un Mariages (Roi Dame)ne sont pas pris en compte.
Bon jeux !
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.