Rapport #88: Les circuits logiques

L'équipe de Factorio l'avait annoncé dans le rapport #66: Factorio 0.12 apportera plus de possibilité de manipulation du signal. Cette fonctionnalité est désormais terminé, et voici une présentation des possibilités offertes.


Le réseau logique (circuit network):
Le réseau logique est un réseau constitué en reliant plusieurs appareils intelligents entre eux via des fils rouge ou des fils vert. Le réseau logique contient une liste d'objets et leurs quantités respectives (par exemple: 5 minerais de fer, 10 plaques de cuivre, etc). Actuellement (dans la version 0.11 de Factorio), seul les bras intelligents et les coffres intelligents sont connectable sur un réseau logique.

Les combinateurs sont de nouvelles entités qui se connectent aux réseaux logiques afin de manipuler les données qu'il contient. Le but est d'ajouter d'autres entités connectables au circuit logique, dont nottament:
  • Les lumières (qui peuvent être allumés, éteintes, ou afficher des couleurs)
  • Des interrupteurs (on/off)
  • Les accumulateurs et les Poste électrique (pour pouvoir les activer ou les désactiver)
  • Les réservoirs
  • Les station feroviaire: Pour permettre de choisir la destination d'un train
  • Les portails (Pouvoir controller leur ouverture/fermeture)
Afin de faciliter leur utilisation, les circuits logiques ont été légèrement modifié:
  • Il est maintenant possible de connecter directement 2 entités entre elles via des fils rouge ou des fils vert, sans passer obligatoirement par un poteau électrique
  • Lorsque vous connectez les 2 réseaux (rouge et vert) sur un même recepteur, leurs valeurs sont additionnées, et cette somme est considéré comme l'unique signal par le recepteur.

Les combinateurs:
Les combinateurs permettent de traiter les informations circulants sur le réseau logique. Pour le moment il y a 3 type de combinateurs:
  • Les combinateurs arithmetiques
  • Les combinateurs décideurs
  • Les combinateurs constant

Les combinateurs arithmetiques:


Ce combinateur possède une entrée et une sortie. Il permet d'éffectuer des opérations arithmetiques sur certaines valeurs.

Exemple:

Ici le combinateur va additionner le nombre de minerai de cuivre avec le nombre de minerai de fer présent dans le circuit logique, et stoquera le résultat de l'opération dans le compteur de nombre de fiole de science de niveau 1 (fiole rouge). Cette valeur pourrait ensuite être réutilisé ultérieurement pour faire d'autres calculs.

Il est aussi possible de spécifier une valeur constante comme 2ème membre de l'opération, par exemple:


Ce combinateur a 2 entré: rappellez-vous que si 2 circuits sont connecté en entrée d'un recepteur, leurs valeurs seront simplement additionnées et le recepteur ne vera qu'un seul réseau logique.

Les combinateurs décideurs:


Ce combinateur va prendre des décisions en fonction de la valeur de ses entrées. Il fonctionne un peu de la même manière que les bras intelligents, il est capable de comparer la quantité qu'un item avec une valeur numérique (>, < ou =):

Si la condition est vrai, il est possible de choisir la valeur de sortie:
Soit sortir une valeur constante de 1 pour l'objet choisit, soit renvoyer tout simplement sa valeur actuelle. Dans tous les cas, si la condition est fausse, la valeur renvoyé est 0.

Certaines personnes ont fait remarqué qu'il serait encore mieux de pouvoir choisir la valeur constante (à la place de "1"). L'équipe de factorio a répondu qu'ils ne souhaitent pas ajouter cette option, car cela complexifierai encore plus le système. D'autant qu'il est facile de mettre un multiplicateur en sortie de ce combinateur pour afin d'avoir la valeur que vous souhaitez.

Mieux que les bras intelligent, le combinateur décideur est également capable de comparer 2 quantités entre elle:

Dans cette exemple, si le nombre de circuit électronique disponible dans le réseau logique est inférieur au nombre de circuit avancé disponible, alors le combinateur envera en sortie un nombre de fiole verte égal à 1, sinon sa valeur sera à 0.

À noter que ce comportement a été intégré pour les bras intelligents également, c'est à dire que dans la version 0.12 de Factorio il sera également possible de comparer les quantités de 2 objets directement dans les bras intelligents.


Les combinateurs constants:

Ces combinateurs sont les plus simple, ils envoient tout simplement un signal prédéfinit sur le réseau logique. Il fonctionne de manière équivalente à un coffre intelligent, sauf qu'il n'est pas neccessaire d'y mettre des objets dedants:



Utilisations avancées des combinateurs:
A partir de ces 3 éléments de base il est possible de créer des circuits bien plus évolué, par exemple des portes logiques, des cellules mémoires, ou encore des temporisations.
  • Les portes logiques:
Il est très facile de manipuler des données binaires avec les combinateurs. Prenons un exemple, les fiole rouge seront utilisé comme signal: 1 fiole signifie "vrai", 0 fiole signifie "faux".
Les 2 signaux peuvent être les 2 fils rouges et vert, contenant chacun 0 ou 1 fioles rouges (signals "faux" ou "vrai").
Souvenez-vous: lorsque 2 réseaux logiques (le rouge et le vert) sont connecté, leur valeur sont additionné (donc si les 2 quantités de fioles rouges sont à 1 sur chacun des circuits logiques, le combinateur vera une valeur à 2).
À partir de ces considérations, il est possible de recréer simplement des portes logiques:

