Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 10/06/2008, à 14:53

champoul

Re : jeu de la vie ...

C'est pareil, ça va pas trop lui servir ça, vu qu'il veut lister le groupe hmm

Hors ligne

#52 Le 10/06/2008, à 15:09

Totor

Re : jeu de la vie ...

Ce sont les règles pour déterminer le groupe.
En conséquence, s'il arrive à le déterminer, il arrivera à le lister !


-- Lucid Lynx --

Hors ligne

#53 Le 10/06/2008, à 15:20

champoul

Re : jeu de la vie ...

Oui mais non, c'est le même problème que ce que j'ai donné, comme ça tu vas pouvoir déterminer si une cellule fait partie d'un groupe, donc tu vas devoir parcourir toutes les cellules, si tu dois faire ça plusieurs fois par secondes, plus d'autres choses, tu l'as dans l'os sad

Hors ligne

#54 Le 10/06/2008, à 15:37

Totor

Re : jeu de la vie ...

Tout dépend comment tu t'y prends :
Cette recherche est à effectuer pour chaque cycle voire, à chaque apparition/mouvement d'une cellule X.
Donc pour effectuer cette recherche, la 1ere chose à faire est d'établir une 'image' des cases (sous forme de collection, tableaux ou tout autre éléments ensembliste).  Lorsqu'un groupe a été déterminé, toutes les cellules le constituant sont supprimés de cet ensemble. Donc reste dans cet ensemble, toutes les cellules X et toutes les autres cellules vides, qui peuvent au passage, faire partie d'un autre groupe encerclé. Il faut donc effectuer une autre recherche dans cet ensemble tant qu'il n'est plus possible d'établir de groupe.

D'ailleurs, plutôt que d'effectuer un dump du tableau d'origine, il est préférable d'ajouter une propriété à chacune des cases indiquant si la cellule fait partie d'un groupe ou non. Dès lors, à chaque cycle et pour toutes les cellules, positionner cette propriété à "non". Cela permet de gagner de l'espace mémoire et de gagner du temps (valoriser une propriété est plus rapide que d'en effectuer une copie).


Après, il est possible que l'on ne se comprenne pas... pas évident par écrit roll


-- Lucid Lynx --

Hors ligne

#55 Le 10/06/2008, à 15:42

champoul

Re : jeu de la vie ...

Oui voilà, code le direct, ça lui fera gagner du temps lol
Non mais plus sérieusement je comprends bien ton idée, c'est la méthode la plus instinctive wink

Hors ligne

#56 Le 10/06/2008, à 16:22

Totor

Re : jeu de la vie ...

c'est peut-être la plus instinctive mais au moins, elle permet de déterminer le groupe et non pas seulement indiquer si une cellule et oui ou non candidate ...

Par ailleurs, l'objectif est non pas de fournir le code (tu remarqueras qu'il a demandé un algo et qu'il n'y a pas une ligne de code dans mon post), c'est pourquoi j'ai proposé une piste qui me semble t'il, répond au besoin en totalité.


-- Lucid Lynx --

Hors ligne

#57 Le 10/06/2008, à 16:28

yohann

Re : jeu de la vie ...

http://fr.wikipedia.org/wiki/Algorithme_de_parcours_en_profondeur

je pense que ca peut t'aider, 

c'est le genre d'algo qu j'avais utiliser pour numeroter des iles:

xxxx             xxxx
xoxx      ---\  x1xx
xxxo      ---/  xxx2
xxxo             xxx2


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#58 Le 10/06/2008, à 17:50

champoul

Re : jeu de la vie ...

Totor a écrit :

c'est peut-être la plus instinctive mais au moins, elle permet de déterminer le groupe et non pas seulement indiquer si une cellule et oui ou non candidate ...

Par ailleurs, l'objectif est non pas de fournir le code (tu remarqueras qu'il a demandé un algo et qu'il n'y a pas une ligne de code dans mon post), c'est pourquoi j'ai proposé une piste qui me semble t'il, répond au besoin en totalité.

Non mais attends, si on ajoute une collection, un tableau ou comme tu le dis un attributs à chaque case, le début d'algo que j'ai mis le fait aussi hein

Hors ligne

#59 Le 10/06/2008, à 22:49

Totor

Re : jeu de la vie ...

