Accueil > > > JEU " TAUREAU,VACHE"
JEU " TAUREAU,VACHE"
Information sur la source
Description
Ce code est un jeu appelé "Taureau,Vache" Ce jeu j'avait l'habitude de le jouer avec des amis mais avec des papiers et stylos mais j'ai voulu le creer un code qui simule cet jeu. But du jeu : Determiner un code secret choisit arbitrairement par le programme
Source
- package MyProject;
-
- import javax.swing.UIManager;
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- // classe qui crée une fenetre affichant de l'aide au joueur
- class info extends JFrame
- {
- private static final long serialVersionUID = 1L;// eliminer le warninig de serial version
- // Constructeur de la classe
- info()
- {
- String s="Ce jeu interactive est elaboree par\n F.Amine,etudiant en 3eme Annee ";
- s=s+"Maitrise informatique.\n Comment Jouer :\n1- Il faut d'abord cliquer sur le bouton Start";
- s=s+" puis dans le champs de saisie voud devez taper un nombre de 4 chiffres distinctes.\n2- Apres que tu saisie votre proposition ";
- s=s+"vous pouvez continuer en cliquant sur le bouton Retablir ";
- s=s+".\nSi vous voulez rejouer sans avoir la bonne solution il faut cliquer sur Stop puis Start .\n";
- s=s+"Si vous decidez de sortir du doit cliquer sur Exit .\n3- Si tu trouve le code secret tu ";
- s=s+"peut rejouer ou bien sortir.";
- JTextArea inf=new JTextArea(s);
- this.getContentPane().add(inf);
- this.setLocation(250,250);
- this.pack();
- }
- }
- // la classe qui contient tous le traitement du jeu
- class JeuTV extends JFrame implements ActionListener
- {
- private static final long serialVersionUID = 1L;
- // Declaration et initialisation des boutons
- JButton bInfo=new JButton("Info");
- JButton bStart=new JButton("Start");
- JButton bStop=new JButton("Stop");
- JButton bExit=new JButton("Exit");
- JButton bRetab=new JButton("Rtablir");
- JButton bTest=new JButton("Tester le nombre");
- // Declaration et initialisation des JTextField et JTextArea
- JTextField essaie=new JTextField();
- JTextArea histo=new JTextArea(" Bonne Chance \n",20,30); // servira pour afficher l'historique
- JScrollPane scroll=new JScrollPane(histo);
- JLabel res=new JLabel();// affichage du resultat de la tentative
- JLabel nbrTent=new JLabel();// nombre de tentative
- int code=0;// variable qui contiendra le code à chercher
- int nbr_chiffre=0,NbrEssaie=0;
- // Constructeur
- JeuTV()
- {
- super("Jeu Devinette Made by AMF");
- // intialiser le theme de l'application par celui du systeme
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- }
- catch(Exception e) {
- e.printStackTrace();
- }
-
- essaie.setMaximumSize(new Dimension(10,20));essaie.setEnabled(false);
- JLabel lTitle=new JLabel("Tester Votre Intelligence");
- JLabel lInvite=new JLabel("Tapez Votre Essaie 4 chiffres differents :");
- JLabel lRes=new JLabel("Votre Nombre est :");
- JLabel nbrEss=new JLabel("==> Le nombre d'essaie est :");
- JPanel menu =new JPanel();menu.setLayout(new GridLayout(1,4,10,10));
- bInfo.addActionListener(this);bStart.addActionListener(this);
- bStop.addActionListener(this);bExit.addActionListener(this);
- bRetab.addActionListener(this);bTest.addActionListener(this);
- bStop.setEnabled(false);bRetab.setEnabled(false);bTest.setEnabled(false);
- menu.add(bInfo);menu.add(bStart);menu.add(bStop);menu.add(bExit);
- JPanel p1 =new JPanel();JPanel p2 =new JPanel();JPanel p3 =new JPanel();
- JPanel p4 =new JPanel();JPanel p5 =new JPanel();p1.add(lTitle);
- p2.setLayout(new GridLayout(1,2,10,20));p2.add(lInvite);p2.add(essaie);
- p3.setLayout(new GridLayout(1,2,20,20));p3.add(bRetab);p3.add(bTest);
- p4.setLayout(new GridLayout(1,2,20,20));p4.add(lRes);p4.add(res);
- p5.setLayout(new GridLayout(1,2,20,20));p5.add(nbrEss);p5.add(nbrTent);
- JPanel p6=new JPanel(new FlowLayout(FlowLayout.CENTER));p6.add(scroll);
- this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
- this.getContentPane().add(menu);this.getContentPane().add(p1);
- this.getContentPane().add(p2);this.getContentPane().add(p3);
- this.getContentPane().add(p4);this.getContentPane().add(p5);
- this.getContentPane().add(p6);
- setLocation(200,100);
- this.setSize(450,400);
- setVisible(true);
- }
- // Méthode pour construire le code à chercher
- void ConstructionCode()
- {
- int n=10;
- int []numbers={0,1,2,3,4,5,6,7,8,9};
- while(nbr_chiffre<4)
- {
- int var=(int)(Math.random()*n);// choisir par hasard un entier = rang de l'entier à tirer du tableau
- code=(code*10)+numbers[var];// construire le code
- numbers[var]=numbers[n-1];// remplacer l'entier choisit par le dernier entier dans le tableau
- n--;// diminuer n(taille du tableau)
- nbr_chiffre++;
- }// repeter le processus jusqua avoir 4 chiffres diffrents
- }
- // Méthode pour tester le code saisie par l'utilisateur
- int Test(int code,int p)
- {
- int x=code;
- int t=0;
- int v=0;
- int i=3,j=3;
- while(i>=0&&j>=0)
- {
- int prop=p;
- while(j>=0)
- {
- int divp=prop/(int)Math.pow(10,j);// extraire les entier en commencant par le gauche,
- // un par un
- int divc=x/(int)Math.pow(10,i);// la meme chose mais sur le code secret
- if(divp==divc)// tester s'il y a égalité de 2 entiers
- {
- if(i==j)// tester s'ils ont le meme rang ou emplacement dans le code
- t++;
- else
- v++;
- break;
- }
- prop=prop%(int)(Math.pow(10,j));// prendre les 3 derniers chiffres du code saisie par
- // le user
- j--;// diminuer le nombre de boucle
- }
- j=3;// reinitialiser j à 3 pour retester le code saisie par le user(complet)par
- x=x%(int)(Math.pow(10,i));// le code secret incomplet du premier chiffre.
- i--;
- }
- return((t*10)+v);// retourner un entier indiquant le nombre de T et de V
- }
- // Méthode pour tester la validité du code saisie avant de le comparer avec le code secret"CS"
- boolean estValide(int prop)
- {
- int [] tab=new int[4];
- int p=prop;
- boolean trouve=false;
- if(p<123)
- trouve=true;
- for(int i=3;i>=0;i--)
- {
- tab[i]=p/(int)(Math.pow(10,i));
- p=p%(int)(Math.pow(10,i));
- }
- int j=0;
- int var=tab[j];
- while(!trouve&&j<3)
- {
- for(int i=j+1;i<4;i++)
- {
- if(var==tab[i])
- {trouve=true;
- break;}
- }
- j++;
- var=tab[j];
- }
- if (!trouve)
- return true;
- else return false;
- }
- // inplementer la méthode actionPerformed
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==bInfo)
- {
- info i=new info();
- i.setVisible(true);
- }
- else if(e.getSource()==bExit)
- {dispose();}
- else if(e.getSource()==bStart){bStart.setEnabled(false);
- bStop.setEnabled(true);bRetab.setEnabled(true);bTest.setEnabled(true);
- essaie.setEnabled(true);ConstructionCode();}
- else if(e.getSource()==bStop){bStop.setEnabled(false);bStart.setEnabled(true);
- bRetab.setEnabled(false);bTest.setEnabled(false);essaie.setEnabled(false);
- code=0;NbrEssaie=0;nbr_chiffre=0;essaie.setText("");res.setText("");nbrTent.setText("");}
- else if(e.getSource()==bRetab){essaie.setText("");}
- else if(e.getSource()==bTest)
- {
- if(!estValide(Integer.parseInt(essaie.getText()))) res.setText("Erreur ,repetition des chiffres");
- else
- {
- if((Test(code,Integer.parseInt(essaie.getText()))/10)<4)
- {
- res.setText(""+Test(code,Integer.parseInt(essaie.getText()))/10+" T "+Test(code,Integer.parseInt(essaie.getText()))%10+" V ");
- histo.append(essaie.getText()+" : "+res.getText()+"\n");}
- else{res.setText("BRAVO, Tu a reussi a trouver le code");
- bStart.setEnabled(true);bStop.setEnabled(false);bRetab.setEnabled(false);
- bTest.setEnabled(false);essaie.setEnabled(false);essaie.setText("");}
- NbrEssaie++;
- nbrTent.setText(""+NbrEssaie);}
- }
- }
- // Méthode main
- public static void main(String[]args)
- {
- JeuTV jtv=new JeuTV();
- }
- }
package MyProject;
import javax.swing.UIManager;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
// classe qui crée une fenetre affichant de l'aide au joueur
class info extends JFrame
{
private static final long serialVersionUID = 1L;// eliminer le warninig de serial version
// Constructeur de la classe
info()
{
String s="Ce jeu interactive est elaboree par\n F.Amine,etudiant en 3eme Annee ";
s=s+"Maitrise informatique.\n Comment Jouer :\n1- Il faut d'abord cliquer sur le bouton Start";
s=s+" puis dans le champs de saisie voud devez taper un nombre de 4 chiffres distinctes.\n2- Apres que tu saisie votre proposition ";
s=s+"vous pouvez continuer en cliquant sur le bouton Retablir ";
s=s+".\nSi vous voulez rejouer sans avoir la bonne solution il faut cliquer sur Stop puis Start .\n";
s=s+"Si vous decidez de sortir du doit cliquer sur Exit .\n3- Si tu trouve le code secret tu ";
s=s+"peut rejouer ou bien sortir.";
JTextArea inf=new JTextArea(s);
this.getContentPane().add(inf);
this.setLocation(250,250);
this.pack();
}
}
// la classe qui contient tous le traitement du jeu
class JeuTV extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
// Declaration et initialisation des boutons
JButton bInfo=new JButton("Info");
JButton bStart=new JButton("Start");
JButton bStop=new JButton("Stop");
JButton bExit=new JButton("Exit");
JButton bRetab=new JButton("Rtablir");
JButton bTest=new JButton("Tester le nombre");
// Declaration et initialisation des JTextField et JTextArea
JTextField essaie=new JTextField();
JTextArea histo=new JTextArea(" Bonne Chance \n",20,30); // servira pour afficher l'historique
JScrollPane scroll=new JScrollPane(histo);
JLabel res=new JLabel();// affichage du resultat de la tentative
JLabel nbrTent=new JLabel();// nombre de tentative
int code=0;// variable qui contiendra le code à chercher
int nbr_chiffre=0,NbrEssaie=0;
// Constructeur
JeuTV()
{
super("Jeu Devinette Made by AMF");
// intialiser le theme de l'application par celui du systeme
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
essaie.setMaximumSize(new Dimension(10,20));essaie.setEnabled(false);
JLabel lTitle=new JLabel("Tester Votre Intelligence");
JLabel lInvite=new JLabel("Tapez Votre Essaie 4 chiffres differents :");
JLabel lRes=new JLabel("Votre Nombre est :");
JLabel nbrEss=new JLabel("==> Le nombre d'essaie est :");
JPanel menu =new JPanel();menu.setLayout(new GridLayout(1,4,10,10));
bInfo.addActionListener(this);bStart.addActionListener(this);
bStop.addActionListener(this);bExit.addActionListener(this);
bRetab.addActionListener(this);bTest.addActionListener(this);
bStop.setEnabled(false);bRetab.setEnabled(false);bTest.setEnabled(false);
menu.add(bInfo);menu.add(bStart);menu.add(bStop);menu.add(bExit);
JPanel p1 =new JPanel();JPanel p2 =new JPanel();JPanel p3 =new JPanel();
JPanel p4 =new JPanel();JPanel p5 =new JPanel();p1.add(lTitle);
p2.setLayout(new GridLayout(1,2,10,20));p2.add(lInvite);p2.add(essaie);
p3.setLayout(new GridLayout(1,2,20,20));p3.add(bRetab);p3.add(bTest);
p4.setLayout(new GridLayout(1,2,20,20));p4.add(lRes);p4.add(res);
p5.setLayout(new GridLayout(1,2,20,20));p5.add(nbrEss);p5.add(nbrTent);
JPanel p6=new JPanel(new FlowLayout(FlowLayout.CENTER));p6.add(scroll);
this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
this.getContentPane().add(menu);this.getContentPane().add(p1);
this.getContentPane().add(p2);this.getContentPane().add(p3);
this.getContentPane().add(p4);this.getContentPane().add(p5);
this.getContentPane().add(p6);
setLocation(200,100);
this.setSize(450,400);
setVisible(true);
}
// Méthode pour construire le code à chercher
void ConstructionCode()
{
int n=10;
int []numbers={0,1,2,3,4,5,6,7,8,9};
while(nbr_chiffre<4)
{
int var=(int)(Math.random()*n);// choisir par hasard un entier = rang de l'entier à tirer du tableau
code=(code*10)+numbers[var];// construire le code
numbers[var]=numbers[n-1];// remplacer l'entier choisit par le dernier entier dans le tableau
n--;// diminuer n(taille du tableau)
nbr_chiffre++;
}// repeter le processus jusqua avoir 4 chiffres diffrents
}
// Méthode pour tester le code saisie par l'utilisateur
int Test(int code,int p)
{
int x=code;
int t=0;
int v=0;
int i=3,j=3;
while(i>=0&&j>=0)
{
int prop=p;
while(j>=0)
{
int divp=prop/(int)Math.pow(10,j);// extraire les entier en commencant par le gauche,
// un par un
int divc=x/(int)Math.pow(10,i);// la meme chose mais sur le code secret
if(divp==divc)// tester s'il y a égalité de 2 entiers
{
if(i==j)// tester s'ils ont le meme rang ou emplacement dans le code
t++;
else
v++;
break;
}
prop=prop%(int)(Math.pow(10,j));// prendre les 3 derniers chiffres du code saisie par
// le user
j--;// diminuer le nombre de boucle
}
j=3;// reinitialiser j à 3 pour retester le code saisie par le user(complet)par
x=x%(int)(Math.pow(10,i));// le code secret incomplet du premier chiffre.
i--;
}
return((t*10)+v);// retourner un entier indiquant le nombre de T et de V
}
// Méthode pour tester la validité du code saisie avant de le comparer avec le code secret"CS"
boolean estValide(int prop)
{
int [] tab=new int[4];
int p=prop;
boolean trouve=false;
if(p<123)
trouve=true;
for(int i=3;i>=0;i--)
{
tab[i]=p/(int)(Math.pow(10,i));
p=p%(int)(Math.pow(10,i));
}
int j=0;
int var=tab[j];
while(!trouve&&j<3)
{
for(int i=j+1;i<4;i++)
{
if(var==tab[i])
{trouve=true;
break;}
}
j++;
var=tab[j];
}
if (!trouve)
return true;
else return false;
}
// inplementer la méthode actionPerformed
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bInfo)
{
info i=new info();
i.setVisible(true);
}
else if(e.getSource()==bExit)
{dispose();}
else if(e.getSource()==bStart){bStart.setEnabled(false);
bStop.setEnabled(true);bRetab.setEnabled(true);bTest.setEnabled(true);
essaie.setEnabled(true);ConstructionCode();}
else if(e.getSource()==bStop){bStop.setEnabled(false);bStart.setEnabled(true);
bRetab.setEnabled(false);bTest.setEnabled(false);essaie.setEnabled(false);
code=0;NbrEssaie=0;nbr_chiffre=0;essaie.setText("");res.setText("");nbrTent.setText("");}
else if(e.getSource()==bRetab){essaie.setText("");}
else if(e.getSource()==bTest)
{
if(!estValide(Integer.parseInt(essaie.getText()))) res.setText("Erreur ,repetition des chiffres");
else
{
if((Test(code,Integer.parseInt(essaie.getText()))/10)<4)
{
res.setText(""+Test(code,Integer.parseInt(essaie.getText()))/10+" T "+Test(code,Integer.parseInt(essaie.getText()))%10+" V ");
histo.append(essaie.getText()+" : "+res.getText()+"\n");}
else{res.setText("BRAVO, Tu a reussi a trouver le code");
bStart.setEnabled(true);bStop.setEnabled(false);bRetab.setEnabled(false);
bTest.setEnabled(false);essaie.setEnabled(false);essaie.setText("");}
NbrEssaie++;
nbrTent.setText(""+NbrEssaie);}
}
}
// Méthode main
public static void main(String[]args)
{
JeuTV jtv=new JeuTV();
}
}
Conclusion
But du jeu : Determiner un code secret choisit arbitrairement par le programme Principes : 1- le code saisie doit etre composé de 4 chiffres différents cmme le code secret "CS" 2- S'il y a n chiffres du code saisie qui existent dans "CS" et ayant le meme rang que celles dans le "CS" l'app affichera n T 3- S'il y a m chiffres du code saisie qui existent dans "CS" et n'ayant pas le meme rang que celles dans le "CS" l'app affichera n v 4- Si les 2 cas existent l'application affichera nT mV 5- Sinon vous auriez 0T 0V 6- Pour commencer le jeu il faut cliquer sur Start et le champ de saisie du code sera actif. 7- si tu trouve le "CS" un message de félécitation sera affiché et tout les boutons et les champs de saisies eront inactif à l'exception du bouton Start. 8- Au cour de jeu vous pouvez recommencez le jeu en cliquant sur retablir et un nouveau "CS" sera construit. 9- Pour tester le code saisie cliquer sur "Tester le nombre". RQ : un historique affiche tous les tentatives peut vous aider...
Merci pour les constructeur du site javafr.com pour offrire l'occasion d'échanger les expérience et les codes sources. Merci d'avance aussi à qui participe à amiliorer ce code.
A un autre codeSource....
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
cherche sources en java jeu dames 2 joueurs [ par Aladdinleouf ]
Bonjour,je dois réaliser un jeu de dames en java pour 2 joueurs (sans IA) ...je sais que cela n'a sans doute rien de difficile pour vous, mais c carém
sources java jeu dames 2 joueurs humains [ par Aladdinleouf ]
Bonjour,je dois réaliser un jeu de dames en java pour 2 joueurs (sans IA) ...je sais que cela n'a sans doute rien de difficile pour vous, mais c carém
Jeu de dames sur java [ par Poilocu ]
Bonjour,J'aimerais savoir s'il existe des programmes java sur le jeu de dames.Merci d'avance.
Urgent, Recherche un programmeur pour un jeu multijoueur [ par milocco ]
Bonjour, j'ai developper un jeu de petanque en flash multijoueurs (http://www.petanque52.com). le server multijoueur est en java, un socket server XML
Convertir un swf en java [ par sphynx27 ]
Est ce que quelqu'un peut me dire si l'on peut convertir un jeu .swf en jeu java?merci beaucoup.
jeux java nokia [ par m4oo ]
bonjour les garsvoila je suis infographiste et j'ai un rêvecréer un jeu pour telephone portable nokiaje sais exactement comment sera le jeuj'ai design
jeux java nokia [ par m4oo ]
bonjour les garsvoila je suis infographiste et j'ai un rêvecréer un jeu pour telephone portable nokiaje sais exactement comment sera le jeuj'ai design
recherche d'un jeu simple en java [ par ponchovilla ]
bonjour,je dois réaliser comme projet un jeux en java qui pourra etre jouer en réseaux (genre un jeux de cartes) qui se joue à plusieurs (à 2, c'est d
communication Servlet / Appli client en Swing java [ par devj ]
Bonjour je ne sais pas comment depuis un bouton de mon appli (java Swing) appeller une Servlet qui doit récupérer des parametreset redonner un résulta
Jeu java sur mobil [ par Zugmegui ]
Bonjours rous le monde ! Quelqu'un peut me renseigner sur les specs techniques pour developper des appli java pour les téléphones mobiles ?Pourquoi ce
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
RE : CODE GéNéRé RE : CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys RE : CODE GéNéRé RE : CODE GéNéRé par Julien39
Cliquez pour lire la suite par Julien39 CODE GéNéRé CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|