Package model

Source Code of model.Partie

package model;

import java.io.Serializable;
import java.util.Random;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
import model.dao.HibernateFactory;
import model.dao.PartieDAO;
import org.hibernate.Session;

/**
*
* @author Jérôme Fafchamps
* @version 4.0
*
*/
@Entity
public class Partie implements Serializable {

      @Id
    @GeneratedValue
    private int numeropartie = 0;
    private int nbrecolonne = 4;
    private int nbreligne = 9;
    private int nbrecouleur = 7;
    private int gagne = 0;
    @ManyToOne
    private Joueur j;
    private int ligne = 1;
    private int colonne = 0;
    private int boulerouge = 0;
    private int boulenoir = 0;
    @Transient
    private MMboule solution[];
    @Transient
    private MMboule proposition[];
    @Transient
    private PartieDAO je;


    public Partie() {
        //on crée les boules

        solution = new MMboule[nbrecolonne];
        proposition = new MMboule[nbrecolonne];

        Random r = new Random();
        chargement();
    }

    public Partie(int colonne, int couleur, int ligne) {


        //configuration de la partie
        //par instance du controleur
        this.nbrecolonne = colonne;
        this.nbreligne = ligne;
        this.nbrecouleur = couleur;

        solution = new MMboule[nbrecolonne];
        proposition = new MMboule[nbrecolonne];

        Random r = new Random();
        chargement();

        je = new PartieDAO();
        je.save(this);
    }

    public synchronized void chargement() {
        Random r = new Random();
        for (int j = 0; j < nbrecolonne; j++) {
            //on stock une valeur aléatoire que l'ordinateur jouera
            //permet d'arrondir au supérieur
            int valeur = 1 + r.nextInt(nbrecouleur - 1);
            solution[j] = new MMboule(valeur, false);
            proposition[j] = new MMboule(0, false);
        }
       // this.numeropartie = r.nextInt(9999999);
    }

    public String getCode() {
         ligne++;
        String var = null;
        for (int k = 0; k < nbrecolonne; k++) {
            //System.out.print(solution[k].getCouleur());
            var += solution[k].getCouleur() + " ";
        }
        return var;
    }

    public void traitement(String sol) {
        String[] configuration1 = new String[6];
        configuration1 = sol.split("/");


        for (colonne = 0; colonne < nbrecolonne; colonne++) {
            proposition[colonne].setCouleur(Integer.parseInt(configuration1[colonne]));
        }
    }

    public synchronized int verif_boule_blanche() {


        boulenoir = 0;

        for (colonne = 0; colonne < nbrecolonne; colonne++) {

            if (proposition[colonne].getEtat() == false) {

                for (int i = 0; i < nbrecolonne; i++) {
                    //test si la solution n'a pas encore été testé
                    //dans une autre boucle ou celle-ci.       
                    if (this.solution[i].getEtat() == false && proposition[colonne].getEtat() == false) {
                        //si la proposition est la même que la solution
                        if (proposition[colonne].getCouleur() == this.solution[i].getCouleur()) {
                            //on incrente les boules
                            boulenoir++;
                            //on bloque pour dire qu'on a déjà incrémenté les boules
                            this.solution[i].setEtat(true);
                            proposition[colonne].setEtat(true);

                        }
                    }
                }
            }
        }
        return boulenoir;
    }

    public synchronized int verif_boule_rouge() {


        boulerouge = 0;

        for (colonne = 0; colonne < nbrecolonne; colonne++) {
            //on vérifie si la proposition en cours et égale  la solution en cours.
            if (proposition[colonne].getCouleur() == solution[colonne].getCouleur()) {
                //on incrémente
                boulerouge++;
                solution[colonne].setEtat(true);
                proposition[colonne].setEtat(true);

            }    
          
        }
         
        if (boulerouge==this.nbrecolonne)
            this.gagne=1;
        //on retourne le nombre de boule rouge pour détecter si 4 boules = gagnant
        return boulerouge;
    }

    public synchronized void remise_a_zero() {
        //on remet la ligne proposition/solution à 0 pour rechercher une nouvelle ligne    
        for (int i = 0; i < nbrecolonne; i++) {
            this.proposition[i].setEtat(false);
            this.solution[i].setEtat(false);
        }
     
       
    }

    public synchronized void setPartie(int code) {
     //  this.numeropartie = code;
    }

    public synchronized int getPartie() {
        return this.numeropartie;
    }
   
    

    public synchronized int getNbrLigne() {
        return nbreligne;
    }

    public synchronized int getNbreColonne() {
        return nbrecolonne;
    }

    public synchronized int getNbreLigne() {
        return nbreligne;
    }

    public synchronized int getNbreCouleur() {
        return nbrecouleur;
    }

    public synchronized int getLigne() {
        return this.ligne;
    }

    public synchronized void setBouleRouge(int boule) {
        this.boulerouge = boule;
    }

    public synchronized int getColonne() {
        return this.colonne;
    }

    public synchronized int getBouleRouge() {
        return boulerouge;
    }

    public synchronized int getBouleNoir() {
        return boulenoir;
    }

    public synchronized int getNbrCouleur() {
        return nbrecouleur;
    }

       public synchronized int getGagne() {
        return gagne;
    }
      
    public synchronized Joueur getJ() {
        return j;
    }

    public synchronized void setJ(Joueur j) {
       System.out.println("ici plante?" + this.numeropartie);
        je = new PartieDAO();
        this.j = j;
        je.update(this);
    }
   
    public synchronized void update() {
         System.out.println("ici plante?" + this.numeropartie);
        je = new PartieDAO();
        je.update(this);
    }
   
}
TOP

Related Classes of model.Partie

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.