J'ai un automate cellulaire bidimensionnel. Dans certaines cellules, il peut y avoir un acteur (agent). Chaque acteur est un fil. Je dois déplacer l'acteur basé sur les 9 cellules autour de la cellule de l'acteur. Je veux faire cela simultanément afin que l'acteur dans une cellule (4,5) puisse utiliser des cellules voisines (3,4), (4,4), (5,4), (3,5), (5,5) , (3,6), (4,6), (5,6) et aucun autre acteur ne peut utiliser ces cellules. Si un acteur a ces cellules dans son quartier, il doit attendre que le premier acteur déménage. Mais je veux permettre de déplacer l'acteur, qui n'a pas de voisinage commun, en même temps. Ainsi l'acteur de (4,5) peut se déplacer en même temps qu'un acteur en (10,5) car ils n'ont pas de voisinage commun.Mouvements d'automates cellulaires simultanés en mouvement
Quelle est la meilleure solution? Pouvez-vous proposer quelque chose?
Plusieurs questions sur ce qui devrait être mis en œuvre: 1. Quand le fil se déplace vers la nouvelle cellule, montrez-il dormir à temps fixe (disons 1 sec) ou non? 2. Avez-vous besoin d'une visualisation de l'interface utilisateur (Swing)? Dans ce cas, vous pouvez marquer les threads «en attente de déplacement» en rouge et les threads en mouvement/dormant en vert. En option, vous pouvez créer une matrice de cellules 'Cell [] [] matrix'. Chaque fois que Thread va à la cellule suivante, il possède le moniteur sur cette cellule: 'synchronized (matrix [i] [j]) {Thread.sleep (1000); } ' –