IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Probleme de clonage


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Probleme de clonage
    Bonsoir à tout, je dois resoudre un sudoku, pour cela j'ai plusieurs classes, nottament une plateau, et une case. Je veux cloner mon plateau. Voila mon code:


    Ma classe Case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class Case implements Cloneable {
     
    /*Constructeurs, declaration de variables sont mis, mais inutile pour mon probleme */
     
    	 public Object clone() {
    	    Object o = null;
    	    try {
    	      o = super.clone();
    	    } catch(CloneNotSupportedException e) {
    	    	System.out.println("Seb");
    	    }
    	    return o;
    	  }
     
    }

    Ma classe Plateau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class Plateau implements Cloneable
    {
     
    	public Object clone(){
    		Plateau o = null;
    		try {
    			o = (Plateau)super.clone();
    		} catch (CloneNotSupportedException e){
    		System.out.println("Seb t mort");
    		}
    		for(int i=0 ; i<4; i++){
    			for(int j=0 ; j<4; j++){
    				o.sudokuFils[i][j] = (Case)o.sudokuPere[i][j].clone();
    			}
    		}
    				return (Plateau)o;
    	}
     
     
     
     
    	public Object clonage(){
    	//	Case [][] sudokuFils;
    	//	int taille = sudokuPere[0].length;
    		sudokuFils = new Case[4][4];
    		for(int i=0 ; i<4; i++){
    			for(int j=0 ; j<4; j++){
    				sudokuFils[i][j] = (Case)sudokuPere[i][j].clone();	
    			}
    		}
    		return sudokuFils;
    	}

    La methode main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String[] args) throws IOException {
     
    	int taillePlate = 4;
    	Plateau jeu = new Plateau(taillePlate);
    	Plateau jeu2 = new Plateau(taillePlate);
    	jeu.sudokuPere[0][0].motif = "1";
    	jeu.sudokuPere[1][2].motif = "3";
    	jeu.sudokuPere[3][3].motif = "9";
    	jeu.afficher();
    	jeu2.clonage();
    	jeu2.afficher();

    Mon Probleme:
    Le resultat de "jeu2.afficher()" est:
    [ ][ ][ ][ ]
    [ ][ ][ ][ ]
    [ ][ ][ ][ ]
    [ ][ ][ ][ ]
    Il me créé juste un nouveau plateau mais sans mettre les valeurs !! Et je voudrais bien sur avoir les valeurs.

    Merci d'avance pour votre aide, qui me sera tres precieuse.
    Cordialement.
    David.

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Si j'ai tout compris,tu cherche à cloner jeu dans jeu2..
    Voilà le code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void main(String[] args) throws IOException {
     
    	int taillePlate = 4;
    	Plateau jeu = new Plateau(taillePlate);
    	Plateau jeu2 = new Plateau(taillePlate);
    	jeu.sudokuPere[0][0].motif = "1";
    	jeu.sudokuPere[1][2].motif = "3";
    	jeu.sudokuPere[3][3].motif = "9";
    	jeu.afficher();
    	jeu2 = (Plateau)jeu.clonage();
    	jeu2.afficher();
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Oui c'est bien ça merci de m'avoir repondu, mais quand j'execute j'ai ce message d'erreur (apres l'affichage du 1er tableau, le "jeu")

    java.lang.ClassCastException
    at Plateau.main(Plateau.java:217)
    Exception in thread "main"


    at Plateau.main(Plateau.java:217) correspond à cette ligne: jeu2 = (Plateau)jeu.clonage();

  4. #4
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    et pourquoi pas utiliser la méthode "Clone" existante?
    ça donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jeu2 = (Plateau)jeu.clonage();
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Il fallait bien utiliser clone(), clonage ne sert à rien et dans la clone(), il fallait mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    o.sudokuFils[i][j] = (Case)o.sudokuPere[i][j].clone();
    Merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de clonage
    Par smb87 dans le forum VMware
    Réponses: 1
    Dernier message: 21/08/2013, 15h39
  2. Probleme de clonage d'un objet serialise a partir d'un fichier XML
    Par h_ismaili dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/06/2007, 11h07
  3. Probleme : clonage de tableau d'objets
    Par sebastien2222 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 26/09/2006, 09h35
  4. probleme Clonage menu
    Par vincedjs dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 02/03/2006, 11h32
  5. [Tableau] problème de clonage
    Par mabdylon dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 15/02/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo