Aide en programmation JAVA

Résolu/Fermé
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 - 28 févr. 2008 à 13:25
 121084 - 22 juil. 2008 à 10:34
Bonjour,

Voila, je dois rendre un programme pour le 6 mars ( jeudi prochain ) je vous donne le code que j'ai. C'est un black Jack. Est-ce qu'une bonne ame pourrait m'aider a le terminer ...Voici le code

public class BlackJacktab {

//private static int NbScarte = 0;
public static int[] CCouleurS = new int [52];
public static int[] CValeurS = new int [52];
/**
* @param args
*/

public static void main(String[] args) {

// TODO Auto-generated method stub


System.out.print("init du jeu.... un instant...");
Initialisation();
System.out.println("Jeu initialisé...");


Melange();

System.out.println("-------------------");
System.out.println("Jeu melangé:");

System.out.println("-------------------");

AffichageJoueur();


}

public static void Initialisation() {

int x,y,c;
c = 0;
for (y = 0; y < 4; y++) {
for (x = 0; x < 13; x++) {
CValeurS[c] = x + 1;
CCouleurS[c] = y;
c++;
}
}
}


public static void Melange () {

int carte1,carte2, nbMelange, x , tmpC,tmpV;

nbMelange =(int) (Math.random()*500 + 500);

for(x = 1; x <= nbMelange; x++) {
carte1 = (int) (Math.random() * 52);
carte2 = (int) (Math.random() * 52);

tmpV = CValeurS[carte1];
tmpC = CCouleurS[carte1];

CValeurS[carte1] = CValeurS[carte2];
CCouleurS[carte1] = CCouleurS[carte2];

CValeurS[carte2] = tmpV;
CCouleurS[carte2] = tmpC;
}
}

public static void AffichageJoueur () {

int x,e;
for (x = 0; x < 52; x++) {


switch (CValeurS[x]) {
case 1:
System.out.print("as ");
break;
case 11:
System.out.print("Valet ");
break;
case 12:
System.out.print("Dame ");
break;
case 13:
System.out.print("Roi ");
break;
default:
System.out.print(CValeurS[x] + " ");
break;
}
switch (CCouleurS[x]) {
case 0:
System.out.println("de pique");
break;
case 1:
System.out.println("de treffle");
break;
case 2:
System.out.println("de carreau");
break;
case 3:
System.out.println("de coeur");
break;
}
int choix,count,total,joueur,carte,banque,var;
carte=0;
joueur=CValeurS[carte];
System.out.println ("Vous possédez un " +CValeurS[x]+ " de "+ CCouleurS[x]);
x++;
banque=CValeurS[carte];
System.out.println ("La Banque possède un " +CValeurS[x]+ " de "+ CCouleurS[x]);
x++;
System.out.println("Si vous désirez prendre une carte, veuillez tapez 1, sinon tapez 2");
choix = Lire.i();
count=1;
banque = 0;

while ( count==1 ) {

if ( choix==1 ) {

x++;
System.out.println ("Votre nouvelle carte est :" + CValeurS[x]+" de "+ CCouleurS[x]);
joueur = joueur + CValeurS[x];

if (joueur>21){

System.out.println ("Vous avez perdu, votre score est de " + joueur + ". Le banquier gagne la partie");
System.exit(0);

}

if (joueur==21) {

System.out.println ("Bravo, vous avez 21 donc vous gagnez la partie.");
System.exit (0);

}
System.out.println ("Voulez vous une nouvelle carte sachant que votre total est de "+ joueur + " ? (1.Oui/2.Non)");
choix= Lire.i();

}

if ( choix==2 ) {

System.out.println ("Votre total est de : "+ joueur);
System.exit (0);
System.out.println ("Le banquier possède lui :" + banque);

if (banque>joueur) {

System.out.println ("La Banque a gagné car elle a " + banque + " et vous avez " + joueur + ".");
System.exit(0);

}

if (banque<joueur) {

System.out.println ("Vous avez gagné, vous possédez " + joueur + " et la banque " + banque + "." );
System.exit(0);
}

if (banque==joueur) {

System.out.println ("La Banque a gagné car elle à " + banque + " et vous avez aussi, mais la Banque à l'avantage.");
System.exit(0);

}
}
}
}
}
}





Merci de votre aide
A voir également:

20 réponses

DieuEnPersonne
28 févr. 2008 à 13:27
ca set leprojet info pour une ecole ou fac....
t dou?
0
DieuEnPersonne
28 févr. 2008 à 13:28
je taiderai bien mais g pas eclipse sur cet ordi.ca peut attendre une semaine?
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
28 févr. 2008 à 13:32
Oui c'est un projet pour l'école, je le cache pas hein. J'en ai besoin pour jeudi prochain en fait donc le 6 mars. Un peu avant si possible pour que je puisse bien tout comprendre ce que fait chaque opération. Je viens de Bruxelles
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 11:40
Personne?? :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 11:49
salut ... réponse en fin d'aprem ... le temps de voir ... ça te va ?

;o)

polux
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 11:51
Sans probleme, a ton aise

Merci de ton aide
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 14:20
re ...

tu peux me dire à quoi sert :

choix = Lire.i();


...

;o)

polux
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 14:31
La fonction lire est comme permet a l'utilisateur de rentrée des donnée. Donc l'ordinateur enregistre les données que l'utilisateur entre
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 14:34
oui, ça j'ai compris ... mais tu l'as déclaré où cette fonction ?
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 14:36
En fait elle est dans une autre fichier

la voila :

import java.io.*;
public class Lire
{
public static String S() // Lire un String
{
String tmp = "";
char C='\0';
try {
while ((C=(char) System.in.read()) !='\n')
{
if (C != '\r') tmp = tmp+C;

}
}
catch (IOException e)
{
System.out.println("Erreur de frappe");
System.exit(0);
}
return tmp;
} // fin de S()

public static byte b() // Lire un entier byte
{
byte x=0;
try {
x=Byte.parseByte(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static short s() // Lire un entier short
{
short x=0;
try {
x=Short.parseShort(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static int i() // Lire un entier
{
int x=0;
try {
x=Integer.parseInt(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static long l() // Lire un entier long
{
long x=0;
try {
x=Integer.parseInt(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static double d() // Lire un double
{
double x=0.0;
try {
x=Double.valueOf(S()).doubleValue();
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static float f() // Lire un float
{
float x=0.0f;
try {
x=Double.valueOf(S()).floatValue();
}
catch (NumberFormatException e)
{
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static char c() // Lire un caractere
{
String tmp=S();
if (tmp.length()==0)
return '\n';
else
{
return tmp.charAt(0);
}
}
}


FIN CODE
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 14:45
ok ... c'est mieux d'avoir tout

Que veux tu exactement ... ça tourne bien ça ?
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 14:47
Les problemes que j'ai sont les suivant

- Quand la carte 11,12 et 13 sortent elle ne prennent pas la valeur 10 comme dans un blackJack ( valet, reine, roi )
- Et je dois encore faire un systeme que lorsque le joueur a terminé de prendre ses carte, le banquier lui commence a se servir dans le but de battre le joueur ( je sais pas si tu comprends )

C'est tout ce qui me reste a faire mais j'arrive pas :(
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 15:05
voilà ce que j'obtiens juste en enlevant un System.Exit(0) inutile qui fait sortir du prog ... :

if ( choix==2 ) {

System.out.println ("Votre total est de : "+ joueur);
//System.exit (0);
System.out.println ("Le banquier possède lui :" + banque);

if (banque>joueur) {



init du jeu.... un instant...Jeu initialisé...
-------------------
Jeu melangé:
-------------------
8 de pique
Vous possédez un 8 de 0
La Banque possède un 9 de 1
Si vous désirez prendre une carte, veuillez tapez 1, sinon tapez 2
2
Votre total est de : 8
Le banquier possède lui :0
Vous avez gagné, vous possédez 8 et la banque 0.


Fait tourner ton programme pas à pas ... tu vas voir un peu mieux ce qui se passe ... un exemple :

tu fais : banque=CValeurS[carte]; et quelque ligne plus bas : banque = 0;

;o)

polux
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 15:07
Ok

Merci beaucoup. C'est gentil
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 15:12
de rien ... ensuite pour la banque il te faut un petit algo avec des limites que tu fixes pour savoir si elle relance ou arrête ...

;o)
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
1 mars 2008 à 15:13
Justement c'est ca le probleme, :D, mais je trouverais bien ou le placer et comment le faire. Ca me saoule tellement ce programme
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 15:42
tu le places dès que le joueur a fait 2 et le total est inférieur ou égal à 21 ... sinon le joueur a perdu

Tant que le total de la banque est inférieur ou égal au total joueur et inférieur ou égal à 21
je tire une carte pour la banque
Si le total de la baque est égal au total joueur alors égalité
fin si
Si le total de la banque et supérieur au total joueur et inférieur ou égal à 21 alors la banque gagne
sinon le joueur gagne
fin si
fin tant que

voilà en gros comment je le ferais ...

bon courage

;o)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 mars 2008 à 20:14
re

pour le blème du tirage : 11, 12 , 13 ... fait un contrôle avant l'affichage en passant par une fonction. Si le tirage est un 11 ou un 12 ou un 13 alors j'affiche le retour de la fonction.

Pour la fonction tu fais un truc comme ça :

public returnCarte string (myCarte int) {

     if (myCarte == 11) {
           return "Valet";
      }
      if (myCarte== 12) {
           return "Dame";
      }
      if (myCarte == 13) {
           return "Roi";
      }

}


Voilà

;o)

polux
0
shadow3105 Messages postés 35 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 10 septembre 2008 2
6 mars 2008 à 14:39
Salut

Voila je reviens vers vous. J'ai quasi terminer mon programme mais mnt je dois changer une chose , ce que j'arrive pas a faire

public static void AffichageJoueur2()
{
int x = 0;
int joueur = 0;
int banque = 0;
char choix = 'o';


System.out.println("Vous recevez un" + ((CValeurS[x] == 12) ? ("e") : ("")) + " " + NomCarte(CValeurS[x], CCouleurS[x]) + " (" + CPointS[x] + " points)\r\n");

joueur += CPointS[x];

x = x + 1;


System.out.println("La banque recoit un" + ((CValeurS[x] == 12) ? ("e") : ("")) + " " + NomCarte(CValeurS[x], CCouleurS[x]) + " (" + CPointS[x] + " points)\r\n");

banque += CPointS[x];

x = x + 1;
}

public static void Donnage_de_carte()
{

int x = 0;
int joueur = 0;
int banque = 0;
char choix = 'o';
while ((x < 52) &&
((choix == 'o') || (choix == 'O')) &&
(joueur < 21))
{

System.out.print("Vous avez " + joueur + " point(s). Desirez-vous tirer une autre carte ? (O/N) : ");

choix = Lire.c();

if ((choix == 'o') || (choix == 'O'))
{

System.out.println("Vous recevez un" + ((CValeurS[x] == 12) ? ("e") : ("")) + " " + NomCarte(CValeurS[x], CCouleurS[x]) + " (" + CPointS[x] + " points)\r\n");

joueur += CPointS[x];

if (joueur == 21)
{

System.out.println("Felicitations ! Vous avez obtenu 21 points. Vous gagnez la partie.");
}
else
{

if (joueur > 21)
{

System.out.println("Vous avez depasse les 21 points. Vous perdez la partie.");
}
else
{

x = x + 1;
}
}
}
}


if (joueur < 21)
{

while ((banque < joueur) &&
(banque < 21))
{

System.out.println("La banque recois un" + ((CValeurS[x] == 12) ? ("e") : ("")) + " " + NomCarte(CValeurS[x], CCouleurS[x]) + " (" + CPointS[x] + " points)\r\n");

banque += CPointS[x];

x = x + 1;
}

if (banque == 21)
{

System.out.println("La banque a atteint les 21 points. Elle gagne la partie.");
}
else
{

if (banque > 21)
{

System.out.println("La banque a depasse les 21 points. Vous gagnez la partie.");
}

else
{

System.out.println("La banque a plus de points (" + banque + ") que le joueur (" + joueur + "). Elle gagne la partie.");
}
}
}
}
}


FIN CODE


Dans l'affichage joueur, je dois séparer. C-a-d que je dois mettre lorsqu'il donne la premiere carte au banquier et au joueur dans une fonction et la demande de carte dans une autre. J'en ai besoin pour 16h si possible

Merci Merci
0
salut, je veux utiliser le langage de programmation java pour implementer le protocole de la cryptographie appliquee, si vous ne connait pas le deroulement de ce protocole je peut vous envoyer ses etapes, j`espere bien de vous m`aider pour realiser ce travail, et merci pour votre aide.
0