désolé, mais je crains que nous ne sommes pas sur la même longueur d'onde hmm
il ne s'agit pas de se battre sur la qualité d'un algo où d'un début d'algo. C'est absurde et pas constructif ... ça n'avance à rien ! mais plutôt de fournir une méthode, une logique afin de parvenir au problème soulevé... après, tu la concrétises comme tu veux....
je ne prétends pas avoir LA solution et mon objectif n'était pas de remettre en cause la tienne. Je souhaitais simplement apporter ma pierre à l'édifice en proposant une piste.:rolleyes:

bon sur ce, bonne nuit wink


-- Lucid Lynx --

Hors ligne

#60 Le 11/06/2008, à 08:25

DrDam

Re : jeu de la vie ...

Meric d'avoir si largement repondu ... je vais essayer de corriger le tir de certaines de vos réponses ...

1) toute cellule vide touchant le bord du "monde" n'est pas enfermé ...

2) une case à 8 voisins .... donc dans ce cas la :

%%%X%
%%X%%
%X%X%
X%%X%
%%%X%

ou la

%%X%%%
%%X%%%
XXX%%%

il n'y a aucune case enfermé (c'est un detail ... mais bon)

ça ne remet pas en doute les raisonnement ... mais c'est important


bon, ces petits details regles ... je revient à vos solutions  :

Cette recherche est à effectuer pour chaque cycle voire, à chaque apparition/mouvement d'une cellule X.

c'est effectivement ce que voudrais faire

la 1ere chose à faire est d'établir une 'image' des cases (sous forme de collection, tableaux ou tout autre éléments ensembliste).

en clair ?? je crée un tableau clone du "monde" ... avec pour chaque case un pointeur vers la case de mon tableau "monde" sinon je ne vois pas comment faire ?

D'ailleurs, plutôt que d'effectuer un dump du tableau d'origine, il est préférable d'ajouter une propriété à chacune des cases indiquant si la cellule fait partie d'un groupe ou non. Dès lors, à chaque cycle et pour toutes les cellules, positionner cette propriété à "non". Cela permet de gagner de l'espace mémoire et de gagner du temps (valoriser une propriété est plus rapide que d'en effectuer une copie).

donc c'est dans ma table du monde que j'ai à géré ça ? pas dans mes objets "case-vide"... sinon j'aime bien la logique


ou alors pour chaque element de ma table "monde" j'ai un pointeur vers l'objet à quoi il correspond (Case-vide VS cellule) et un valeur de groupe ...



il ne s'agit pas de se battre sur la qualité d'un algo où d'un début d'algo. C'est absurde et pas constructif ... ça n'avance à rien ! mais plutôt de fournir une méthode, une logique afin de parvenir au problème soulevé... après, tu la concrétises comme tu veux....

c'est aussi ça l'idée ... pas la peine de vous battre pour moi ... je suis deja prit

enfin ... merci ... vous m'aider grandement ...


Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin

Hors ligne

#61 Le 04/03/2010, à 12:34

slan

Re : jeu de la vie ...

A quand un jeu de la vie complexe avec les technologies, arme, politique, homme, femme, enfant, age ...


http://framasoft.org

Hors ligne

#62 Le 04/03/2010, à 15:58

Link31

Re : jeu de la vie ...

Pour l'algo de détection des cellules "enfermées", c'est assez simple :
- à partir de chaque case du bord du "monde" qui n'est pas occupée (X), appliquer un algorithme de remplissage
- quand toutes les cases de la bordure ont été considérées, les cases restantes (non affectées par l'algorithme de remplissage) sont les cases enfermées

En fait ça revient à remplir d'eau un cube contenant lui-même des billes creuses. L'intérieur des billes creuses n'est pas affecté.

edit : oups, ce sujet était vieux de plus d'un an et demi... Enfin si ça peut servir à quelqu'un, tant mieux tongue

Dernière modification par Link31 (Le 04/03/2010, à 16:00)

Hors ligne

#63 Le 04/03/2010, à 20:04

francoisp31

Re : jeu de la vie ...

pour les curieux et autre amateurs d"escavations de post

voilà un code en forth qui permet d'avoir une solutions tres efficaces :
http://www.murphywong.net/hello/life.htm


Que les puces d'un millier de chiens galleux infeste le cul de celui qui osera vous gacher ne serai ce
qu'une seule journée de votre vie et que les bras lui soient trop court pour qu'il puisse se le gratter.

Hors ligne