Porte "ET":


Porte "OU":


Porte "OU Exclusif":


Porte "NON" (avec une seul entrée):


Notez que dans tous les cas, la sortie sera uniquement 0 ou 1, nous gardons donc un signal binaire.

  • Les cellules mémoires:
Il est également possible de créer des mémoires, pour cela il suffit de raccorder le réseaux de sortie sur l'entrée d'un combinateur décideur. Voici un exemple simple avec une bascule RS:


La bascule RS est une mémoire avec 2 signaux: SET (mise à 1 de la mémoire) et RESET (mise à 0 de la mémoire).
Ici la fonction SET est appliqué avec une fiole rouge, et la fonction RESET avec une fiole verte.
 
  • Les temporisations:
En reliant la sortie d'un combinateur sur son entrée, il est possible de faire un compteur très rapide (increment sur chaque tick). De cette manière il est possilbe de faire une temporisation, voir un oscillateur à fréquence personnalisée:



Utilisations encore plus avancées !
Grace à tous ces élements, il devient possible de créer dans factorio des systèmes logiques complexes en combinant les combinateurs entre eux. Avec l'augmentation du nombre de capteurs et d'actionneurs, il deviendra possible de faire beaucoup de chose, quelques exemples:
  • Afficher une barre de progression à l'aide de lampe pour afficher la quantité de ressources qu'il vous reste dans vos coffres
  • Quand vous aurez besoin de ressource dans une base secondaire, un circuit logique pourra informer la demande à votre base principale pour qu'elle s'occupe de charger un train, et de l'envoyer vers votre base secondaire.
  • Si vous avez 4 sites d'extraction de pétrole, un réseau logique informera votre base du site qui à le plus de pétrole disponible pour y envoyer un train en priorité.
Ou même pourquoi pas faire ce genre d'afficheur à LED:



Autres implications:
L'ajout des combinateurs dans Factorio aura d'autres implications dans le jeu:
  • Les bras intelligents seront capble de comparer les quantités de 3 items entre eux, et non plus uniquement une quantité avec un nombre fixe.
  • Les bras intelligents ne pourront plus avoir 2 conditions (fils vert et fils rouge), ils n'en auront qu'une seule, qui sera la somme des valeurs des 2 réseaux.
  • Vous l'avez peut être constaté, lors de la créations de circuits logiques, les objets sont utilisés comme des variables, sans aucun rapport avec vos stocks de ces objets. Afin de faciliter la programmation des circuits logiques, l'équipe de Factorio a prévu d'ajouter de faux objets appellés "Signal 1", "Signal 2", "Signal 3", etc., "Signal Rouge", "Signal Vert", etc. et "Signal A", "Signal B", "Signal C", etc. De plus, un signal spécial nommé "Tout" aura une signification spéciale dans les combinateurs, par exemple "sortir toutes les valeurs supérieurs à 100"

Posté par Tronics, le 30/05/2015 à 4:53.Source
Validé par Tronics. Dernière modification par Tronics le 30/05/2015 à 19:16.
Commentaires de la news Factorio
Rapport #88: Les circuits logiques :
TheRedCube (anonyme)
le 30/05/2015 à 20:12
Merci pour cette new Tronics (Oui très complet comme com je sais)
Tronics (administrateur)
le 30/05/2015 à 22:57
De rien TheRedCube :-) Et pas grave, un com ça fait toujours plaisir :-)
Tronics (administrateur)
le 31/05/2015 à 16:17
Perso j'ai pas trop compris le fonctionnement de la temporisation, si quelqu'un peut expliquer je suis preneur.

Pour la bascule RS, ça j'ai bien compris, mais j'ai pas trop expliqué dans la news. Si vous souhaitez plus d'explication sur le fonctionnement, je peux vous le faire
Strange
le 31/05/2015 à 21:11
Il faudrat tester en jeux, mais cela dois être une cloque s'actualisant en boucle du genre "Je suis à 1 donc je passe à 0, et non je suis à 0 donc je passe à 1". Après, cela risque de faire des lags, mais vu leur motivation à optimisé pour éviter les lags, cela pourrait être jouable.

Pour ma part, je verrai bien une rubrique Schéma pour avoir les infos du genre :
-Combien d'Accumulateur pour un Panneau Solaire (avec une petite explication des calcules)?
-Combien de bras et de tapis pour décharger (ou charger) un train le plus vite possible?
-....

A oui, merci beaucoup pour ce site.
damned
le 20/03/2016 à 07:51
Merci pour le partage d'informations sur factorio. Les francophones sont assez rare sur ce jeu.

Pour les combinatoires, je pense avoir compris le raisonnement, par contre la mise en application il va falloir tester
JEROUAST
le 25/03/2016 à 08:58
Merci pour cette info.
Je vais essayer de mettre en application.
A suivre

Vous devez être connecté pour laisser un commentaire.