Posté le 22/10/2018 13:47
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 222 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 24/10/2018 17:34 | #
Ben non pas trop, je vois comment je fais parcourir un signal dans un câble: en regardant autour de la position ou je suis et si il trouve un câble ou autre élément il va dessus... mais je vois pas comment, quand j'arrive à un noeud, diviser le signal...
-Planétarium 2
Citer : Posté le 24/10/2018 17:47 | #
Il y a un automate cellulaire : wireworld qui fait ce que tu cherches. Par contre, le problème avec les automates cellulaires, c'est qu'ils sont lent à exécuter en basic car il faut actualiser chaque case pour faire avancer la simulation d'un pas. C'est d'ailleurs à peu près ce que tu décris ici
Perso, je pense comme ça:
L'écran texte est composé de 21 colonnes et 7 lignes. Tu crée une matrice de la taille de l'écran donc de 7*21 (ordre de saisie Y,X) et tu y place tes éléments électroniques sous forme de nombres. Par exemple, un câble non alimenté pourrait se noter "10" et un câble alimenté "11" ainsi qu'une lampe éteinte "20" et une lampe allumée "21" etc. De la sorte, on va lire la matrice (toute ses cases) et si une case "câble" valant "10", donc étant non alimentée se trouve à coté d'une case "câble" (ou interrupteur par exemple) valant "11", donc étant alimentée, on alimente la case sur laquelle on se trouve et ainsi de suite. Cette description est assez succincte donc n'hésitez pas à demander des précisions.
Citer : Posté le 24/10/2018 19:02 | #
Ben en fait je le vois exactement comme ça, le defis est de creer une matrice avec les coordonnées de chaque élément et sont état ainsi qu'une matrice qui affiche le circuit.. et les mettres en relation..
-Planétarium 2
Citer : Posté le 24/10/2018 21:35 | #
C'est ça, en fait quand ton courant arrive sur un noeud (dipôle ou ramification), il regarde s'il y a des arêtes qui mènent à d'autres noeuds, et s'il y en a il envoie du courant dedans.
Une ramification, c'est quoi ? C'est un noeud qui possède plusieurs arêtes sortantes, c'est-à-dire qu'il y a plusieurs arêtes qui partent du noeud pour aller ailleurs (il faut que le graphe soit orienté car le courant ne passe que dans un sens). Quand tu arrives sur un noeud, tu envoies du courant dans toutes les arêtes sortantes, donc en particulier ton courant se coupe en deux.
Je te ferais bien un dessin, mais il est trop tard... désolé. x_x
WireWorld ne prend pas du tout la même approche, c'est plutôt le genre de choses qu'on fait pour de l'électronique.
Citer : Posté le 25/10/2018 08:47 | #
c'est plutôt le genre de choses qu'on fait pour de l'électronique.
Wireworld ?
-Planétarium 2
Citer : Posté le 25/10/2018 09:27 | #
Oui, wireworld pour l'électronique, mais pas pour des circuits électrique (tu connais la différence ? )
Sinon pour Wireworld, j'ai fais un programme Basic qui simule ça durant la nuit, je le post ce weekend si tu veux
Citer : Posté le 25/10/2018 10:10 | #
Mais heuuu c'etait mon idée
Mais comment tu gere chaque point rt le déplacement du courant. .. avec for ?
-Planétarium 2
Citer : Posté le 25/10/2018 13:02 | #
Ça dépend ce que tu entends par for...
En fait, je crée une matrice de 21*7, dans laquelle je stock des 0 (rien), 1 (cable), 2 (tête) et 3 (queu).
Ensuite je crée une seconde matrice de 21*7 qui stocke en (i,j) le nombre de 2 dans les huit case autour de de la case (i,j) dans la première matrice.
Enfin, je parcours la matrice 1 et je remplace en suivant les règles de l'automate (càd 0->0, 1->2 si mat 2 (i,j) egal un ou deux, 1->1 sinon, 2->3, 3->1). J'afiche, puis je recommence. Et c'est le fait de faire avancer d'une génération l'automate qui fait avancer le courant.
Bien évidemment, l'implantation est un poil plus complexe, et on peut utiliser une chaîne de caractères au lieu d'une matrice, mais l'idée reste la même.
Sinon pour ta question principale, je pense qu'effectivement, Lephenixnoir à raison pour l'utilisation de graphe.
Citer : Posté le 25/10/2018 13:16 | #
Bonjour!
j'ai pas lu les réponses par manque de temps désolé,
mais pour ma part,
j'utilise une technique qui consiste a faire deux points,
A et B (A pour le signal positif et B pour le signal négatif),
donc quatre variables (Ax, Bx, Ay et By) qui parte de la batterie et qui se déplacent si il y a un pixel allumé
( j'utilise le PxlTest)
et qui peuve se multiplier Ect...
tu peux aussi le faire avec une variable,
(que pour le signal positif) mais ça seras moins rapide.
(je sais, j'explique mal.)
au revoir et bonne continuation.
cordialement,
Manolo
Citer : Posté le 25/10/2018 14:10 | #
Mais le coeur du problème ce sont les noeuds ! Comment diviser le courant au niveau du noeud..?
-Planétarium 2
Citer : Posté le 25/10/2018 14:11 | #
En fonction de la résistance, tu prend un graphe avec des branches pondéré
Citer : Posté le 25/10/2018 14:14 | #
Ah mais ça y est, j'ai compris le problème de Disperseur.
Tu peux avoir plusieurs bouts de courant qui évoluent en même temps. Tu peux pas juste faire une boucle avec à chaque tour de boucle, « le » courant qui avance. À chaque tour de boucle, tu dois prendre tous les courants et les faire avancer d'un pas. Quelque chose comme...
/* Pour chaque courant qui se balade dans le circuit */
For 1→I To C
/* Déplacer le courant no. I dont les données sont dans une liste */
Next
WhileEnd
Citer : Posté le 25/10/2018 15:10 | #
Mais le coeur du problème ce sont les noeuds ! Comment diviser le courant au niveau du noeud..?
avec des listes.
Citer : Posté le 25/10/2018 16:52 | #
En mettan dans une liste chaque division du signal ?
-Planétarium 2
Citer : Posté le 25/10/2018 16:58 | #
Ou bien une liste avec dans chaque élément une division du signal. Ça dépend si tu as beaucoup d'information à stocker pour chaque signal.
Citer : Posté le 25/10/2018 18:52 | #
Ben electrique donc 0 ou 1..
-Planétarium 2
Citer : Posté le 25/10/2018 18:53 | #
Sa position, aussi.
Citer : Posté le 25/10/2018 19:06 | #
Du coup une matrice.. de trois lignes et d'autant de colones que de signaux distincts..
-Planétarium 2
Citer : Posté le 25/10/2018 19:10 | #
C'est une bonne idée, oui. Tu vois comment t'y prendre ?
Citer : Posté le 25/10/2018 19:15 | #
Ben je lis la matrice qui contient mon circuit, repere les positions de depart de signaux, puis je regarde si je peux propager chaque signal dans une direction et quand le signal se divise je mets les coordonnées de la ramification dans la matrice qui contient chaque position de chaque signal..
-Planétarium 2
Citer : Posté le 25/10/2018 19:22 | #
C'est bien ça, oui. Tu veux partir plutôt sur un graphe (électricité) ou sur une matrice (électronique à la wireworld) pour ton circuit ?