Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

NEED TO MAKE THIS IN GRAPHICS USING SWING JAVA OR JFRAME package com.company; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class Main { private static

NEED TO MAKE THIS IN GRAPHICS USING SWING JAVA OR JFRAME

package com.company; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class Main { private static ListeJoueurs joueurs; private static Grille grille; private static int nbJoueurs; private static boolean partieTerminee; private static int numJoueurJoue; private static Scanner scanner = new Scanner(System.in); private static Random random = new Random(); private Object JButton; public static void main(String[] args) { System.out.println("1) Nouvelle partie 2) Quitter"); int choice = Integer.parseInt(scanner.nextLine()); while (choice == 1) { switch (choice) { case 1: System.out.println("Entrez le nombre de joueurs : "); System.out.println(); nbJoueurs = Integer.parseInt(scanner.nextLine()); Main.joueurs = new ListeJoueurs(nbJoueurs); int j = 1; for (Joueur joueur : ListeJoueurs.getJoueurs()) { joueur.defineName(j); j++; } grille = new Grille(nbJoueurs); ArrayList ordre = determinationOrdreJoueurs(); while (!Main.partieTerminee()) { for (int i : ordre) { System.out.println("Au tour de " + ListeJoueurs.getJoueur(i).getName() + " de jouer (joueur n" + (ListeJoueurs.getJoueur(i).getNumero() + 1) + ")"); grille.afficher(); Joueur joueur_enCours = ListeJoueurs.getJoueur(i); joueur_enCours.afficherJeu(); choixAction(joueur_enCours); joueur_enCours.defausser(); joueur_enCours.piocher(); } } System.out.println("Partie termine !!!"); break; case 2: System.out.println("A bientt !"); break; } System.out.println("1) Nouvelle partie 2) Quitter"); choice = Integer.parseInt(scanner.nextLine()); } } public static boolean partieTerminee() { int compteur = 0; for (Joueur joueur : ListeJoueurs.getJoueurs()) { if (joueur.aGagne() == true) { compteur++; } } return ListeJoueurs.getJoueurs().size() <= compteur + 1; } public static void recommencerPartie() { if (partieTerminee() == true) { System.out.println("Voulez-vous commencer une nouvelle partie ?"); } else { System.out.println("La partie est toujours en cours."); } } public static ArrayList determinationOrdreJoueurs() { ArrayList temp = new ArrayList<>(); // on gnre l'ordre alatoire du tour des joueurs for (int i = 0; i < nbJoueurs; i++) { temp.add(i); } ArrayList ordre = new ArrayList<>(); while (temp.size() != 0) { int coef = random.nextInt(temp.size()); ordre.add(temp.remove(coef)); } return ordre; } public static void choixAction(Joueur joueur) { int choix = 0; while (choix < 1 || choix > 3) { System.out.println("Que voulez vous faire ? " + "1) Complter le programme " + "2) Excuter le programme " + "3) Poser un obstacle"); choix = Integer.parseInt(scanner.nextLine()); } switch (choix) { case 1: joueur.completerProgramme(); break; case 2: joueur.effectuerProgramme(Main.grille); break; case 3: String type = ""; int choix_t = 0; while (choix_t < 1 || choix_t > 2) { System.out.println("Quel type d'obstacle voulez vous poser ? (1) Brique (" + joueur.getMurs().nombreMursRestants("Brique") + " murs de Glace disponibles) " + "(2) Glace (" + joueur.getMurs().nombreMursRestants("Glace") + " murs de Glace disponibles)"); choix_t = Integer.parseInt(scanner.nextLine()); } if (choix_t == 1) { type = "Brique"; } else if (choix_t == 2) { type = "Glace"; } int ligne = -1; while (ligne < 0 || ligne > 7) { System.out.println("Sur quelle ligne voulez vous poser cet obstacle ?"); ligne = Integer.parseInt(scanner.nextLine()); } int colonne = -1; while (colonne < 0 || colonne > 7) { System.out.println("Sur quelle colonne voulez vous poser cet obstacle ?"); colonne = Integer.parseInt(scanner.nextLine()); } System.out.println(); if (!joueur.PoserObstacle(type, ligne, colonne, grille)) { System.out.println("Il n'a pas t possible de posser le mur de " + type + "  la ligne " + ligne + " et colonne " + colonne); System.out.println("Vous allez donc devoir choisir d'effectuer une nouvelle action durant ce tour !"); choixAction(joueur); } break; } } public static boolean encercle() { Tuile[][] plateau = grille.getGrille(); ArrayList> groupes; ArrayList tuileDepart; int nbTortue, nbJoyaux, nbCaseDepart; tuileDepart = getCaseDepart(plateau); for (Tuile tuile : tuileDepart) { if (tuile.getType().equals("Brique") || tuile.getType().equals("Glace")) { return true; } } groupes = creationGroupe(plateau); for (ArrayList groupe : groupes) { nbTortue = 0; nbJoyaux = 0; nbCaseDepart = 0; for (Tuile tuile : groupe) { if (tuileDepart.contains(tuile)) { nbCaseDepart++; } else if (tuile.getType().equals("Tortue")) { nbTortue++; } else if (tuile.getType().equals("Joyaux")) { nbJoyaux++; } } if (nbCaseDepart > 0 && nbJoyaux == 0) { return true; } else if (nbTortue > 0 && nbJoyaux == 0) { return true; } else if (nbJoyaux > 0 && (nbTortue == 0 && nbCaseDepart == 0)) { return true; } } return false; } public static ArrayList getCaseDepart(Tuile[][] plateau) { ArrayList casesDepart = new ArrayList(); ArrayList listeJoueurs = ListeJoueurs.getJoueurs(); for (Joueur joueur : listeJoueurs) { Tortue tortue = joueur.getTortue(); casesDepart.add(plateau[tortue.getLigneInitiale()][tortue.getColonneInitiale()]); } return casesDepart; } public static ArrayList> creationGroupe(Tuile[][] plateau) { ArrayList> groupes = new ArrayList<>(); Tuile tuile, tuile2; int nbLignes = plateau.length; int nbColonnes = plateau[0].length; int numGroupe = -1, numGroupe2 = -1; for (int i = 0; i < nbLignes; i++) { for (int j = 0; j < nbColonnes; j++) { tuile = plateau[i][j]; if (!(tuile.getType().equals("Brique") || tuile.getType().equals("Glace"))) { numGroupe = quelGroupe(tuile, groupes); if (i < nbLignes - 1) { tuile2 = plateau[i + 1][j]; if (!(tuile2.getType().equals("Brique") || tuile2.getType().equals("Glace"))) { numGroupe2 = quelGroupe(tuile2, groupes); numGroupe = fusionGroupes(groupes, numGroupe, numGroupe2); } } if (j < nbColonnes - 1) { tuile2 = plateau[i][j + 1]; if (!(tuile2.getType().equals("Brique") || tuile2.getType().equals("Glace"))) { numGroupe2 = quelGroupe(tuile2, groupes); numGroupe = fusionGroupes(groupes, numGroupe, numGroupe2); } } } } } return groupes; } public static int quelGroupe(Tuile tuile, ArrayList> groupes) { int compteur = 0; for (ArrayList groupe : groupes) { if (groupe.contains(tuile)) { return compteur; } compteur++; } groupes.add(new ArrayList()); groupes.get(compteur).add(tuile); return compteur; } public static int fusionGroupes(ArrayList> groupes, int numGroupe1, int numGroupe2) { if (numGroupe1 < numGroupe2) { for (Tuile tuile : groupes.get(numGroupe2)) { groupes.get(numGroupe1).add(tuile); } groupes.remove(numGroupe2); return numGroupe1; } else if (numGroupe2 < numGroupe1) { for (Tuile tuile : groupes.get(numGroupe1)) { groupes.get(numGroupe2).add(tuile); } groupes.remove(numGroupe1); return numGroupe2; } return numGroupe1; } public static Tuile[][] getGrille() { return Main.grille.getGrille(); } } 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Domain Transfer Learning With 3q Data Processing

Authors: Ahmed Atif Hussain

1st Edition

B0CQS1NSHF, 979-8869061805

More Books

Students also viewed these Databases questions

Question

Address an envelope properly.

Answered: 1 week ago

Question

Discuss guidelines for ethical business communication.

Answered: 1 week ago