Salut à tous,
Je suis étudiant en L2 d'informatique, et j'ai un projet à réaliser qui consiste en une simulation de colonie de fourmis avec des règles assez simples.
Les fourmis se déplacent "aléatoirement" sur une Grille à la recherche de nourriture tout en déposant de la phéromone (2 types différents selon qu'elles transportent ou non de la nourriture), mais là n'est pas le problème.
Pour la présentation de mon projet j'aimerai pouvoir sauvegarder certaines grilles plus jolies/utiles/optimisées que d'autres, mais pour ce faire il faut que je puisse sérialiser les objets...
Donc, ma grille est composée d'un tableau de tableau d'entier, d'un tableau de tableau d'objets (des cases), d'une colonie, et d'une source de nourriture.
Ces objets ont eux même des attributs (nombreux ou pas), comme par exemple colonie qui a en attribut une liste de fourmi, les fourmis qui sont caractérisées par une position et un état, etc...
Ma question est, la sérialisation du panneau (l'objet représentant ma grille) va-t-elle entraîner la sérialisation de tout les objets composants mon Panneau, et les objets caractérisants les objets qui caractérisent mon Panneau (oula je me perd dans mon français), ou dois-je refaire une sérialisation pour chaque objet qui caractérisent mon Panneau?
J'ai un autre problème concernant le ré-affichage d'une grille sauvegardée, du choix de quelle grille sauvegardée veut on charger sur la fenêtre, et d'autres encore, mais commençant à peine la sérialisation je pense qu'il serait plus judicieux de me poser les questions une à une.
Je vous mets ici le code de mon Serializer:
Merci d'avoir pris le temps de lire,
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
33
34
35
36
37
38
39
40
41
42
43 import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.ObjectInputStream; public class Serialization{ private Panneau pan; public Serialization(Panneau p){ this.pan = p; } public void serialize(){ try{ FileOutputStream fos = new FileOutputStream("save.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(this.pan); oos.close(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } public Panneau deserialize(){ Panneau p = null; try{ FileInputStream fis = new FileInputStream("save.ser"); ObjectInputStream ois = new ObjectInputStream(fis); p = (Panneau)ois.readObject(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); } return p; } }
Sam
PS: Si vous avez besoin de plus d'informations ou de morceaux de codes (ce que je ne pense pas nécessaire à la résolution de ma question, je peux avoir tort), n'hésitez pas à les demander !
Partager