Aide en programmation JAVA
Résolu
shadow3105
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
121084 -
121084 -
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
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:
- Aide en programmation JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
20 réponses
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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 :(
- 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 :(
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
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
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)
;o)
Justement c'est ca le probleme, :D, mais je trouverais bien ou le placer et comment le faire. Ca me saoule tellement ce programme
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)
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)
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 :
Voilà
;o)
polux
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
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
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