Current build
Code
/****************************
*Mau Mau, jeu de carte en java.
*Auteur: Apos
*Version: fini.
*Description: Jeu de carte basé en texte suivant les règles du jeu Mau Mau.
*URL(s): http://en.wikipedia.org/wiki/Mau_Mau_(card_game)
****************************/
import java.util.*;
import java.io.*;
class mau
{
public static void main(String[] args) throws IOException
{
String[][] deck = {
{"Coeur", "Pique", "Carreau", "Trefle"},
{"As de ", "2 de ", "3 de ", "4 de ", "5 de ", "6 de ", "7 de ", "8 de ", "9 de ", "10 de ", "Valet de ", "Reine de ", "Roi de "}};
int a = 0;
int b = 0;
int c = 0;
String[] paquet = new String[52];
String[] jette = new String[52];
String[] remake = new String[52];
String[] main1 = new String[52];
String[] main2 = new String[52];
BufferedReader stdin = new BufferedReader ( new InputStreamReader( System.in ) );
String input1;
int input2 = 0;
int state = 0; //Les differents cards du jeu. (0) = préparer les cartes. (1) = préparer les mains. (2) = Tour du joueur 1. (3) = Tour du joueur 2. (4) = Remélanger les cartes jetté et les remmetre en jeu. (5) = FinalReference du jeu.
int refaire1 = 0; //Des cartes doivent être ajouté dans la main du joueur 1.
int refaire2 = 0; //Des cartes doivent être ajouté dans la main du joueur 2.
int ajouter1 = 0; //Nombre de cartes à ajouter dans la main du joueur 1.
int ajouter2 = 0; //Nombre de cartes à ajouter dans la main du joueur 2.
int tourner = 0; //Switch indiquant qu'il faut ajouter une nouvelle carte sur le dessus du paquet. (1) = carte du paquet (Arrive au début du jeu.). (2) Carte dans la main du joueur 1. (3) Carte dans la main du joueur 2.
int counter = 0; //Pour compter le nombre de carte qui ont été sorti du paquet.
String[] card;
String[] cardjette;
String delimiter = " "; //Pas utilisé avec la nouvelle version.
while (state != 5)
{
while (state ==0) //Préparation du jeu, faire les cartes et les mélanger.
{
for (int i = 1; i <= 13; i++)
{
for (int j = 0; j<=3; j++)
{
paquet[a] = (deck[1][i-1] + deck[0][j]);
//System.out.println(paquet[a]); //Pour montrer que le paquet à bien été créé.
a++;
}
}
a = 0;
//List<String> mix = new ArrayList<String>();
//for (int i = 0; i<=52; i++)
//{
// mix.add (paquet[i]);
//}
List<String> mix = Arrays.asList(paquet); // Si les commentaires si dessus sont réactivé, masquer cette ligne.
Collections.shuffle(mix); //Mélanger les cartes.
Collections.shuffle(mix); //Mélanger les cartes une deuxième fois pour augmenter les possibilitiées.
//System.out.println(mix); //Pour comparer les résultat de mix et paquet. (Les deux étaient pareil comme voulu.)
//System.out.println(paquet[3]);
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes après avoir été bien mélangé.
}*/
state = 1;
}
//System.out.println(a + " " + jette[a + 1]);
while (state == 1) //Préparation des mains des joueurs.
{
ajouter1 = 5; //Nombre de cartes à donner au joueur 1.
ajouter2 = 5; //Nombre de cartes à donner au joueur 1.
refaire1 = 1; //Refaire est seulement une switch, 1 = on, 0 = off.
refaire2 = 1; //Refaire est seulement une switch, 1 = on, 0 = off.
tourner = 1; //tourner est seulement une switch, 1 = on, 0 = off.
state = 2; //(2) = Tour du joueur 1.
}
while (refaire1 == 1 && ajouter1 != 0) //Quand des cartes sont enlevé du paquet par le joueur 1.
{
//System.out.println("\nMain du joueur 1\n");
for (int i = 0; i <= ajouter1 - 1; i++)
{
if (main1[i + c] == null)
{
main1[i + c] = paquet[i];
//System.out.println(i+1 + ". \t" + main1[i]); //Montrer les cartes du joueur 1.
counter++;
for (int j = 0; j <= ajouter1 - 1 && i == ajouter1 - 1; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (i == ajouter1 - 1 && 52 - ajouter1 != 52 && b + 51 - ajouter1 <= 50)
{
//System.out.println("null " + b);
paquet[b + 52 - ajouter1] = null;
b++;
}
/*for (int j = b; j == 51 - ajouter1 && ajouter1 != 52; j++)
{
paquet[b] = paquet[b + ajouter1];
paquet[b + ajouter1] = null;
System.out.println("Done");
}*/
}
else
{
c++;
i--;
}
}
//System.out.println(b);
ajouter1 = 0;
refaire1 = 0;
b = 0;
c = 0;
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("Done");
//state = 2;
}
while (refaire2 == 1 && ajouter2 != 0) //Quand des cartes sont enlevé du paquet par le joueur 2.
{
//System.out.println("\nMain du joueur 2\n");
for (int i = 0; i <= ajouter2 - 1; i++)
{
if (main2[i + c] == null)
{
main2[i + c] = paquet[i];
//System.out.println(i+1 + ". \t" + main2[i]); //Montrer les cartes du joueur 2.
counter++;
for (int j = 0; j <= ajouter2 - 1 && i == ajouter2 - 1; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (i == ajouter2 - 1 && 52 - ajouter2 != 52 && b + 51 - ajouter2 <= 50)
{
//System.out.println("null " + b);
paquet[b + 52 - ajouter2] = null;
b++;
}
/*for (int j = b; j == 51 - ajouter2 && ajouter2 != 52; j++)
{
paquet[b] = paquet[b + ajouter2];
paquet[b + ajouter2] = null;
System.out.println("Done");
}*/
}
else
{
c++;
i--;
}
}
//System.out.println(b);
ajouter2 = 0;
refaire2 = 0;
b = 0;
c = 0;
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("Done");
//state = 2;
}
while (tourner == 1) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 2; i--) //Bouge les cartes vers le bas avant de mentre la carte sur le dessus de la fosse.
{
jette[i] = jette[i-1];
}
jette[0] = paquet[0];
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
paquet[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
counter++;
}
while (tourner == 2) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 1; i--)
{
jette[i] = jette[i-1];
}
jette[0] = main1[input2 - 1];
main1[input2 - 1] = null;
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = input2 - 1; k <= 50 - input2; k++)
{
main1[k] = main1[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
main1[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
input2 = 0;
//state = 2; //Pour tester seulement.
/*System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
System.out.println("\nMain du joueur 1\n");
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}*/
}
while (tourner == 3) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 1; i--)
{
jette[i] = jette[i-1];
}
jette[0] = main2[input2 - 1];
main2[input2 - 1] = null;
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = input2 - 1; k <= 50 - input2; k++)
{
main2[k] = main2[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
main2[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
input2 = 0;
//state = 2; //Pour tester seulement.
/*System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
System.out.println("\nMain du joueur 1\n");
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}*/
}
if (paquet[0] == null && refaire1 != 1 && refaire2 != 1) //Pour remettre des cartes dans le paquet quand il n'y en a plus. Il y a une erreure à quelque part.
{
while (a != 50) //Copie toute les cartes en dessous de celle sur le haut de la pille vers le paquet temporaire qui va être mélangé.
{
if (jette[a + 1] != null && a != 50)
{
remake[a] = jette[a + 1];
jette[a + 1] = null;
a++;
//System.out.println("a++");
}
else
{
a++;
}
}
a = 0;
b = 0;
c = 0;
List<String> mix = Arrays.asList(remake);
Collections.shuffle(mix);
Collections.shuffle(mix);
//System.out.println(" ");
/*for (int i = 0; i<=51; i++)
{
System.out.println(remake[i]); //Pour montrer que les cartes ont bien été copié et mélangé.
}*/
//System.out.println(" ");
for (int i = 0; i < 51; i++)
{
if (remake[i] == null)
{
for (int j = i; j < 52; j++)
{
if (remake[j] != null)
{
remake[i] = remake[j];
remake[j] = null;
i++;
j = i;
}
}
}
}
/*for (int i = 0; i<=51; i++)
{
//System.out.println(remake[i]); //Pour montrer que les nulls sont bien en bas et les cartes en haut.
}*/
System.out.println(" ");
while (c != 51 && remake[c] != null)
{
paquet[c] = remake[c];
remake[c] = null;
c++;
//System.out.println("c++");
}
System.out.println("Paquet reset");
for (int i = 0; i<=51; i++)
{
//System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}
if (paquet[0] == null)
{
System.out.println("Il n'y a plus de cartes donc vous ne pouvez plus piger.");
}
a = 0;
b = 0;
c = 0;
}
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("");
/*for (int i = 0; i<=51; i++)
{
System.out.println(jette[i]); //Pour montrer les cartes qui restent dans la fosse.
}*/
if (main1[0] == null)
{
System.out.println("\nVous avez gagne!");
state = 5;
}
else if (main2[0] == null)
{
System.out.println("\nVous avez perdu!");
state = 5;
}
while (state == 2 && refaire1 != 1 && refaire2 != 1 && tourner == 0) //C'est ici que le joueur 1 à le contrôle de ses cartes.
{
for (int i = 0; i == 0; i++)
{
System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
b = 0;
System.out.println("\nMain du joueur 1\n"/* + b + " " + input2 + "\n"*/);
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}
System.out.println("\nChoisissez une carte en entrant le nombre qui lui correspond. \nNombre(s) permis: 1 a " + b + " et " + (b+1) + " pour piger une carte.\n");
input1 = stdin.readLine();
try
{
input2 = Integer.valueOf(input1);
if (input2 > 0 && input2 <= b || input2 - 1 == b)
{
//System.out.println("\n" + input2); //Montrer que la réponse à été comprise.
if (input2 > 0 && input2 <= b && input2 - 1 != b)
{
card = main1[input2 - 1].split(delimiter);
cardjette = jette[0].split(delimiter);
//System.out.println(card[0] + " " + cardjette[0] + " " + card[2] + " " + cardjette[2]); //Montrer que les cartes ont bien été décomposés.
if (card[0].equals(cardjette[0]))
{
//System.out.println(card[0]);
state = 3;
tourner = 2;
}
else if (card[2].equals(cardjette[2]))
{
//System.out.println(card[2]);
state = 3;
tourner = 2;
}
else
{
System.out.println("\nVotre carte ne peut pas etre mise maintenant.");
input2 = 0;
i = -1;
b = 0;
}
}
else if (input2 - 1 == b)
{
System.out.println("\nUne carte a ete ajoute a votre main.\n");
input2 = 0;
refaire1 = 1;
ajouter1 = 1;
b = 0;
i = 1;
state = 3;
}
else
{
System.out.println("Pas une carte valide. "/* + input2 + " " + b*/);
input2 = 0;
i = -1;
b = 0;
}
}
}
catch (NumberFormatException nme)
{
System.out.println("");
}
if (input2 <= 0 && i != -1 && i != 1 || input2 > b + 1 && i != -1 && i != 1) //Pour attraper toutes les mauvaise entrées et donner une seconde chance de répondre.
{
System.out.println("\nVotre reponse n'a pas bien ete comprise. "/* + input2 + " " + b + " " + i*/);
i = -1;
b = 0;
}
}
//System.out.println(refaire1 + " " + ajouter1 + " " + input2 + " " + state);
}
while (state == 3 && refaire1 != 1 && refaire2 != 1 && tourner == 0) //C'est ici que le joueur 2 à le contrôle de ses cartes.
{
for (int i = 0; i == 0; i++)
{
//System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
b = 0;
//System.out.println("\nMain du joueur 2\n" + counter + "\n"/* + b + " " + input2 + "\n"*/);
while (main2[b] != null)
{
//System.out.println(b+1 + ". \t" + main2[b]);
b++;
}
//System.out.println("\nChoisissez une carte en entrant le nombre qui lui correspond. \nNombre(s) permis: 1 a " + b + " et " + (b+1) + " pour piger une carte.\n");
//input1 = stdin.readLine();
input2 = 0;
card = main2[0].split(delimiter);
cardjette = jette[0].split(delimiter);
for (int j = 0; j <= b - 1 && ! card[0].equals(cardjette[0]); j++)
{
input2 = j;
card = main2[input2].split(delimiter);
cardjette = jette[0].split(delimiter);
if (card[0].equals(cardjette[0]))
{
input1 = "" + j;
//System.out.println("Fail!");
j = b + 1;
}
//System.out.println(j + " Regarde moi! Je suis 1. " + card[0] + " " + cardjette[0]);
}
for (int j = 0; j <= b - 1 && ! card[2].equals(cardjette[2]) && ! card[0].equals(cardjette[0]); j++)
{
input2 = j;
card = main2[j].split(delimiter);
cardjette = jette[0].split(delimiter);
if (card[2].equals(cardjette[2]))
{
//input1 = "" + j;
j = b + 1;
}
//System.out.println(j + " Regarde moi! Je suis 2. " + card[0] + " " + cardjette[0]);
}
if ( ! card[0].equals(cardjette[0]) && ! card[2].equals(cardjette[2]))
{
input2 = b;
}
input2++;
input1 = "" + input2;
if (card[0].equals("Reine") && input2 != b + 1)
{
System.out.println("L'ordinateur a mis une " + main2[input2 - 1] + ". Il lui reste " + (b - 1) + " cartes.");
}
else if (! card[0].equals("Reine") && input2 != b + 1)
{
System.out.println("\nL'ordinateur a mis un " + main2[input2 - 1] + ". Il lui reste " + (b - 1) + " cartes.");
}
try
{
input2 = Integer.valueOf(input1);
if (input2 > 0 && input2 <= b || input2 - 1 == b)
{
//System.out.println("\n" + input2); //Montrer que la réponse à été comprise.
if (input2 > 0 && input2 <= b && input2 - 1 != b)
{
card = main2[input2 - 1].split(delimiter);
cardjette = jette[0].split(delimiter);
//System.out.println(card[0] + " " + cardjette[0] + " " + card[2] + " " + cardjette[2]); //Montrer que les cartes ont bien été décomposés.
if (card[0].equals(cardjette[0]))
{
//System.out.println(card[0]);
state = 2;
tourner = 3;
}
else if (card[2].equals(cardjette[2]))
{
//System.out.println(card[2]);
state = 2;
tourner = 3;
}
else
{
System.out.println("\nVotre carte ne peut pas etre mise maintenant.");
input2 = 0;
i = -1;
b = 0;
}
}
else if (input2 - 1 == b)
{
System.out.println("\nL'ordinateur a pige une carte. Il lui reste " + (b + 1) + " cartes.\n");
input2 = 0;
refaire2 = 1;
ajouter2 = 1;
b = 0;
i = 1;
state = 2;
}
else
{
System.out.println("Pas une carte valide. "/* + input2 + " " + b*/);
input2 = 0;
i = -1;
b = 0;
}
}
}
catch (NumberFormatException nme)
{
System.out.println("");
}
if (input2 <= 0 && i != -1 && i != 1 || input2 > b + 1 && i != -1 && i != 1) //Pour attraper toutes les mauvaise entrées et donner une seconde chance de répondre.
{
System.out.println("\nVotre reponse n'a pas bien ete comprise. "/* + input2 + " " + b + " " + i*/);
i = -1;
b = 0;
}
}
//System.out.println(refaire2 + " " + ajouter2 + " " + input2 + " " + state);
}
/*card = main1[0].split(delimiter);
int test = Integer.valueOf(card[0]);
System.out.println(test);
System.out.println(card[2]);*/ // Pour Tester la fonction split avec les Strings. Elle n'a pas très bien fonctionné à cause des figures (As, valet, dame, roi.).
}
try
{
Thread.sleep(3000);
System.exit(0);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
*Mau Mau, jeu de carte en java.
*Auteur: Apos
*Version: fini.
*Description: Jeu de carte basé en texte suivant les règles du jeu Mau Mau.
*URL(s): http://en.wikipedia.org/wiki/Mau_Mau_(card_game)
****************************/
import java.util.*;
import java.io.*;
class mau
{
public static void main(String[] args) throws IOException
{
String[][] deck = {
{"Coeur", "Pique", "Carreau", "Trefle"},
{"As de ", "2 de ", "3 de ", "4 de ", "5 de ", "6 de ", "7 de ", "8 de ", "9 de ", "10 de ", "Valet de ", "Reine de ", "Roi de "}};
int a = 0;
int b = 0;
int c = 0;
String[] paquet = new String[52];
String[] jette = new String[52];
String[] remake = new String[52];
String[] main1 = new String[52];
String[] main2 = new String[52];
BufferedReader stdin = new BufferedReader ( new InputStreamReader( System.in ) );
String input1;
int input2 = 0;
int state = 0; //Les differents cards du jeu. (0) = préparer les cartes. (1) = préparer les mains. (2) = Tour du joueur 1. (3) = Tour du joueur 2. (4) = Remélanger les cartes jetté et les remmetre en jeu. (5) = FinalReference du jeu.
int refaire1 = 0; //Des cartes doivent être ajouté dans la main du joueur 1.
int refaire2 = 0; //Des cartes doivent être ajouté dans la main du joueur 2.
int ajouter1 = 0; //Nombre de cartes à ajouter dans la main du joueur 1.
int ajouter2 = 0; //Nombre de cartes à ajouter dans la main du joueur 2.
int tourner = 0; //Switch indiquant qu'il faut ajouter une nouvelle carte sur le dessus du paquet. (1) = carte du paquet (Arrive au début du jeu.). (2) Carte dans la main du joueur 1. (3) Carte dans la main du joueur 2.
int counter = 0; //Pour compter le nombre de carte qui ont été sorti du paquet.
String[] card;
String[] cardjette;
String delimiter = " "; //Pas utilisé avec la nouvelle version.
while (state != 5)
{
while (state ==0) //Préparation du jeu, faire les cartes et les mélanger.
{
for (int i = 1; i <= 13; i++)
{
for (int j = 0; j<=3; j++)
{
paquet[a] = (deck[1][i-1] + deck[0][j]);
//System.out.println(paquet[a]); //Pour montrer que le paquet à bien été créé.
a++;
}
}
a = 0;
//List<String> mix = new ArrayList<String>();
//for (int i = 0; i<=52; i++)
//{
// mix.add (paquet[i]);
//}
List<String> mix = Arrays.asList(paquet); // Si les commentaires si dessus sont réactivé, masquer cette ligne.
Collections.shuffle(mix); //Mélanger les cartes.
Collections.shuffle(mix); //Mélanger les cartes une deuxième fois pour augmenter les possibilitiées.
//System.out.println(mix); //Pour comparer les résultat de mix et paquet. (Les deux étaient pareil comme voulu.)
//System.out.println(paquet[3]);
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes après avoir été bien mélangé.
}*/
state = 1;
}
//System.out.println(a + " " + jette[a + 1]);
while (state == 1) //Préparation des mains des joueurs.
{
ajouter1 = 5; //Nombre de cartes à donner au joueur 1.
ajouter2 = 5; //Nombre de cartes à donner au joueur 1.
refaire1 = 1; //Refaire est seulement une switch, 1 = on, 0 = off.
refaire2 = 1; //Refaire est seulement une switch, 1 = on, 0 = off.
tourner = 1; //tourner est seulement une switch, 1 = on, 0 = off.
state = 2; //(2) = Tour du joueur 1.
}
while (refaire1 == 1 && ajouter1 != 0) //Quand des cartes sont enlevé du paquet par le joueur 1.
{
//System.out.println("\nMain du joueur 1\n");
for (int i = 0; i <= ajouter1 - 1; i++)
{
if (main1[i + c] == null)
{
main1[i + c] = paquet[i];
//System.out.println(i+1 + ". \t" + main1[i]); //Montrer les cartes du joueur 1.
counter++;
for (int j = 0; j <= ajouter1 - 1 && i == ajouter1 - 1; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (i == ajouter1 - 1 && 52 - ajouter1 != 52 && b + 51 - ajouter1 <= 50)
{
//System.out.println("null " + b);
paquet[b + 52 - ajouter1] = null;
b++;
}
/*for (int j = b; j == 51 - ajouter1 && ajouter1 != 52; j++)
{
paquet[b] = paquet[b + ajouter1];
paquet[b + ajouter1] = null;
System.out.println("Done");
}*/
}
else
{
c++;
i--;
}
}
//System.out.println(b);
ajouter1 = 0;
refaire1 = 0;
b = 0;
c = 0;
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("Done");
//state = 2;
}
while (refaire2 == 1 && ajouter2 != 0) //Quand des cartes sont enlevé du paquet par le joueur 2.
{
//System.out.println("\nMain du joueur 2\n");
for (int i = 0; i <= ajouter2 - 1; i++)
{
if (main2[i + c] == null)
{
main2[i + c] = paquet[i];
//System.out.println(i+1 + ". \t" + main2[i]); //Montrer les cartes du joueur 2.
counter++;
for (int j = 0; j <= ajouter2 - 1 && i == ajouter2 - 1; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (i == ajouter2 - 1 && 52 - ajouter2 != 52 && b + 51 - ajouter2 <= 50)
{
//System.out.println("null " + b);
paquet[b + 52 - ajouter2] = null;
b++;
}
/*for (int j = b; j == 51 - ajouter2 && ajouter2 != 52; j++)
{
paquet[b] = paquet[b + ajouter2];
paquet[b + ajouter2] = null;
System.out.println("Done");
}*/
}
else
{
c++;
i--;
}
}
//System.out.println(b);
ajouter2 = 0;
refaire2 = 0;
b = 0;
c = 0;
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("Done");
//state = 2;
}
while (tourner == 1) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 2; i--) //Bouge les cartes vers le bas avant de mentre la carte sur le dessus de la fosse.
{
jette[i] = jette[i-1];
}
jette[0] = paquet[0];
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = 0; k <= 50; k++)
{
paquet[k] = paquet[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
paquet[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
counter++;
}
while (tourner == 2) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 1; i--)
{
jette[i] = jette[i-1];
}
jette[0] = main1[input2 - 1];
main1[input2 - 1] = null;
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = input2 - 1; k <= 50 - input2; k++)
{
main1[k] = main1[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
main1[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
input2 = 0;
//state = 2; //Pour tester seulement.
/*System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
System.out.println("\nMain du joueur 1\n");
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}*/
}
while (tourner == 3) //Pour tourner la carte qui est sur le dessus et la mettre dans la fosse.
{
for (int i = 51; i >= 1; i--)
{
jette[i] = jette[i-1];
}
jette[0] = main2[input2 - 1];
main2[input2 - 1] = null;
for (int j = 0; j <= 0; j++) //Monte les cartes pour remplacer les cartes enlevées.
{
for (int k = input2 - 1; k <= 50 - input2; k++)
{
main2[k] = main2[k + 1];
//System.out.println("move " + k + " " + b);
}
}
b = 0;
while (b + 50 <= 50)
{
//System.out.println("null " + b);
main2[b + 51] = null;
b++;
}
tourner = 0;
b = 0;
input2 = 0;
//state = 2; //Pour tester seulement.
/*System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
System.out.println("\nMain du joueur 1\n");
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}*/
}
if (paquet[0] == null && refaire1 != 1 && refaire2 != 1) //Pour remettre des cartes dans le paquet quand il n'y en a plus. Il y a une erreure à quelque part.
{
while (a != 50) //Copie toute les cartes en dessous de celle sur le haut de la pille vers le paquet temporaire qui va être mélangé.
{
if (jette[a + 1] != null && a != 50)
{
remake[a] = jette[a + 1];
jette[a + 1] = null;
a++;
//System.out.println("a++");
}
else
{
a++;
}
}
a = 0;
b = 0;
c = 0;
List<String> mix = Arrays.asList(remake);
Collections.shuffle(mix);
Collections.shuffle(mix);
//System.out.println(" ");
/*for (int i = 0; i<=51; i++)
{
System.out.println(remake[i]); //Pour montrer que les cartes ont bien été copié et mélangé.
}*/
//System.out.println(" ");
for (int i = 0; i < 51; i++)
{
if (remake[i] == null)
{
for (int j = i; j < 52; j++)
{
if (remake[j] != null)
{
remake[i] = remake[j];
remake[j] = null;
i++;
j = i;
}
}
}
}
/*for (int i = 0; i<=51; i++)
{
//System.out.println(remake[i]); //Pour montrer que les nulls sont bien en bas et les cartes en haut.
}*/
System.out.println(" ");
while (c != 51 && remake[c] != null)
{
paquet[c] = remake[c];
remake[c] = null;
c++;
//System.out.println("c++");
}
System.out.println("Paquet reset");
for (int i = 0; i<=51; i++)
{
//System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}
if (paquet[0] == null)
{
System.out.println("Il n'y a plus de cartes donc vous ne pouvez plus piger.");
}
a = 0;
b = 0;
c = 0;
}
/*for (int i = 0; i<=51; i++)
{
System.out.println(paquet[i]); //Pour montrer les cartes qui restent dans le paquet.
}*/
//System.out.println("");
/*for (int i = 0; i<=51; i++)
{
System.out.println(jette[i]); //Pour montrer les cartes qui restent dans la fosse.
}*/
if (main1[0] == null)
{
System.out.println("\nVous avez gagne!");
state = 5;
}
else if (main2[0] == null)
{
System.out.println("\nVous avez perdu!");
state = 5;
}
while (state == 2 && refaire1 != 1 && refaire2 != 1 && tourner == 0) //C'est ici que le joueur 1 à le contrôle de ses cartes.
{
for (int i = 0; i == 0; i++)
{
System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
b = 0;
System.out.println("\nMain du joueur 1\n"/* + b + " " + input2 + "\n"*/);
while (main1[b] != null)
{
System.out.println(b+1 + ". \t" + main1[b]);
b++;
}
System.out.println("\nChoisissez une carte en entrant le nombre qui lui correspond. \nNombre(s) permis: 1 a " + b + " et " + (b+1) + " pour piger une carte.\n");
input1 = stdin.readLine();
try
{
input2 = Integer.valueOf(input1);
if (input2 > 0 && input2 <= b || input2 - 1 == b)
{
//System.out.println("\n" + input2); //Montrer que la réponse à été comprise.
if (input2 > 0 && input2 <= b && input2 - 1 != b)
{
card = main1[input2 - 1].split(delimiter);
cardjette = jette[0].split(delimiter);
//System.out.println(card[0] + " " + cardjette[0] + " " + card[2] + " " + cardjette[2]); //Montrer que les cartes ont bien été décomposés.
if (card[0].equals(cardjette[0]))
{
//System.out.println(card[0]);
state = 3;
tourner = 2;
}
else if (card[2].equals(cardjette[2]))
{
//System.out.println(card[2]);
state = 3;
tourner = 2;
}
else
{
System.out.println("\nVotre carte ne peut pas etre mise maintenant.");
input2 = 0;
i = -1;
b = 0;
}
}
else if (input2 - 1 == b)
{
System.out.println("\nUne carte a ete ajoute a votre main.\n");
input2 = 0;
refaire1 = 1;
ajouter1 = 1;
b = 0;
i = 1;
state = 3;
}
else
{
System.out.println("Pas une carte valide. "/* + input2 + " " + b*/);
input2 = 0;
i = -1;
b = 0;
}
}
}
catch (NumberFormatException nme)
{
System.out.println("");
}
if (input2 <= 0 && i != -1 && i != 1 || input2 > b + 1 && i != -1 && i != 1) //Pour attraper toutes les mauvaise entrées et donner une seconde chance de répondre.
{
System.out.println("\nVotre reponse n'a pas bien ete comprise. "/* + input2 + " " + b + " " + i*/);
i = -1;
b = 0;
}
}
//System.out.println(refaire1 + " " + ajouter1 + " " + input2 + " " + state);
}
while (state == 3 && refaire1 != 1 && refaire2 != 1 && tourner == 0) //C'est ici que le joueur 2 à le contrôle de ses cartes.
{
for (int i = 0; i == 0; i++)
{
//System.out.println("\n///\n///\t" + jette[0] + "\n///\n"); //Pour montrer la carte sur le dessus de la fosse.
b = 0;
//System.out.println("\nMain du joueur 2\n" + counter + "\n"/* + b + " " + input2 + "\n"*/);
while (main2[b] != null)
{
//System.out.println(b+1 + ". \t" + main2[b]);
b++;
}
//System.out.println("\nChoisissez une carte en entrant le nombre qui lui correspond. \nNombre(s) permis: 1 a " + b + " et " + (b+1) + " pour piger une carte.\n");
//input1 = stdin.readLine();
input2 = 0;
card = main2[0].split(delimiter);
cardjette = jette[0].split(delimiter);
for (int j = 0; j <= b - 1 && ! card[0].equals(cardjette[0]); j++)
{
input2 = j;
card = main2[input2].split(delimiter);
cardjette = jette[0].split(delimiter);
if (card[0].equals(cardjette[0]))
{
input1 = "" + j;
//System.out.println("Fail!");
j = b + 1;
}
//System.out.println(j + " Regarde moi! Je suis 1. " + card[0] + " " + cardjette[0]);
}
for (int j = 0; j <= b - 1 && ! card[2].equals(cardjette[2]) && ! card[0].equals(cardjette[0]); j++)
{
input2 = j;
card = main2[j].split(delimiter);
cardjette = jette[0].split(delimiter);
if (card[2].equals(cardjette[2]))
{
//input1 = "" + j;
j = b + 1;
}
//System.out.println(j + " Regarde moi! Je suis 2. " + card[0] + " " + cardjette[0]);
}
if ( ! card[0].equals(cardjette[0]) && ! card[2].equals(cardjette[2]))
{
input2 = b;
}
input2++;
input1 = "" + input2;
if (card[0].equals("Reine") && input2 != b + 1)
{
System.out.println("L'ordinateur a mis une " + main2[input2 - 1] + ". Il lui reste " + (b - 1) + " cartes.");
}
else if (! card[0].equals("Reine") && input2 != b + 1)
{
System.out.println("\nL'ordinateur a mis un " + main2[input2 - 1] + ". Il lui reste " + (b - 1) + " cartes.");
}
try
{
input2 = Integer.valueOf(input1);
if (input2 > 0 && input2 <= b || input2 - 1 == b)
{
//System.out.println("\n" + input2); //Montrer que la réponse à été comprise.
if (input2 > 0 && input2 <= b && input2 - 1 != b)
{
card = main2[input2 - 1].split(delimiter);
cardjette = jette[0].split(delimiter);
//System.out.println(card[0] + " " + cardjette[0] + " " + card[2] + " " + cardjette[2]); //Montrer que les cartes ont bien été décomposés.
if (card[0].equals(cardjette[0]))
{
//System.out.println(card[0]);
state = 2;
tourner = 3;
}
else if (card[2].equals(cardjette[2]))
{
//System.out.println(card[2]);
state = 2;
tourner = 3;
}
else
{
System.out.println("\nVotre carte ne peut pas etre mise maintenant.");
input2 = 0;
i = -1;
b = 0;
}
}
else if (input2 - 1 == b)
{
System.out.println("\nL'ordinateur a pige une carte. Il lui reste " + (b + 1) + " cartes.\n");
input2 = 0;
refaire2 = 1;
ajouter2 = 1;
b = 0;
i = 1;
state = 2;
}
else
{
System.out.println("Pas une carte valide. "/* + input2 + " " + b*/);
input2 = 0;
i = -1;
b = 0;
}
}
}
catch (NumberFormatException nme)
{
System.out.println("");
}
if (input2 <= 0 && i != -1 && i != 1 || input2 > b + 1 && i != -1 && i != 1) //Pour attraper toutes les mauvaise entrées et donner une seconde chance de répondre.
{
System.out.println("\nVotre reponse n'a pas bien ete comprise. "/* + input2 + " " + b + " " + i*/);
i = -1;
b = 0;
}
}
//System.out.println(refaire2 + " " + ajouter2 + " " + input2 + " " + state);
}
/*card = main1[0].split(delimiter);
int test = Integer.valueOf(card[0]);
System.out.println(test);
System.out.println(card[2]);*/ // Pour Tester la fonction split avec les Strings. Elle n'a pas très bien fonctionné à cause des figures (As, valet, dame, roi.).
}
try
{
Thread.sleep(3000);
System.exit(0);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
Sorry for people that can't understand french...
For people that knows java: I know that this code is very bad, and I would rewrite it today, I would probably make it over 300 lines shorter, but this works and I don't want to change it.