<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eisberg</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eisberg"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Eisberg"/>
	<updated>2026-05-17T10:23:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Buffer_chest/de&amp;diff=211436</id>
		<title>Buffer chest/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Buffer_chest/de&amp;diff=211436"/>
		<updated>2025-02-16T10:38:21Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: Typo und Kommasetzung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Buffer chest}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Pufferkiste&#039;&#039;&#039; ist ein großer fortschrittlicher Lagerbehälter, der Teil des {{TransLink|Logistic network}}s ist. Sie kombiniert die Funktion einer {{TransLink|Requester chest}} und einer [[passive provider chest/de|passiven Anbieterkiste]]. Der Zweck der Pufferkiste ist es, als &amp;quot;Zwischenkiste&amp;quot; für den Transport von Gegenständen aus {{TransLink|Provider chest}}n zum Spieler, für {{TransLink|Construction robot}} oder für Anfragekisten zu dienen. In {{L|Space Age}}{{SA}} werden auch Raketensilos von Pufferkisten bedient.&lt;br /&gt;
&lt;br /&gt;
Wie Anfragekisten können Pufferkisten so konfiguriert werden, dass sie eine bestimmte Anzahl von bis zu 1000 Arten von Gegenständen aus dem Logistiknetz anfordern. {{TransLink|Logistic robot}} bringen dann die angegebenen Gegenstände aus Anbieterkisten oder {{TransLink|Storage chest}}n, bis die Anfrage erfüllt ist. Außerdem werden, wie bei einer passiven Anbieterkiste, alle in einer Pufferkiste enthaltenen Gegenstände für Bauroboter, Logistikanfragen des Spielers und Anforderungskisten verfügbar gemacht, sofern dort das Kontrollkästchen &amp;quot;Von Pufferkisten anfragen&amp;quot; aktiviert ist. Gegenstände in einer Pufferkiste werden jedoch &#039;&#039;&#039;nicht&#039;&#039;&#039; verwendet, um Anfragen aus anderen Pufferkisten zu erfüllen.&lt;br /&gt;
&lt;br /&gt;
Man kann mit {{Keybinding|shift|rmb}} und {{Keybinding|shift|lmb}} [[Copy and paste/de#Entity settings|den Bauplan von einer Montagemaschine auf eine Pufferkiste kopieren]]. Die Pufferkiste wird damit so konfiguriert, dass sie so viele Gegenstände anfragt, dass die Maschine für 30 Sekunden arbeiten kann.&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
File:Fff-203-buffer-chest-2.png|Die Pufferkiste kann als zentrale Versorgungsstelle für den Spieler dienen,&lt;br /&gt;
File:Fff-203-buffer-chest-3.png|... oder als mehr dezentrale Versorgung für den Bau.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Galerie ==&lt;br /&gt;
[[File:buffer chest gui.png|thumb|none|300px|GUI der Pufferkiste.]]&lt;br /&gt;
&lt;br /&gt;
== Errungenschaften ==&lt;br /&gt;
{{Achievement|logistic-network-embargo}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* {{TransLink|Logistic network}}&lt;br /&gt;
* {{TransLink|Circuit network}}&lt;br /&gt;
* [https://www.factorio.com/blog/post/fff-203 Friday Facts #203 - Logistic buffer chest]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Logistic network}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Buffer_chest&amp;diff=211435</id>
		<title>Buffer chest</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Buffer_chest&amp;diff=211435"/>
		<updated>2025-02-16T07:57:40Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: Typo &amp;quot;double wording&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Buffer chest}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;buffer chest&#039;&#039;&#039; is a large advanced storage item that is part of the [[logistic network]], and combines the functions of both a [[requester chest]] and a [[passive provider chest]]. The buffer chest&#039;s purpose is to be an &amp;quot;in-between&amp;quot; chest for ferrying items from [[provider chest]]s to the player, [[construction robot]]s, or requester chests. In [[Space Age]]{{SA}}, rocket silos are also served by buffer chests.&lt;br /&gt;
&lt;br /&gt;
Like requester chests, buffer chests can be configured to request a specified number of up to 1000 types of items from the logistic network. [[Logistic robot]]s will then bring the specified items from provider chests or [[storage chest]]s until the request is met. In addition, similar to a passive provider chest, any items contained in a buffer chest are made available to construction robots, logistic requests from the player, and requester chests that have the &amp;quot;Request from buffer chests&amp;quot; checkbox checked. However, items in a buffer chest are &#039;&#039;&#039;not&#039;&#039;&#039; used to fulfill requests from other buffer chests.&lt;br /&gt;
&lt;br /&gt;
By using {{Keybinding|shift|rmb}} and {{Keybinding|shift|lmb}} to [[Copy and paste#Entity settings|copy-paste a recipe from an assembling machine to a buffer chest]], the buffer chest is automatically configured to request enough ingredients for 30 seconds of continuous crafting.&lt;br /&gt;
&lt;br /&gt;
== Uses ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
File:Fff-203-buffer-chest-2.png|The buffer chest can act as a central supply point to the player,&lt;br /&gt;
File:Fff-203-buffer-chest-3.png|... or as a more localized supply for construction.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
[[File:buffer chest gui.png|thumb|none|300px|Buffer chest GUI.]]&lt;br /&gt;
&lt;br /&gt;
== Achievements ==&lt;br /&gt;
{{Achievement|logistic-network-embargo}}&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{history|2.0.7|&lt;br /&gt;
* Buffer chests now use logistics groups.&lt;br /&gt;
* New option to trash unrequested items.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.18.27|&lt;br /&gt;
* Increased logistic filter count from 12 to 30.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.17.0|&lt;br /&gt;
* New animated graphics.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.16.21|&lt;br /&gt;
* Requesters requesting from buffer chests (which includes players) have higher priority than other requesters.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.16.8|&lt;br /&gt;
* Requester chests can now request stuff from buffer chests as was originally intended.&lt;br /&gt;
* Buffer chests are provided items only if all requester chests are satisfied for that specific item.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.16.0|&lt;br /&gt;
* Introduced&lt;br /&gt;
* Copy Paste from assembler to requester chest now scales with assembler speed and recipe crafting time.}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Logistic network]]&lt;br /&gt;
* [https://www.factorio.com/blog/post/fff-203 Friday Facts #203 - Logistic buffer chest]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Logistic network}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208905</id>
		<title>Tutorial:Combinator tutorial/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208905"/>
		<updated>2025-01-09T15:35:00Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: /* Einfaches Flipflop */ Typo in Überschrift&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Dies ist ein Tutorial für &#039;&#039;&#039;Fortgeschrittene&#039;&#039;&#039;. Anfänger sollten das {{TransLink|Tutorial:Circuit network cookbook}} für Beispiele und die {{TransLink|Circuit network}} Seite für einen Überblick über das Schaltungsnetz lesen. Dieses Tutorial setzt ein grundlegendes Verständnis von Schaltungen voraus und behandelt fortgeschrittenere Themen wie SR-Flipflops, Speicherzellen und Taktgeber.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Logikschaltungen mit Kombinatoren werden aufgebaut, indem man Ausgänge so mit Eingängen verknüpft, dass die erwünschte Operation durchgeführt wird. Komplexere Logik erfordert eine Vielzahl von Kombinatoren, aber einige sehr nützliche Grundfunktionen können bereits mit nur einer Handvoll Kombinatoren erreicht werden. Kombinator-Logik funktioniert, weil Factorio alle Aktualisierungen genau &#039;&#039;60 mal pro Sekunde&#039;&#039; durchführt, so dass Kombinatoren in einem Takt-Schritt ihre Logik ausführen und im nächsten Takt die resultierenden Ausgabewerte summiert werden oder Entscheidungen wirksam werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Logikwerte von Kombinatoren berechnet werden, werden die Ausgaben erst im nächsten Schritt vom Schaltungsnetz erkannt. Wenn also ein {{TransLink|Decider combinator}} verwendet wird, um eine bestimmte Eingangsbedingung zu erkennen, wird sein Ausgangswert erst im nächsten Schritt im Schaltungsnetz wirksam. &#039;&#039;&#039;Es ist wichtig, dieses Verhalten im Hinterkopf zu behalten. Es kann zu Sequenz-Fehlern und erheblichen Verzögerungen führen, wenn mehrere Kombinatoren in Reihe geschaltet sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das Schaltungsnetz verhält sich wie ein Drahtbus in der Elektronik. Es überträgt die Informationen aus allen angeschlossenen Drähten, d. h., wenn gleiche Signale auf einem Draht sind, werden diese automatisch addiert. Wenn das Signal unterschiedlich ist, wird es auch über diesem Draht übertragen, aber als unterschiedliches Signal.&lt;br /&gt;
&lt;br /&gt;
Beim Querverbinden von Kombinatoren ist es eine gute Praxis, die unbenutzte Farbe zum Querverbinden zu verwenden. Dadurch werden die Eingangs- und Ausgangsnetzwerke aufgeteilt und es wird verhindert, dass unerwünschte Eingänge versehentlich mit einem größeren Schaltungsnetz verbunden werden. Kombinatoren summieren die roten und grünen Eingänge vor der Berechnung, so dass bei der Rückverdrahtung des Ausgangs mit dem Eingang beide Farben verwendet werden können. In den meisten Fällen ist es jedoch sinnvoller, die entgegengesetzte Farbe des Drahtes zu verwenden, damit der resultierende Ausgang und Eingang nicht gestört wird.&lt;br /&gt;
&lt;br /&gt;
== Virtuelle Signale ==&lt;br /&gt;
&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|right|Die verfügbaren virtuellen Signale für das Schaltungsnetz]]&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Standard-Signalen für die Gegenstände enthält das Schaltungsnetz von Factorio auch eine Reihe von Signalen, die keinen bestimmten Spielgegenstand repräsentieren. Stattdessen dienen diese virtuellen Signale als benutzerdefinierte Kanäle für das Schaltungsnetz. Sie haben die Bedeutung, die der Benutzer ihnen zuweisen möchte. Derzeit gibt es 48 virtuelle Signale, die über das Schaltungsnetz gesendet werden können:&lt;br /&gt;
&lt;br /&gt;
* Die 36 alphanumerischen Zeichen (A-Z, 0-9)&lt;br /&gt;
* Neun Farben: Rot, Grün, Blau, Gelb, Magenta, Cyan, Weiß, Grau und Schwarz&lt;br /&gt;
* Drei Symbole: Ein Häkchen, ein Informationsbuchstabe &#039;i&#039; und ein kleiner, weißer Punkt&lt;br /&gt;
&lt;br /&gt;
=== Logische Signale ===&lt;br /&gt;
&lt;br /&gt;
Es gibt drei zusätzliche virtuelle Signale, die als &#039;&#039;Logiksignale&#039;&#039; bezeichnet werden. Im Gegensatz zu anderen Signalen können sie nicht über das Schaltungsnetz gesendet werden; stattdessen wenden sie zusätzliche Logik auf Kombinatoren an, die deren Verhalten verändern. Insbesondere fungieren diese Logiksymbole als Platzhalter, also als spezielle Signale, die &#039;&#039;&#039;null oder mehr&#039;&#039;&#039; beliebige Signale repräsentieren, anstatt ein einzelnes diskretes Signal darzustellen.  Das Schaltungsnetz von Factorio implementiert drei Arten von Platzhaltern.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Alles Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_everything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Alles&#039;&#039; wird bei Kombinatoren für Entscheidungen verwendet. Sein genaues Verhalten hängt davon ab, ob er als Eingang oder als Ausgang verwendet wird:&lt;br /&gt;
* &#039;&#039;&#039;Eingabe&#039;&#039;&#039;: Gibt wahr zurück, wenn &#039;&#039;alle&#039;&#039; Eingangssignale die Bedingung erfüllen, oder wenn es &#039;&#039;keine&#039;&#039; Eingangssignale gibt. Andernfalls gibt er falsch zurück.&lt;br /&gt;
* &#039;&#039;&#039;Ausgang&#039;&#039;&#039;: Gibt &#039;&#039;alle&#039;&#039; Eingangssignale ungleich Null zurück.&lt;br /&gt;
&lt;br /&gt;
Wenn er als Eingabe verwendet wird, kann man sich den Platzhalter &#039;&#039;Alles&#039;&#039; als logisches UND oder als [[:wikipedia:de:Allaussage|Allaussage]] vorstellen. Wenn er als Ausgang verwendet wird, wirkt er wie ein &amp;quot;Echo&amp;quot; oder &amp;quot;Dump&amp;quot; der Eingangssignale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Kann als Ausgang verwendet werden, solange die Eingabe nicht ein &#039;&#039;Jeweils&#039;&#039; Platzhalter ist.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Irgendetwas Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_anything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Irgendetwas&#039;&#039; wird auch bei Kombinatoren für Entscheidungen verwendet.&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mindestens einem&#039;&#039;&#039; Eingangssignal gibt er wahr zurück, wenn &#039;&#039;irgendein&#039;&#039; Eingangssignal die Bedingung erfüllt. Wenn kein Signal die Bedingung erfüllt, oder keine Eingangssignale vorhanden sind, wird falsch zurückgegeben. Von diesem Verhalten her kann man sich den &#039;&#039;Irgendetwas&#039;&#039;-Platzhalter als logisches ODER oder als [[:wikipedia:de:Existenzaussage|Existenzaussage]] vorstellen.&lt;br /&gt;
&lt;br /&gt;
Wenn &#039;&#039;irgendetwas&#039;&#039; sowohl als Eingabe als auch als Ausgabe in einem Kombinator für Vergleiche verwendet wird, gibt es ein willkürlich gewähltes Signal aus denen zurück, die die Bedingung erfüllen.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Jeweils Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_each.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Jeweils&#039;&#039; wird sowohl mit Kombinatoren für Entscheidungen als auch mit {{TransLink|Arithmetic combinator|Kombinatoren für Berechnungen}} verwendet und verhält sich im Vergleich zu den beiden vorherigen etwas anders. Im Allgemeinen führt er eine Kombinator-Aktion auf jedes Signal &#039;&#039;&#039;einzeln&#039;&#039;&#039; aus, wobei die genaue Aktion davon abhängt, wie er verwendet wird und in welcher Art er von Kombinator verwendet wird. Er kann als Eingang verwendet werden und ebenfalls als Ausgang, aber &#039;&#039;nur, wenn er auch als Eingang verwendet wird&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Entscheidungen&#039;&#039;&#039; vergleicht der Platzhalter &#039;&#039;Jeweils&#039;&#039; jedes Eingangssignal einzeln mit der Kombinatorbedingung und gibt jedes Signal zurück, das die Bedingung erfüllt. Die Art und Weise, wie der Platzhalter &#039;&#039;Jeweils&#039;&#039; Signale zurückgibt, wenn er als Eingang verwendet wird, hängt davon ab, ob er auch als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingabe&#039;&#039;&#039;: Summiert jedes Eingangssignal, das die Bedingung erfüllt, und gibt je nach Ausgabeeinstellungen entweder eine Anzahl der erfüllten Bedingungen oder eine Summierung der Eingangswerte als Ausgangssignal zurück.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Gibt jedes Signal zurück, das die Bedingung erfüllt hat, wobei die Werte von den Ausgangseinstellungen abhängen.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Berechnungen&#039;&#039;&#039; wird die vorgesehene arithmetische Operation individuell auf jedes Eingangssignal angewendet, und ähnlich wie beim Kombinator für Entscheidungen hängt das zurückgegebene Signal davon ab, ob der Platzhalter &#039;&#039;Jeweils&#039;&#039; als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingang&#039;&#039;&#039;: Das Ergebnis jeder Operation auf den Eingangssignalen wird summiert und als Ausgangssignal zurückgegeben.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Jedes Eingangssignal wird mit dem Ergebnis der angegebenen Operation darauf angewendet zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Jeweils&#039;&#039;&#039;-Platzhalter ist also deutlich komplexer als die beiden anderen Platzhalter, bietet aber im Gegenzug für seine Komplexität eine gute Leistung.&lt;br /&gt;
&lt;br /&gt;
== Eingangs-Isolator &amp;amp; Gatter ==&lt;br /&gt;
Ein Kombinator für Berechnungen, der auf (Eingabe: Jeweils + 0, Ausgabe: Jeweils) gesetzt ist, kann zum Vertauschen von Drahtfarben und als Isolator verwendet werden, um zu verhindern, dass nachgeschaltete Logik in die Eingänge des Schaltungsnetzes zurückfließt.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Entscheidungen, der auf (Ausgabe: Alles, Eingang → Ausgang) eingestellt ist, fungiert ebenfalls als Isolator, solange die eingestellte Logikbedingung wahr ist. Dieser kann auch selektiv Eingänge nur dann durchlassen oder &amp;quot;steuern&amp;quot;, wenn dies gewünscht ist. Dies könnte verwendet werden, um entfernte Bahnhöfe sequentiell nach ihrem Kisteninhalt abzufragen und nur gewünschte Bahnhöfe einzuschließen.&lt;br /&gt;
&lt;br /&gt;
== Set/Reset Flipflop-Schalter ==&lt;br /&gt;
Manchmal benötigt man etwas, das einen Trigger auf eine bestimmte Menge setzt (SET), und dann so lange eingeschaltet BLEIBT, bis diese Menge einen anderen Wert erreicht (den RESET-Wert). Dafür benötigt man einen Kombinator für Entscheidungen und einen Kombinator für Berechnungen (Für komplexere mehrkanalige Bedingungen können auch zwei Kombinatoren für Entscheidungen und ein {{TransLink|Constant combinator}} verwendet werden).&lt;br /&gt;
&lt;br /&gt;
Man stellt den ersten Kombinator für Entscheidungen auf die gewünschte SET-Bedingung ein, so dass er dann eine 1 ausgibt. Dessen Ausgang wird mit dem Eingang eines Kombinators für Berechnungen verbunden, der die Eingabe mit dem Bias-Wert multipliziert, der die Differenz zwischen dem Set- und dem Reset-Wert darstellt. Sein Ausgang wird wiederum mit dem Eingang des Kombinators für Entscheidungen verbunden, so dass der Eingang des Entscheiders dem Ausgang des Berechners entspricht.&amp;lt;br&amp;gt;&lt;br /&gt;
Immer, wenn die eingestellte Bedingung erreicht wird, gibt der Kombinator für Entscheidungen eine &#039;1&#039; aus, und der Bias-Wert im Kombinator für Berechnungen wird angewendet. Dadurch wird der Ausgang so lange &#039;wahr&#039; gehalten, bis der Wert wieder unter den Rücksetzpunkt fällt.&lt;br /&gt;
&lt;br /&gt;
In diesem speziellen Beispiel läuft die Pumpe, wenn das Leichtöl 20000 erreicht, und schaltet sich aus, wenn es 5000 erreicht:&lt;br /&gt;
&lt;br /&gt;
[[File:SR_latch.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Beispiel für eine Dampf-Reserve mit genauer Beschreibung und Erklärung gibt es hier:&amp;lt;br&amp;gt;[[Tutorial:Circuit_network_cookbook/de#RS-Flipflop_-_Version_mit_einem_Kombinator_f.C3.BCr_Entscheidungen|RS-Flipflop - Version mit einem Kombinator]]&lt;br /&gt;
&lt;br /&gt;
== Intelligente Zugbeladung ==&lt;br /&gt;
Dies löst das Problem, dass die Beladung von Kisten mit einem bestimmten Gegenstand in aller Regel ungleicher und langsamer erfolgt als die Beladung von Zügen.&lt;br /&gt;
&lt;br /&gt;
Zum Aufbau wird ein Kombinator für Berechnungen sowie rotes und grünes Signalkabel benötigt. Zunächst verbinden wir alle verwendeten Kisten mit dem Eingang des Kombinators für Berechnungen. Im Kombinator für Berechnungen wird als Berechnung &#039;&#039;&#039;Gegenstand / -Anzahl der Kisten&#039;&#039;&#039; und als Ausgabe &#039;&#039;&#039;Gegenstand&#039;&#039;&#039; eingestellt. Dies ergibt den Durchschnitt der Anzahl der Gegenstände in den Kisten, mit einem negativen Vorzeichen. Als letztes werden alle verwendeten Greifarme mit andersfarbigem Signalkabel mit dem Ausgang des Kombinators verbunden. Die Greifarme so einstellen, dass sie aktivert werden, wenn &#039;&#039;&#039;Gegenstand &amp;lt; 1&#039;&#039;&#039; ist.&lt;br /&gt;
&lt;br /&gt;
Eine anschaulichere Darstellung sowie Fragen zum Design finden sich in einem reddit-Post: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station].&lt;br /&gt;
&lt;br /&gt;
Erläuterung, warum das funktioniert:&lt;br /&gt;
Der Kombinator berechnet die durchschnittliche Anzahl der Gegenstände in den Kisten als negative Zahl. Der Kisteninhalt des Greifarms ist positiv, und da das Schaltungsnetz implizit alle Eingaben addiert, ergibt sich bei der Addition des negativen Durchschnitts die Differenz aus Durchschnitt und Anzahl Gegenstände in der Kiste. Ist die Differenz kleiner als 1, also 0 oder negativ, befinden sich genauso viele oder weniger Gegenstände in der Kiste als der Durchschnitt, d.h. der Greifarm wird aktiviert. Anders herum ausgedrückt: ist die Differenz 1 oder größer, dann befinden sich mehr Gegenstände in der Kiste als der Durchschnitt und der Greifarm bleibt deaktiviert.&lt;br /&gt;
&lt;br /&gt;
== Speicher ==&lt;br /&gt;
Um beispielsweise einen Zähler zu realisieren, aber auch für komplexere Schaltungen, benötigt man einen Speicher, der die verarbeiteten Werte zwischenspeichert.&lt;br /&gt;
Hierzu setzen wir einen Kombinator für Entscheidungen ein, bei dem der Ausgang an den Eingang angeschlossen wird und als Kriterium größer als 0 (für positive Werte) eingestellt hat. Solange alle anderen Eingaben im Netz 0 sind, wird damit der Ausgabewert erhalten.&lt;br /&gt;
Jeder Eingang ungleich 0 erzeugt einen Grundtakt. In jedem Zyklus wird der gespeicherte Wert um die Summe aller angeschlossenen Eingangswerte erhöht. Ein einzelner Impuls eines Eingangs bewirkt somit eine einmalige Inkrementierung um den gepulsten Wert. Ein Rücksetzen des Zählers auf 0 erfolgt immer dann, wenn die eingestellte Bedingung nicht mehr erfüllt ist, oder wenn ein negativer Impuls in Höhe des Eingangswertes auftritt.&lt;br /&gt;
&lt;br /&gt;
== Taktgeber ==&lt;br /&gt;
[[File:Timer.png|thumb|right|377px|Ein grundlegender Taktgeber. Signal 1 wird Tick für Tick erhöht bis 30 erreicht sind, dann beginnt er wieder bei 1.]]&lt;br /&gt;
Ein Taktgeber entsteht, wenn man den Ausgang eines Kombinators mit seinem eigenen Eingang verbindet, so dass jeder Zyklus den Zählerstand wieder an den Eingang zurückgibt. Es kann entweder der Kombinator für Berechnungen oder der Kombinator für Entscheidungen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Berechnungen, der mit sich selbst verbunden ist, ist lustig anzusehen und läuft endlos durch. Es erfordert zusätzliche Steuerlogik zum Zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
Für einen selbstrückstellenden Taktgeber wird nur ein einziger Kombinator für Entscheidungen benötigt, dessen Ausgang mit dem Eingang verbunden ist und der mit kleiner als (&amp;lt;) und Eingabe → Ausgabe konfiguriert ist. Wenn dann ein Kombinator für Konstanten an den Eingang angeschlossen wird, zählt er jeden Zyklus um den Wert des Kombinators für Konstanten hoch, bis der eingestellte Wert in der Bedingung erreicht ist, und gibt dann eine 0 aus, die mit dem Kombinator für Konstanten summiert wird und den Prozess zurücksetzt.&lt;br /&gt;
&lt;br /&gt;
Die Taktsequenz enthält keine 0. Sie beginnt bei dem im Kombinator für Konstanten eingestellten Wert und geht bis zu dem Wert, der schließlich dazu führt, dass die Bedingung falsch ist. Ein Kombinator für Berechnungen kann die Taktsequenz ändern, aber man muss daran denken, dass seine Ausgaben einen Zyklus später als die Eingangswerte des Taktzyklus auftreten.&lt;br /&gt;
&lt;br /&gt;
Ein Taktgenerator, der nur einmal zählt, kann mit dem folgenden Aufbau erstellt werden:&lt;br /&gt;
&lt;br /&gt;
[[File:Onetime_Clock.png|thumb|none|360px|Einmaliger Taktgeber. Läuft bis T=Z+1. Rücksetzen über R&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
== Impulsgeneratoren ==&lt;br /&gt;
&lt;br /&gt;
Wenn man einen zusätzlichen Kombinator für Entscheidungen (=) an den Ausgang eines einfachen Taktgebers anschließt, kann man man ein Impulsgenerator bauen, der jedes Mal, wenn der Takt die eingestellte Bedingung durchläuft, einen einzelnen Puls am Ausgang ausgibt. Jeder beliebige Ausgangswert kann verwendet werden, entweder direkt von der Taktsequenz (Eingang → Ausgang), eine 1, oder ein Wert auf einem separaten Logikkanal des Schaltungsnetzes, wie er von einem Kombinator für Konstanten gesetzt wird, oder vom Schaltungsnetz selbst.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PulseGen.png|500px]]&lt;br /&gt;
*&#039;&#039;Der Wert 1 kann als beliebige positive ganze Zahl geschrieben werden, solange er innerhalb der Grenzen des Taktgenerators liegt.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Mit obigem Taktgenerator würde dieses Licht jeden 1. Tick pulsieren, nachdem der Taktgeber 30 Ticks erreicht hat. Das bedeutet, dass es 1/30 einer Sekunde pulsiert, da Factorio Schaltungen 60 Mal pro Sekunde aktualisiert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Zähler ==&lt;br /&gt;
Ein Zähler wird verwendet, um eine Anzahl von Eingangsereignissen zu zählen und die Summe dieser Zählung auszugeben. Jeder pulsierende Eingang in einen Kombinator für Entscheidungen, der als Eingang → Ausgang konfiguriert und Ausgang und Eingang verbunden hat, erzeugt einen Zähler. Dieser Eingang muss zu allen anderen Zeiten 0 sein, sonst läuft der Kombinator wie eine Uhr durchgängig.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird dazu ein Impulsgenerator verwendet. Schaltet man mehrere Kombinatoren für Entscheidungen mit sequentiellen Bedingungen, die als Isolator dienen, mit einem Taktgeber und einem Impulsgenerator zusammen an den Eingang eines Zählers, kann man die Inhalte der einzelnen Kombinatoren abfragen und zählen.&lt;br /&gt;
&lt;br /&gt;
== Logikgatter ==&lt;br /&gt;
&lt;br /&gt;
Einige Logikgatter funktionieren nur mit booleschen Werten, bei denen die Eingänge entweder 0 oder 1 sind.&lt;br /&gt;
Andere Logikgatter funktionieren auch mit anderen Werten, z.B. 2.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Eingebaut&#039;&#039;&#039;===&lt;br /&gt;
Der Kombinator für Berechnungen hat eingebaute OR-, XOR- und AND-Operatoren.&lt;br /&gt;
Diese arbeiten bitweise, d. h. sie führen die Operation auf jedem Bit der Zahl im Binärformat aus und geben das Ergebnis zurück.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für den bitweisen AND-Operator:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 4  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 3  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 30  || 10&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 40  || 8&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn die Eingänge nur aus booleschen Werten (1 oder 0) bestehen, können die Operatoren des Kombinators für Berechnungen als Logikgatter verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Monadisches NOT&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOT.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres OR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:OR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingängen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:AND.png|530px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Berechnungen funktioniert für nicht-boolesche Werte und gibt nicht-boolesche Werte zurück, wenn sie als Eingabe gegeben werden, aber nur, wenn beide Werte nicht 0 sind.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Entscheidungen funktioniert nur für boolesche Werte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;1&amp;quot; auf 1 weniger als die Anzahl der Eingänge oder die angezeigte &amp;quot;2&amp;quot; auf die Anzahl der Eingänge geändert wird, wie unten für ein ternäres UND gezeigt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Ternäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:TrinaryAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Eingang 3!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NAND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur für boolesche Eingangswerte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;2&amp;quot; in die Anzahl der Eingänge geändert wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XNOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingabewerten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Speicherzellen ==&lt;br /&gt;
&lt;br /&gt;
=== Einfaches Flipflop ===&lt;br /&gt;
&lt;br /&gt;
Wenn man den Kombinator in einer Schleife mit sich selbst verbindet, muss man andere Kabelfarbe verwenden als die Haupteingänge oder -ausgänge.&lt;br /&gt;
&lt;br /&gt;
[[File:SimpleLatchv2.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Ausgang 1!!Eingang 1!!Eingang 2!! Ausgang 1 (t+1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;Ausgang 1 ist die grüne Schleife, die im Bild zu sehen ist. Sie trägt den zu speichernden Wert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Eingang 1 ist Set, und Eingang 2 ist Reset.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Positive Zelle ===&lt;br /&gt;
&lt;br /&gt;
Zelle zum Speichern eines positiven Wertes, mit Reset-Unterstützung:&lt;br /&gt;
&lt;br /&gt;
[[File:AdvancedMemoryCell.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Der gewünschte Wert wird als Signal I auf der rechten Seite angeschlossen, um die Speicherzelle zu setzen. Um die Zelle zurückzusetzen, schließt man einen negativen Wert als Signal I an.&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang der Speicherzelle ist 2 sich gegenseitig ausschließende Signale.&lt;br /&gt;
** Falls das Eingangssignal I &amp;gt; 0 ist, wird das Signal I auf die andere Seite weitergegeben.&lt;br /&gt;
** Falls das Eingangssignal I unterbrochen wird, wird stattdessen das Signal M als Speicher des vorherigen Eingangswertes ausgegeben.&lt;br /&gt;
* Wenn das Eingangssignal I unterbrochen wird, dauert es 2 Ticks, um auf das Speichersignal M umzuschalten.&lt;br /&gt;
* Wenn das Eingangssignal I nur einen Tick dauert, beginnt die Speicherzelle zwischen den beiden vorherigen Werten zu wechseln, Tick für Tick. Unbegrenzt.&lt;br /&gt;
* Die Umschaltung erfolgt nahtlos, d. h. es gibt keine Ticks mit Leersignal.&lt;br /&gt;
&lt;br /&gt;
=== Positiv- und Negativzelle ===&lt;br /&gt;
&lt;br /&gt;
Diese Zelle kann negative oder positive Werte speichern. Der Reset erfolgt auf einer eigenen Leitung. Zusätzlich wird ein 1-Tick-Burst korrekt behandelt. [https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=60330&amp;amp;p=362377#p362377 Forum Beitrag].&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang M (Speicher) ist der letzte Nicht-Null-Eingang I (Eingang).&lt;br /&gt;
* Ein Nicht-Null-Signal R (Reset) setzt den Ausgang auf Null.&lt;br /&gt;
* 1-Tick-Bursts von R oder I werden korrekt behandelt.&lt;br /&gt;
* Negative Werte werden korrekt behandelt.&lt;br /&gt;
&lt;br /&gt;
[[File:Memory_cell_with_negatives.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Multiplikator und Wörterbücher/Arrays ==&lt;br /&gt;
[[File:combinatorMultiplierDetailed.png|left|500px]]&lt;br /&gt;
* Die Multiplikation von zwei Signalen ist einfach und erfordert nur einen einzigen Kombinator. Die Multiplikation einer Gruppe von Signalen ist jedoch komplizierter.&lt;br /&gt;
* Ein Beweis für die Gleichung und warum sie funktioniert, wird unten gezeigt.&lt;br /&gt;
* Ein Wörterbuch ist ein System, mit dem auf einen Wert eines bestimmten Signals zugegriffen werden kann. Zum Beispiel kann A viele Signale enthalten (entweder von einem Kombinator für Konstanten oder einer Speicherzelle) und B kann 1 eines bestimmten Signals enthalten (z. B. das blaue Signal). Was übrig bleibt, ist der Wert des blauen Signals aus A. Das liegt daran, dass alle anderen Signale mit 0 multipliziert werden.&lt;br /&gt;
* Arrays sind ähnlich wie Wörterbücher, aber statt eines Signals als Schlüssel verwenden wir eine Zahl. Es werden Kombinatoren für Konstanten platziert, die jedes Signal auf eine eindeutige Zahl abbilden (z. B. 1 gelbes Fließband, 2 rotes Fließband, 3 blaues Fließband, 4 Befeuerter Greifarm, usw.). Dann verwendet man einen Kombinator mit &amp;quot;jedes = Index OUTPUT 1 von jedem&amp;quot; und setzen das als Eingabe in ein Wörterbuch ein.{{clear}}&lt;br /&gt;
[[File:combinatorMultiplierMath.png|left|500px]]&lt;br /&gt;
&lt;br /&gt;
    ((A+B)^2 - (A-B)^2)/4 = AB&lt;br /&gt;
    (A+B)^2 - (A-B)^2 = 4AB&lt;br /&gt;
    (A^2 + 2AB + B^2) - (A^2 - 2AB + B^2) = 4AB&lt;br /&gt;
    4AB = 4AB&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=14556 Combinators 101 (Tutorial)]&lt;br /&gt;
* {{TransLink|Tutorial:Circuit network cookbook}}&lt;br /&gt;
* {{TransLink|Circuit network}}&lt;br /&gt;
* {{TransLink|Arithmetic combinator}}&lt;br /&gt;
* {{TransLink|Constant combinator}}&lt;br /&gt;
* {{TransLink|Decider combinator}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208904</id>
		<title>Tutorial:Combinator tutorial/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208904"/>
		<updated>2025-01-09T15:33:45Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: /* Speicher */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Dies ist ein Tutorial für &#039;&#039;&#039;Fortgeschrittene&#039;&#039;&#039;. Anfänger sollten das {{TransLink|Tutorial:Circuit network cookbook}} für Beispiele und die {{TransLink|Circuit network}} Seite für einen Überblick über das Schaltungsnetz lesen. Dieses Tutorial setzt ein grundlegendes Verständnis von Schaltungen voraus und behandelt fortgeschrittenere Themen wie SR-Flipflops, Speicherzellen und Taktgeber.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Logikschaltungen mit Kombinatoren werden aufgebaut, indem man Ausgänge so mit Eingängen verknüpft, dass die erwünschte Operation durchgeführt wird. Komplexere Logik erfordert eine Vielzahl von Kombinatoren, aber einige sehr nützliche Grundfunktionen können bereits mit nur einer Handvoll Kombinatoren erreicht werden. Kombinator-Logik funktioniert, weil Factorio alle Aktualisierungen genau &#039;&#039;60 mal pro Sekunde&#039;&#039; durchführt, so dass Kombinatoren in einem Takt-Schritt ihre Logik ausführen und im nächsten Takt die resultierenden Ausgabewerte summiert werden oder Entscheidungen wirksam werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Logikwerte von Kombinatoren berechnet werden, werden die Ausgaben erst im nächsten Schritt vom Schaltungsnetz erkannt. Wenn also ein {{TransLink|Decider combinator}} verwendet wird, um eine bestimmte Eingangsbedingung zu erkennen, wird sein Ausgangswert erst im nächsten Schritt im Schaltungsnetz wirksam. &#039;&#039;&#039;Es ist wichtig, dieses Verhalten im Hinterkopf zu behalten. Es kann zu Sequenz-Fehlern und erheblichen Verzögerungen führen, wenn mehrere Kombinatoren in Reihe geschaltet sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das Schaltungsnetz verhält sich wie ein Drahtbus in der Elektronik. Es überträgt die Informationen aus allen angeschlossenen Drähten, d. h., wenn gleiche Signale auf einem Draht sind, werden diese automatisch addiert. Wenn das Signal unterschiedlich ist, wird es auch über diesem Draht übertragen, aber als unterschiedliches Signal.&lt;br /&gt;
&lt;br /&gt;
Beim Querverbinden von Kombinatoren ist es eine gute Praxis, die unbenutzte Farbe zum Querverbinden zu verwenden. Dadurch werden die Eingangs- und Ausgangsnetzwerke aufgeteilt und es wird verhindert, dass unerwünschte Eingänge versehentlich mit einem größeren Schaltungsnetz verbunden werden. Kombinatoren summieren die roten und grünen Eingänge vor der Berechnung, so dass bei der Rückverdrahtung des Ausgangs mit dem Eingang beide Farben verwendet werden können. In den meisten Fällen ist es jedoch sinnvoller, die entgegengesetzte Farbe des Drahtes zu verwenden, damit der resultierende Ausgang und Eingang nicht gestört wird.&lt;br /&gt;
&lt;br /&gt;
== Virtuelle Signale ==&lt;br /&gt;
&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|right|Die verfügbaren virtuellen Signale für das Schaltungsnetz]]&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Standard-Signalen für die Gegenstände enthält das Schaltungsnetz von Factorio auch eine Reihe von Signalen, die keinen bestimmten Spielgegenstand repräsentieren. Stattdessen dienen diese virtuellen Signale als benutzerdefinierte Kanäle für das Schaltungsnetz. Sie haben die Bedeutung, die der Benutzer ihnen zuweisen möchte. Derzeit gibt es 48 virtuelle Signale, die über das Schaltungsnetz gesendet werden können:&lt;br /&gt;
&lt;br /&gt;
* Die 36 alphanumerischen Zeichen (A-Z, 0-9)&lt;br /&gt;
* Neun Farben: Rot, Grün, Blau, Gelb, Magenta, Cyan, Weiß, Grau und Schwarz&lt;br /&gt;
* Drei Symbole: Ein Häkchen, ein Informationsbuchstabe &#039;i&#039; und ein kleiner, weißer Punkt&lt;br /&gt;
&lt;br /&gt;
=== Logische Signale ===&lt;br /&gt;
&lt;br /&gt;
Es gibt drei zusätzliche virtuelle Signale, die als &#039;&#039;Logiksignale&#039;&#039; bezeichnet werden. Im Gegensatz zu anderen Signalen können sie nicht über das Schaltungsnetz gesendet werden; stattdessen wenden sie zusätzliche Logik auf Kombinatoren an, die deren Verhalten verändern. Insbesondere fungieren diese Logiksymbole als Platzhalter, also als spezielle Signale, die &#039;&#039;&#039;null oder mehr&#039;&#039;&#039; beliebige Signale repräsentieren, anstatt ein einzelnes diskretes Signal darzustellen.  Das Schaltungsnetz von Factorio implementiert drei Arten von Platzhaltern.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Alles Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_everything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Alles&#039;&#039; wird bei Kombinatoren für Entscheidungen verwendet. Sein genaues Verhalten hängt davon ab, ob er als Eingang oder als Ausgang verwendet wird:&lt;br /&gt;
* &#039;&#039;&#039;Eingabe&#039;&#039;&#039;: Gibt wahr zurück, wenn &#039;&#039;alle&#039;&#039; Eingangssignale die Bedingung erfüllen, oder wenn es &#039;&#039;keine&#039;&#039; Eingangssignale gibt. Andernfalls gibt er falsch zurück.&lt;br /&gt;
* &#039;&#039;&#039;Ausgang&#039;&#039;&#039;: Gibt &#039;&#039;alle&#039;&#039; Eingangssignale ungleich Null zurück.&lt;br /&gt;
&lt;br /&gt;
Wenn er als Eingabe verwendet wird, kann man sich den Platzhalter &#039;&#039;Alles&#039;&#039; als logisches UND oder als [[:wikipedia:de:Allaussage|Allaussage]] vorstellen. Wenn er als Ausgang verwendet wird, wirkt er wie ein &amp;quot;Echo&amp;quot; oder &amp;quot;Dump&amp;quot; der Eingangssignale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Kann als Ausgang verwendet werden, solange die Eingabe nicht ein &#039;&#039;Jeweils&#039;&#039; Platzhalter ist.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Irgendetwas Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_anything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Irgendetwas&#039;&#039; wird auch bei Kombinatoren für Entscheidungen verwendet.&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mindestens einem&#039;&#039;&#039; Eingangssignal gibt er wahr zurück, wenn &#039;&#039;irgendein&#039;&#039; Eingangssignal die Bedingung erfüllt. Wenn kein Signal die Bedingung erfüllt, oder keine Eingangssignale vorhanden sind, wird falsch zurückgegeben. Von diesem Verhalten her kann man sich den &#039;&#039;Irgendetwas&#039;&#039;-Platzhalter als logisches ODER oder als [[:wikipedia:de:Existenzaussage|Existenzaussage]] vorstellen.&lt;br /&gt;
&lt;br /&gt;
Wenn &#039;&#039;irgendetwas&#039;&#039; sowohl als Eingabe als auch als Ausgabe in einem Kombinator für Vergleiche verwendet wird, gibt es ein willkürlich gewähltes Signal aus denen zurück, die die Bedingung erfüllen.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Jeweils Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_each.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Jeweils&#039;&#039; wird sowohl mit Kombinatoren für Entscheidungen als auch mit {{TransLink|Arithmetic combinator|Kombinatoren für Berechnungen}} verwendet und verhält sich im Vergleich zu den beiden vorherigen etwas anders. Im Allgemeinen führt er eine Kombinator-Aktion auf jedes Signal &#039;&#039;&#039;einzeln&#039;&#039;&#039; aus, wobei die genaue Aktion davon abhängt, wie er verwendet wird und in welcher Art er von Kombinator verwendet wird. Er kann als Eingang verwendet werden und ebenfalls als Ausgang, aber &#039;&#039;nur, wenn er auch als Eingang verwendet wird&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Entscheidungen&#039;&#039;&#039; vergleicht der Platzhalter &#039;&#039;Jeweils&#039;&#039; jedes Eingangssignal einzeln mit der Kombinatorbedingung und gibt jedes Signal zurück, das die Bedingung erfüllt. Die Art und Weise, wie der Platzhalter &#039;&#039;Jeweils&#039;&#039; Signale zurückgibt, wenn er als Eingang verwendet wird, hängt davon ab, ob er auch als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingabe&#039;&#039;&#039;: Summiert jedes Eingangssignal, das die Bedingung erfüllt, und gibt je nach Ausgabeeinstellungen entweder eine Anzahl der erfüllten Bedingungen oder eine Summierung der Eingangswerte als Ausgangssignal zurück.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Gibt jedes Signal zurück, das die Bedingung erfüllt hat, wobei die Werte von den Ausgangseinstellungen abhängen.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Berechnungen&#039;&#039;&#039; wird die vorgesehene arithmetische Operation individuell auf jedes Eingangssignal angewendet, und ähnlich wie beim Kombinator für Entscheidungen hängt das zurückgegebene Signal davon ab, ob der Platzhalter &#039;&#039;Jeweils&#039;&#039; als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingang&#039;&#039;&#039;: Das Ergebnis jeder Operation auf den Eingangssignalen wird summiert und als Ausgangssignal zurückgegeben.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Jedes Eingangssignal wird mit dem Ergebnis der angegebenen Operation darauf angewendet zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Jeweils&#039;&#039;&#039;-Platzhalter ist also deutlich komplexer als die beiden anderen Platzhalter, bietet aber im Gegenzug für seine Komplexität eine gute Leistung.&lt;br /&gt;
&lt;br /&gt;
== Eingangs-Isolator &amp;amp; Gatter ==&lt;br /&gt;
Ein Kombinator für Berechnungen, der auf (Eingabe: Jeweils + 0, Ausgabe: Jeweils) gesetzt ist, kann zum Vertauschen von Drahtfarben und als Isolator verwendet werden, um zu verhindern, dass nachgeschaltete Logik in die Eingänge des Schaltungsnetzes zurückfließt.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Entscheidungen, der auf (Ausgabe: Alles, Eingang → Ausgang) eingestellt ist, fungiert ebenfalls als Isolator, solange die eingestellte Logikbedingung wahr ist. Dieser kann auch selektiv Eingänge nur dann durchlassen oder &amp;quot;steuern&amp;quot;, wenn dies gewünscht ist. Dies könnte verwendet werden, um entfernte Bahnhöfe sequentiell nach ihrem Kisteninhalt abzufragen und nur gewünschte Bahnhöfe einzuschließen.&lt;br /&gt;
&lt;br /&gt;
== Set/Reset Flipflop-Schalter ==&lt;br /&gt;
Manchmal benötigt man etwas, das einen Trigger auf eine bestimmte Menge setzt (SET), und dann so lange eingeschaltet BLEIBT, bis diese Menge einen anderen Wert erreicht (den RESET-Wert). Dafür benötigt man einen Kombinator für Entscheidungen und einen Kombinator für Berechnungen (Für komplexere mehrkanalige Bedingungen können auch zwei Kombinatoren für Entscheidungen und ein {{TransLink|Constant combinator}} verwendet werden).&lt;br /&gt;
&lt;br /&gt;
Man stellt den ersten Kombinator für Entscheidungen auf die gewünschte SET-Bedingung ein, so dass er dann eine 1 ausgibt. Dessen Ausgang wird mit dem Eingang eines Kombinators für Berechnungen verbunden, der die Eingabe mit dem Bias-Wert multipliziert, der die Differenz zwischen dem Set- und dem Reset-Wert darstellt. Sein Ausgang wird wiederum mit dem Eingang des Kombinators für Entscheidungen verbunden, so dass der Eingang des Entscheiders dem Ausgang des Berechners entspricht.&amp;lt;br&amp;gt;&lt;br /&gt;
Immer, wenn die eingestellte Bedingung erreicht wird, gibt der Kombinator für Entscheidungen eine &#039;1&#039; aus, und der Bias-Wert im Kombinator für Berechnungen wird angewendet. Dadurch wird der Ausgang so lange &#039;wahr&#039; gehalten, bis der Wert wieder unter den Rücksetzpunkt fällt.&lt;br /&gt;
&lt;br /&gt;
In diesem speziellen Beispiel läuft die Pumpe, wenn das Leichtöl 20000 erreicht, und schaltet sich aus, wenn es 5000 erreicht:&lt;br /&gt;
&lt;br /&gt;
[[File:SR_latch.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Beispiel für eine Dampf-Reserve mit genauer Beschreibung und Erklärung gibt es hier:&amp;lt;br&amp;gt;[[Tutorial:Circuit_network_cookbook/de#RS-Flipflop_-_Version_mit_einem_Kombinator_f.C3.BCr_Entscheidungen|RS-Flipflop - Version mit einem Kombinator]]&lt;br /&gt;
&lt;br /&gt;
== Intelligente Zugbeladung ==&lt;br /&gt;
Dies löst das Problem, dass die Beladung von Kisten mit einem bestimmten Gegenstand in aller Regel ungleicher und langsamer erfolgt als die Beladung von Zügen.&lt;br /&gt;
&lt;br /&gt;
Zum Aufbau wird ein Kombinator für Berechnungen sowie rotes und grünes Signalkabel benötigt. Zunächst verbinden wir alle verwendeten Kisten mit dem Eingang des Kombinators für Berechnungen. Im Kombinator für Berechnungen wird als Berechnung &#039;&#039;&#039;Gegenstand / -Anzahl der Kisten&#039;&#039;&#039; und als Ausgabe &#039;&#039;&#039;Gegenstand&#039;&#039;&#039; eingestellt. Dies ergibt den Durchschnitt der Anzahl der Gegenstände in den Kisten, mit einem negativen Vorzeichen. Als letztes werden alle verwendeten Greifarme mit andersfarbigem Signalkabel mit dem Ausgang des Kombinators verbunden. Die Greifarme so einstellen, dass sie aktivert werden, wenn &#039;&#039;&#039;Gegenstand &amp;lt; 1&#039;&#039;&#039; ist.&lt;br /&gt;
&lt;br /&gt;
Eine anschaulichere Darstellung sowie Fragen zum Design finden sich in einem reddit-Post: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station].&lt;br /&gt;
&lt;br /&gt;
Erläuterung, warum das funktioniert:&lt;br /&gt;
Der Kombinator berechnet die durchschnittliche Anzahl der Gegenstände in den Kisten als negative Zahl. Der Kisteninhalt des Greifarms ist positiv, und da das Schaltungsnetz implizit alle Eingaben addiert, ergibt sich bei der Addition des negativen Durchschnitts die Differenz aus Durchschnitt und Anzahl Gegenstände in der Kiste. Ist die Differenz kleiner als 1, also 0 oder negativ, befinden sich genauso viele oder weniger Gegenstände in der Kiste als der Durchschnitt, d.h. der Greifarm wird aktiviert. Anders herum ausgedrückt: ist die Differenz 1 oder größer, dann befinden sich mehr Gegenstände in der Kiste als der Durchschnitt und der Greifarm bleibt deaktiviert.&lt;br /&gt;
&lt;br /&gt;
== Speicher ==&lt;br /&gt;
Um beispielsweise einen Zähler zu realisieren, aber auch für komplexere Schaltungen, benötigt man einen Speicher, der die verarbeiteten Werte zwischenspeichert.&lt;br /&gt;
Hierzu setzen wir einen Kombinator für Entscheidungen ein, bei dem der Ausgang an den Eingang angeschlossen wird und als Kriterium größer als 0 (für positive Werte) eingestellt hat. Solange alle anderen Eingaben im Netz 0 sind, wird damit der Ausgabewert erhalten.&lt;br /&gt;
Jeder Eingang ungleich 0 erzeugt einen Grundtakt. In jedem Zyklus wird der gespeicherte Wert um die Summe aller angeschlossenen Eingangswerte erhöht. Ein einzelner Impuls eines Eingangs bewirkt somit eine einmalige Inkrementierung um den gepulsten Wert. Ein Rücksetzen des Zählers auf 0 erfolgt immer dann, wenn die eingestellte Bedingung nicht mehr erfüllt ist, oder wenn ein negativer Impuls in Höhe des Eingangswertes auftritt.&lt;br /&gt;
&lt;br /&gt;
== Taktgeber ==&lt;br /&gt;
[[File:Timer.png|thumb|right|377px|Ein grundlegender Taktgeber. Signal 1 wird Tick für Tick erhöht bis 30 erreicht sind, dann beginnt er wieder bei 1.]]&lt;br /&gt;
Ein Taktgeber entsteht, wenn man den Ausgang eines Kombinators mit seinem eigenen Eingang verbindet, so dass jeder Zyklus den Zählerstand wieder an den Eingang zurückgibt. Es kann entweder der Kombinator für Berechnungen oder der Kombinator für Entscheidungen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Berechnungen, der mit sich selbst verbunden ist, ist lustig anzusehen und läuft endlos durch. Es erfordert zusätzliche Steuerlogik zum Zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
Für einen selbstrückstellenden Taktgeber wird nur ein einziger Kombinator für Entscheidungen benötigt, dessen Ausgang mit dem Eingang verbunden ist und der mit kleiner als (&amp;lt;) und Eingabe → Ausgabe konfiguriert ist. Wenn dann ein Kombinator für Konstanten an den Eingang angeschlossen wird, zählt er jeden Zyklus um den Wert des Kombinators für Konstanten hoch, bis der eingestellte Wert in der Bedingung erreicht ist, und gibt dann eine 0 aus, die mit dem Kombinator für Konstanten summiert wird und den Prozess zurücksetzt.&lt;br /&gt;
&lt;br /&gt;
Die Taktsequenz enthält keine 0. Sie beginnt bei dem im Kombinator für Konstanten eingestellten Wert und geht bis zu dem Wert, der schließlich dazu führt, dass die Bedingung falsch ist. Ein Kombinator für Berechnungen kann die Taktsequenz ändern, aber man muss daran denken, dass seine Ausgaben einen Zyklus später als die Eingangswerte des Taktzyklus auftreten.&lt;br /&gt;
&lt;br /&gt;
Ein Taktgenerator, der nur einmal zählt, kann mit dem folgenden Aufbau erstellt werden:&lt;br /&gt;
&lt;br /&gt;
[[File:Onetime_Clock.png|thumb|none|360px|Einmaliger Taktgeber. Läuft bis T=Z+1. Rücksetzen über R&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
== Impulsgeneratoren ==&lt;br /&gt;
&lt;br /&gt;
Wenn man einen zusätzlichen Kombinator für Entscheidungen (=) an den Ausgang eines einfachen Taktgebers anschließt, kann man man ein Impulsgenerator bauen, der jedes Mal, wenn der Takt die eingestellte Bedingung durchläuft, einen einzelnen Puls am Ausgang ausgibt. Jeder beliebige Ausgangswert kann verwendet werden, entweder direkt von der Taktsequenz (Eingang → Ausgang), eine 1, oder ein Wert auf einem separaten Logikkanal des Schaltungsnetzes, wie er von einem Kombinator für Konstanten gesetzt wird, oder vom Schaltungsnetz selbst.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PulseGen.png|500px]]&lt;br /&gt;
*&#039;&#039;Der Wert 1 kann als beliebige positive ganze Zahl geschrieben werden, solange er innerhalb der Grenzen des Taktgenerators liegt.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Mit obigem Taktgenerator würde dieses Licht jeden 1. Tick pulsieren, nachdem der Taktgeber 30 Ticks erreicht hat. Das bedeutet, dass es 1/30 einer Sekunde pulsiert, da Factorio Schaltungen 60 Mal pro Sekunde aktualisiert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Zähler ==&lt;br /&gt;
Ein Zähler wird verwendet, um eine Anzahl von Eingangsereignissen zu zählen und die Summe dieser Zählung auszugeben. Jeder pulsierende Eingang in einen Kombinator für Entscheidungen, der als Eingang → Ausgang konfiguriert und Ausgang und Eingang verbunden hat, erzeugt einen Zähler. Dieser Eingang muss zu allen anderen Zeiten 0 sein, sonst läuft der Kombinator wie eine Uhr durchgängig.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird dazu ein Impulsgenerator verwendet. Schaltet man mehrere Kombinatoren für Entscheidungen mit sequentiellen Bedingungen, die als Isolator dienen, mit einem Taktgeber und einem Impulsgenerator zusammen an den Eingang eines Zählers, kann man die Inhalte der einzelnen Kombinatoren abfragen und zählen.&lt;br /&gt;
&lt;br /&gt;
== Logikgatter ==&lt;br /&gt;
&lt;br /&gt;
Einige Logikgatter funktionieren nur mit booleschen Werten, bei denen die Eingänge entweder 0 oder 1 sind.&lt;br /&gt;
Andere Logikgatter funktionieren auch mit anderen Werten, z.B. 2.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Eingebaut&#039;&#039;&#039;===&lt;br /&gt;
Der Kombinator für Berechnungen hat eingebaute OR-, XOR- und AND-Operatoren.&lt;br /&gt;
Diese arbeiten bitweise, d. h. sie führen die Operation auf jedem Bit der Zahl im Binärformat aus und geben das Ergebnis zurück.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für den bitweisen AND-Operator:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 4  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 3  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 30  || 10&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 40  || 8&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn die Eingänge nur aus booleschen Werten (1 oder 0) bestehen, können die Operatoren des Kombinators für Berechnungen als Logikgatter verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Monadisches NOT&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOT.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres OR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:OR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingängen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:AND.png|530px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Berechnungen funktioniert für nicht-boolesche Werte und gibt nicht-boolesche Werte zurück, wenn sie als Eingabe gegeben werden, aber nur, wenn beide Werte nicht 0 sind.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Entscheidungen funktioniert nur für boolesche Werte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;1&amp;quot; auf 1 weniger als die Anzahl der Eingänge oder die angezeigte &amp;quot;2&amp;quot; auf die Anzahl der Eingänge geändert wird, wie unten für ein ternäres UND gezeigt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Ternäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:TrinaryAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Eingang 3!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NAND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur für boolesche Eingangswerte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;2&amp;quot; in die Anzahl der Eingänge geändert wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XNOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingabewerten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Speicherzellen ==&lt;br /&gt;
&lt;br /&gt;
=== Einfaches Flipflop ===&lt;br /&gt;
&lt;br /&gt;
Wenn man den Kombinator in einer Schleife mit sich selbst verbindet, muss man andere Kabelfarbe verwenden als die Haupteingänge oder -ausgänge.&lt;br /&gt;
&lt;br /&gt;
[[File:SimpleLatchv2.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Ausgang 1!!Eingang 1!!Einmgang 2!! Ausgang 1 (t+1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;Ausgang 1 ist die grüne Schleife, die im Bild zu sehen ist. Sie trägt den zu speichernden Wert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Eingang 1 ist Set, und Eingang 2 ist Reset.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Positive Zelle ===&lt;br /&gt;
&lt;br /&gt;
Zelle zum Speichern eines positiven Wertes, mit Reset-Unterstützung:&lt;br /&gt;
&lt;br /&gt;
[[File:AdvancedMemoryCell.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Der gewünschte Wert wird als Signal I auf der rechten Seite angeschlossen, um die Speicherzelle zu setzen. Um die Zelle zurückzusetzen, schließt man einen negativen Wert als Signal I an.&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang der Speicherzelle ist 2 sich gegenseitig ausschließende Signale.&lt;br /&gt;
** Falls das Eingangssignal I &amp;gt; 0 ist, wird das Signal I auf die andere Seite weitergegeben.&lt;br /&gt;
** Falls das Eingangssignal I unterbrochen wird, wird stattdessen das Signal M als Speicher des vorherigen Eingangswertes ausgegeben.&lt;br /&gt;
* Wenn das Eingangssignal I unterbrochen wird, dauert es 2 Ticks, um auf das Speichersignal M umzuschalten.&lt;br /&gt;
* Wenn das Eingangssignal I nur einen Tick dauert, beginnt die Speicherzelle zwischen den beiden vorherigen Werten zu wechseln, Tick für Tick. Unbegrenzt.&lt;br /&gt;
* Die Umschaltung erfolgt nahtlos, d. h. es gibt keine Ticks mit Leersignal.&lt;br /&gt;
&lt;br /&gt;
=== Positiv- und Negativzelle ===&lt;br /&gt;
&lt;br /&gt;
Diese Zelle kann negative oder positive Werte speichern. Der Reset erfolgt auf einer eigenen Leitung. Zusätzlich wird ein 1-Tick-Burst korrekt behandelt. [https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=60330&amp;amp;p=362377#p362377 Forum Beitrag].&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang M (Speicher) ist der letzte Nicht-Null-Eingang I (Eingang).&lt;br /&gt;
* Ein Nicht-Null-Signal R (Reset) setzt den Ausgang auf Null.&lt;br /&gt;
* 1-Tick-Bursts von R oder I werden korrekt behandelt.&lt;br /&gt;
* Negative Werte werden korrekt behandelt.&lt;br /&gt;
&lt;br /&gt;
[[File:Memory_cell_with_negatives.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Multiplikator und Wörterbücher/Arrays ==&lt;br /&gt;
[[File:combinatorMultiplierDetailed.png|left|500px]]&lt;br /&gt;
* Die Multiplikation von zwei Signalen ist einfach und erfordert nur einen einzigen Kombinator. Die Multiplikation einer Gruppe von Signalen ist jedoch komplizierter.&lt;br /&gt;
* Ein Beweis für die Gleichung und warum sie funktioniert, wird unten gezeigt.&lt;br /&gt;
* Ein Wörterbuch ist ein System, mit dem auf einen Wert eines bestimmten Signals zugegriffen werden kann. Zum Beispiel kann A viele Signale enthalten (entweder von einem Kombinator für Konstanten oder einer Speicherzelle) und B kann 1 eines bestimmten Signals enthalten (z. B. das blaue Signal). Was übrig bleibt, ist der Wert des blauen Signals aus A. Das liegt daran, dass alle anderen Signale mit 0 multipliziert werden.&lt;br /&gt;
* Arrays sind ähnlich wie Wörterbücher, aber statt eines Signals als Schlüssel verwenden wir eine Zahl. Es werden Kombinatoren für Konstanten platziert, die jedes Signal auf eine eindeutige Zahl abbilden (z. B. 1 gelbes Fließband, 2 rotes Fließband, 3 blaues Fließband, 4 Befeuerter Greifarm, usw.). Dann verwendet man einen Kombinator mit &amp;quot;jedes = Index OUTPUT 1 von jedem&amp;quot; und setzen das als Eingabe in ein Wörterbuch ein.{{clear}}&lt;br /&gt;
[[File:combinatorMultiplierMath.png|left|500px]]&lt;br /&gt;
&lt;br /&gt;
    ((A+B)^2 - (A-B)^2)/4 = AB&lt;br /&gt;
    (A+B)^2 - (A-B)^2 = 4AB&lt;br /&gt;
    (A^2 + 2AB + B^2) - (A^2 - 2AB + B^2) = 4AB&lt;br /&gt;
    4AB = 4AB&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=14556 Combinators 101 (Tutorial)]&lt;br /&gt;
* {{TransLink|Tutorial:Circuit network cookbook}}&lt;br /&gt;
* {{TransLink|Circuit network}}&lt;br /&gt;
* {{TransLink|Arithmetic combinator}}&lt;br /&gt;
* {{TransLink|Constant combinator}}&lt;br /&gt;
* {{TransLink|Decider combinator}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208903</id>
		<title>Tutorial:Combinator tutorial/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208903"/>
		<updated>2025-01-09T15:32:49Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: /* Eingebaut */ Typo in Überschrift&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Dies ist ein Tutorial für &#039;&#039;&#039;Fortgeschrittene&#039;&#039;&#039;. Anfänger sollten das {{TransLink|Tutorial:Circuit network cookbook}} für Beispiele und die {{TransLink|Circuit network}} Seite für einen Überblick über das Schaltungsnetz lesen. Dieses Tutorial setzt ein grundlegendes Verständnis von Schaltungen voraus und behandelt fortgeschrittenere Themen wie SR-Flipflops, Speicherzellen und Taktgeber.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Logikschaltungen mit Kombinatoren werden aufgebaut, indem man Ausgänge so mit Eingängen verknüpft, dass die erwünschte Operation durchgeführt wird. Komplexere Logik erfordert eine Vielzahl von Kombinatoren, aber einige sehr nützliche Grundfunktionen können bereits mit nur einer Handvoll Kombinatoren erreicht werden. Kombinator-Logik funktioniert, weil Factorio alle Aktualisierungen genau &#039;&#039;60 mal pro Sekunde&#039;&#039; durchführt, so dass Kombinatoren in einem Takt-Schritt ihre Logik ausführen und im nächsten Takt die resultierenden Ausgabewerte summiert werden oder Entscheidungen wirksam werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Logikwerte von Kombinatoren berechnet werden, werden die Ausgaben erst im nächsten Schritt vom Schaltungsnetz erkannt. Wenn also ein {{TransLink|Decider combinator}} verwendet wird, um eine bestimmte Eingangsbedingung zu erkennen, wird sein Ausgangswert erst im nächsten Schritt im Schaltungsnetz wirksam. &#039;&#039;&#039;Es ist wichtig, dieses Verhalten im Hinterkopf zu behalten. Es kann zu Sequenz-Fehlern und erheblichen Verzögerungen führen, wenn mehrere Kombinatoren in Reihe geschaltet sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das Schaltungsnetz verhält sich wie ein Drahtbus in der Elektronik. Es überträgt die Informationen aus allen angeschlossenen Drähten, d. h., wenn gleiche Signale auf einem Draht sind, werden diese automatisch addiert. Wenn das Signal unterschiedlich ist, wird es auch über diesem Draht übertragen, aber als unterschiedliches Signal.&lt;br /&gt;
&lt;br /&gt;
Beim Querverbinden von Kombinatoren ist es eine gute Praxis, die unbenutzte Farbe zum Querverbinden zu verwenden. Dadurch werden die Eingangs- und Ausgangsnetzwerke aufgeteilt und es wird verhindert, dass unerwünschte Eingänge versehentlich mit einem größeren Schaltungsnetz verbunden werden. Kombinatoren summieren die roten und grünen Eingänge vor der Berechnung, so dass bei der Rückverdrahtung des Ausgangs mit dem Eingang beide Farben verwendet werden können. In den meisten Fällen ist es jedoch sinnvoller, die entgegengesetzte Farbe des Drahtes zu verwenden, damit der resultierende Ausgang und Eingang nicht gestört wird.&lt;br /&gt;
&lt;br /&gt;
== Virtuelle Signale ==&lt;br /&gt;
&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|right|Die verfügbaren virtuellen Signale für das Schaltungsnetz]]&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Standard-Signalen für die Gegenstände enthält das Schaltungsnetz von Factorio auch eine Reihe von Signalen, die keinen bestimmten Spielgegenstand repräsentieren. Stattdessen dienen diese virtuellen Signale als benutzerdefinierte Kanäle für das Schaltungsnetz. Sie haben die Bedeutung, die der Benutzer ihnen zuweisen möchte. Derzeit gibt es 48 virtuelle Signale, die über das Schaltungsnetz gesendet werden können:&lt;br /&gt;
&lt;br /&gt;
* Die 36 alphanumerischen Zeichen (A-Z, 0-9)&lt;br /&gt;
* Neun Farben: Rot, Grün, Blau, Gelb, Magenta, Cyan, Weiß, Grau und Schwarz&lt;br /&gt;
* Drei Symbole: Ein Häkchen, ein Informationsbuchstabe &#039;i&#039; und ein kleiner, weißer Punkt&lt;br /&gt;
&lt;br /&gt;
=== Logische Signale ===&lt;br /&gt;
&lt;br /&gt;
Es gibt drei zusätzliche virtuelle Signale, die als &#039;&#039;Logiksignale&#039;&#039; bezeichnet werden. Im Gegensatz zu anderen Signalen können sie nicht über das Schaltungsnetz gesendet werden; stattdessen wenden sie zusätzliche Logik auf Kombinatoren an, die deren Verhalten verändern. Insbesondere fungieren diese Logiksymbole als Platzhalter, also als spezielle Signale, die &#039;&#039;&#039;null oder mehr&#039;&#039;&#039; beliebige Signale repräsentieren, anstatt ein einzelnes diskretes Signal darzustellen.  Das Schaltungsnetz von Factorio implementiert drei Arten von Platzhaltern.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Alles Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_everything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Alles&#039;&#039; wird bei Kombinatoren für Entscheidungen verwendet. Sein genaues Verhalten hängt davon ab, ob er als Eingang oder als Ausgang verwendet wird:&lt;br /&gt;
* &#039;&#039;&#039;Eingabe&#039;&#039;&#039;: Gibt wahr zurück, wenn &#039;&#039;alle&#039;&#039; Eingangssignale die Bedingung erfüllen, oder wenn es &#039;&#039;keine&#039;&#039; Eingangssignale gibt. Andernfalls gibt er falsch zurück.&lt;br /&gt;
* &#039;&#039;&#039;Ausgang&#039;&#039;&#039;: Gibt &#039;&#039;alle&#039;&#039; Eingangssignale ungleich Null zurück.&lt;br /&gt;
&lt;br /&gt;
Wenn er als Eingabe verwendet wird, kann man sich den Platzhalter &#039;&#039;Alles&#039;&#039; als logisches UND oder als [[:wikipedia:de:Allaussage|Allaussage]] vorstellen. Wenn er als Ausgang verwendet wird, wirkt er wie ein &amp;quot;Echo&amp;quot; oder &amp;quot;Dump&amp;quot; der Eingangssignale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Kann als Ausgang verwendet werden, solange die Eingabe nicht ein &#039;&#039;Jeweils&#039;&#039; Platzhalter ist.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Irgendetwas Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_anything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Irgendetwas&#039;&#039; wird auch bei Kombinatoren für Entscheidungen verwendet.&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mindestens einem&#039;&#039;&#039; Eingangssignal gibt er wahr zurück, wenn &#039;&#039;irgendein&#039;&#039; Eingangssignal die Bedingung erfüllt. Wenn kein Signal die Bedingung erfüllt, oder keine Eingangssignale vorhanden sind, wird falsch zurückgegeben. Von diesem Verhalten her kann man sich den &#039;&#039;Irgendetwas&#039;&#039;-Platzhalter als logisches ODER oder als [[:wikipedia:de:Existenzaussage|Existenzaussage]] vorstellen.&lt;br /&gt;
&lt;br /&gt;
Wenn &#039;&#039;irgendetwas&#039;&#039; sowohl als Eingabe als auch als Ausgabe in einem Kombinator für Vergleiche verwendet wird, gibt es ein willkürlich gewähltes Signal aus denen zurück, die die Bedingung erfüllen.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Jeweils Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_each.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Jeweils&#039;&#039; wird sowohl mit Kombinatoren für Entscheidungen als auch mit {{TransLink|Arithmetic combinator|Kombinatoren für Berechnungen}} verwendet und verhält sich im Vergleich zu den beiden vorherigen etwas anders. Im Allgemeinen führt er eine Kombinator-Aktion auf jedes Signal &#039;&#039;&#039;einzeln&#039;&#039;&#039; aus, wobei die genaue Aktion davon abhängt, wie er verwendet wird und in welcher Art er von Kombinator verwendet wird. Er kann als Eingang verwendet werden und ebenfalls als Ausgang, aber &#039;&#039;nur, wenn er auch als Eingang verwendet wird&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Entscheidungen&#039;&#039;&#039; vergleicht der Platzhalter &#039;&#039;Jeweils&#039;&#039; jedes Eingangssignal einzeln mit der Kombinatorbedingung und gibt jedes Signal zurück, das die Bedingung erfüllt. Die Art und Weise, wie der Platzhalter &#039;&#039;Jeweils&#039;&#039; Signale zurückgibt, wenn er als Eingang verwendet wird, hängt davon ab, ob er auch als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingabe&#039;&#039;&#039;: Summiert jedes Eingangssignal, das die Bedingung erfüllt, und gibt je nach Ausgabeeinstellungen entweder eine Anzahl der erfüllten Bedingungen oder eine Summierung der Eingangswerte als Ausgangssignal zurück.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Gibt jedes Signal zurück, das die Bedingung erfüllt hat, wobei die Werte von den Ausgangseinstellungen abhängen.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Berechnungen&#039;&#039;&#039; wird die vorgesehene arithmetische Operation individuell auf jedes Eingangssignal angewendet, und ähnlich wie beim Kombinator für Entscheidungen hängt das zurückgegebene Signal davon ab, ob der Platzhalter &#039;&#039;Jeweils&#039;&#039; als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingang&#039;&#039;&#039;: Das Ergebnis jeder Operation auf den Eingangssignalen wird summiert und als Ausgangssignal zurückgegeben.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Jedes Eingangssignal wird mit dem Ergebnis der angegebenen Operation darauf angewendet zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Jeweils&#039;&#039;&#039;-Platzhalter ist also deutlich komplexer als die beiden anderen Platzhalter, bietet aber im Gegenzug für seine Komplexität eine gute Leistung.&lt;br /&gt;
&lt;br /&gt;
== Eingangs-Isolator &amp;amp; Gatter ==&lt;br /&gt;
Ein Kombinator für Berechnungen, der auf (Eingabe: Jeweils + 0, Ausgabe: Jeweils) gesetzt ist, kann zum Vertauschen von Drahtfarben und als Isolator verwendet werden, um zu verhindern, dass nachgeschaltete Logik in die Eingänge des Schaltungsnetzes zurückfließt.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Entscheidungen, der auf (Ausgabe: Alles, Eingang → Ausgang) eingestellt ist, fungiert ebenfalls als Isolator, solange die eingestellte Logikbedingung wahr ist. Dieser kann auch selektiv Eingänge nur dann durchlassen oder &amp;quot;steuern&amp;quot;, wenn dies gewünscht ist. Dies könnte verwendet werden, um entfernte Bahnhöfe sequentiell nach ihrem Kisteninhalt abzufragen und nur gewünschte Bahnhöfe einzuschließen.&lt;br /&gt;
&lt;br /&gt;
== Set/Reset Flipflop-Schalter ==&lt;br /&gt;
Manchmal benötigt man etwas, das einen Trigger auf eine bestimmte Menge setzt (SET), und dann so lange eingeschaltet BLEIBT, bis diese Menge einen anderen Wert erreicht (den RESET-Wert). Dafür benötigt man einen Kombinator für Entscheidungen und einen Kombinator für Berechnungen (Für komplexere mehrkanalige Bedingungen können auch zwei Kombinatoren für Entscheidungen und ein {{TransLink|Constant combinator}} verwendet werden).&lt;br /&gt;
&lt;br /&gt;
Man stellt den ersten Kombinator für Entscheidungen auf die gewünschte SET-Bedingung ein, so dass er dann eine 1 ausgibt. Dessen Ausgang wird mit dem Eingang eines Kombinators für Berechnungen verbunden, der die Eingabe mit dem Bias-Wert multipliziert, der die Differenz zwischen dem Set- und dem Reset-Wert darstellt. Sein Ausgang wird wiederum mit dem Eingang des Kombinators für Entscheidungen verbunden, so dass der Eingang des Entscheiders dem Ausgang des Berechners entspricht.&amp;lt;br&amp;gt;&lt;br /&gt;
Immer, wenn die eingestellte Bedingung erreicht wird, gibt der Kombinator für Entscheidungen eine &#039;1&#039; aus, und der Bias-Wert im Kombinator für Berechnungen wird angewendet. Dadurch wird der Ausgang so lange &#039;wahr&#039; gehalten, bis der Wert wieder unter den Rücksetzpunkt fällt.&lt;br /&gt;
&lt;br /&gt;
In diesem speziellen Beispiel läuft die Pumpe, wenn das Leichtöl 20000 erreicht, und schaltet sich aus, wenn es 5000 erreicht:&lt;br /&gt;
&lt;br /&gt;
[[File:SR_latch.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Beispiel für eine Dampf-Reserve mit genauer Beschreibung und Erklärung gibt es hier:&amp;lt;br&amp;gt;[[Tutorial:Circuit_network_cookbook/de#RS-Flipflop_-_Version_mit_einem_Kombinator_f.C3.BCr_Entscheidungen|RS-Flipflop - Version mit einem Kombinator]]&lt;br /&gt;
&lt;br /&gt;
== Intelligente Zugbeladung ==&lt;br /&gt;
Dies löst das Problem, dass die Beladung von Kisten mit einem bestimmten Gegenstand in aller Regel ungleicher und langsamer erfolgt als die Beladung von Zügen.&lt;br /&gt;
&lt;br /&gt;
Zum Aufbau wird ein Kombinator für Berechnungen sowie rotes und grünes Signalkabel benötigt. Zunächst verbinden wir alle verwendeten Kisten mit dem Eingang des Kombinators für Berechnungen. Im Kombinator für Berechnungen wird als Berechnung &#039;&#039;&#039;Gegenstand / -Anzahl der Kisten&#039;&#039;&#039; und als Ausgabe &#039;&#039;&#039;Gegenstand&#039;&#039;&#039; eingestellt. Dies ergibt den Durchschnitt der Anzahl der Gegenstände in den Kisten, mit einem negativen Vorzeichen. Als letztes werden alle verwendeten Greifarme mit andersfarbigem Signalkabel mit dem Ausgang des Kombinators verbunden. Die Greifarme so einstellen, dass sie aktivert werden, wenn &#039;&#039;&#039;Gegenstand &amp;lt; 1&#039;&#039;&#039; ist.&lt;br /&gt;
&lt;br /&gt;
Eine anschaulichere Darstellung sowie Fragen zum Design finden sich in einem reddit-Post: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station].&lt;br /&gt;
&lt;br /&gt;
Erläuterung, warum das funktioniert:&lt;br /&gt;
Der Kombinator berechnet die durchschnittliche Anzahl der Gegenstände in den Kisten als negative Zahl. Der Kisteninhalt des Greifarms ist positiv, und da das Schaltungsnetz implizit alle Eingaben addiert, ergibt sich bei der Addition des negativen Durchschnitts die Differenz aus Durchschnitt und Anzahl Gegenstände in der Kiste. Ist die Differenz kleiner als 1, also 0 oder negativ, befinden sich genauso viele oder weniger Gegenstände in der Kiste als der Durchschnitt, d.h. der Greifarm wird aktiviert. Anders herum ausgedrückt: ist die Differenz 1 oder größer, dann befinden sich mehr Gegenstände in der Kiste als der Durchschnitt und der Greifarm bleibt deaktiviert.&lt;br /&gt;
&lt;br /&gt;
== Speicher ==&lt;br /&gt;
Um beispielsweise einen Zähler zu realisieren, aber auch für komplexere Schaltungen, benötigt man einen Speicher, der die verarbeiteten Werte zwischenspeichert.&lt;br /&gt;
Hierzu setzen wir einen Kombinator für Entscheidungen ein, bei dem der Ausgang an den Eingang angeschlossen wird und als Kriterium größer als 0 (für positive Werte) eingestellt hat. Solange alle anderen Eingaben im Netz 0 sind, wird damit der Ausgabewert erhalten.&lt;br /&gt;
Jeder Eingang ungleich 0 erzeugt einen Grundtakt. In jedem Zyklus wird der gespeicherte Wert um die Summe aller angeschlossenen Eingangswerte erhöht. Ein einzelner Impuls eines Eingangs bewirkt somit eine einmalige Inkrementierung um den gepulsten Wert. Ein Rücksetzen des Zählers auf 0 erfolgt immer dann, wenn die eingestellte Bedingung nicht mehr erfüllt ist, oder wenn ein negativer Impuls in Höhe des Eingangswertesg auftritt.&lt;br /&gt;
&lt;br /&gt;
== Taktgeber ==&lt;br /&gt;
[[File:Timer.png|thumb|right|377px|Ein grundlegender Taktgeber. Signal 1 wird Tick für Tick erhöht bis 30 erreicht sind, dann beginnt er wieder bei 1.]]&lt;br /&gt;
Ein Taktgeber entsteht, wenn man den Ausgang eines Kombinators mit seinem eigenen Eingang verbindet, so dass jeder Zyklus den Zählerstand wieder an den Eingang zurückgibt. Es kann entweder der Kombinator für Berechnungen oder der Kombinator für Entscheidungen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Berechnungen, der mit sich selbst verbunden ist, ist lustig anzusehen und läuft endlos durch. Es erfordert zusätzliche Steuerlogik zum Zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
Für einen selbstrückstellenden Taktgeber wird nur ein einziger Kombinator für Entscheidungen benötigt, dessen Ausgang mit dem Eingang verbunden ist und der mit kleiner als (&amp;lt;) und Eingabe → Ausgabe konfiguriert ist. Wenn dann ein Kombinator für Konstanten an den Eingang angeschlossen wird, zählt er jeden Zyklus um den Wert des Kombinators für Konstanten hoch, bis der eingestellte Wert in der Bedingung erreicht ist, und gibt dann eine 0 aus, die mit dem Kombinator für Konstanten summiert wird und den Prozess zurücksetzt.&lt;br /&gt;
&lt;br /&gt;
Die Taktsequenz enthält keine 0. Sie beginnt bei dem im Kombinator für Konstanten eingestellten Wert und geht bis zu dem Wert, der schließlich dazu führt, dass die Bedingung falsch ist. Ein Kombinator für Berechnungen kann die Taktsequenz ändern, aber man muss daran denken, dass seine Ausgaben einen Zyklus später als die Eingangswerte des Taktzyklus auftreten.&lt;br /&gt;
&lt;br /&gt;
Ein Taktgenerator, der nur einmal zählt, kann mit dem folgenden Aufbau erstellt werden:&lt;br /&gt;
&lt;br /&gt;
[[File:Onetime_Clock.png|thumb|none|360px|Einmaliger Taktgeber. Läuft bis T=Z+1. Rücksetzen über R&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
== Impulsgeneratoren ==&lt;br /&gt;
&lt;br /&gt;
Wenn man einen zusätzlichen Kombinator für Entscheidungen (=) an den Ausgang eines einfachen Taktgebers anschließt, kann man man ein Impulsgenerator bauen, der jedes Mal, wenn der Takt die eingestellte Bedingung durchläuft, einen einzelnen Puls am Ausgang ausgibt. Jeder beliebige Ausgangswert kann verwendet werden, entweder direkt von der Taktsequenz (Eingang → Ausgang), eine 1, oder ein Wert auf einem separaten Logikkanal des Schaltungsnetzes, wie er von einem Kombinator für Konstanten gesetzt wird, oder vom Schaltungsnetz selbst.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PulseGen.png|500px]]&lt;br /&gt;
*&#039;&#039;Der Wert 1 kann als beliebige positive ganze Zahl geschrieben werden, solange er innerhalb der Grenzen des Taktgenerators liegt.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Mit obigem Taktgenerator würde dieses Licht jeden 1. Tick pulsieren, nachdem der Taktgeber 30 Ticks erreicht hat. Das bedeutet, dass es 1/30 einer Sekunde pulsiert, da Factorio Schaltungen 60 Mal pro Sekunde aktualisiert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Zähler ==&lt;br /&gt;
Ein Zähler wird verwendet, um eine Anzahl von Eingangsereignissen zu zählen und die Summe dieser Zählung auszugeben. Jeder pulsierende Eingang in einen Kombinator für Entscheidungen, der als Eingang → Ausgang konfiguriert und Ausgang und Eingang verbunden hat, erzeugt einen Zähler. Dieser Eingang muss zu allen anderen Zeiten 0 sein, sonst läuft der Kombinator wie eine Uhr durchgängig.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird dazu ein Impulsgenerator verwendet. Schaltet man mehrere Kombinatoren für Entscheidungen mit sequentiellen Bedingungen, die als Isolator dienen, mit einem Taktgeber und einem Impulsgenerator zusammen an den Eingang eines Zählers, kann man die Inhalte der einzelnen Kombinatoren abfragen und zählen.&lt;br /&gt;
&lt;br /&gt;
== Logikgatter ==&lt;br /&gt;
&lt;br /&gt;
Einige Logikgatter funktionieren nur mit booleschen Werten, bei denen die Eingänge entweder 0 oder 1 sind.&lt;br /&gt;
Andere Logikgatter funktionieren auch mit anderen Werten, z.B. 2.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Eingebaut&#039;&#039;&#039;===&lt;br /&gt;
Der Kombinator für Berechnungen hat eingebaute OR-, XOR- und AND-Operatoren.&lt;br /&gt;
Diese arbeiten bitweise, d. h. sie führen die Operation auf jedem Bit der Zahl im Binärformat aus und geben das Ergebnis zurück.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für den bitweisen AND-Operator:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 4  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 3  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 30  || 10&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 40  || 8&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn die Eingänge nur aus booleschen Werten (1 oder 0) bestehen, können die Operatoren des Kombinators für Berechnungen als Logikgatter verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Monadisches NOT&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOT.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres OR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:OR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingängen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:AND.png|530px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Berechnungen funktioniert für nicht-boolesche Werte und gibt nicht-boolesche Werte zurück, wenn sie als Eingabe gegeben werden, aber nur, wenn beide Werte nicht 0 sind.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Entscheidungen funktioniert nur für boolesche Werte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;1&amp;quot; auf 1 weniger als die Anzahl der Eingänge oder die angezeigte &amp;quot;2&amp;quot; auf die Anzahl der Eingänge geändert wird, wie unten für ein ternäres UND gezeigt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Ternäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:TrinaryAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Eingang 3!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NAND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur für boolesche Eingangswerte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;2&amp;quot; in die Anzahl der Eingänge geändert wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XNOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingabewerten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Speicherzellen ==&lt;br /&gt;
&lt;br /&gt;
=== Einfaches Flipflop ===&lt;br /&gt;
&lt;br /&gt;
Wenn man den Kombinator in einer Schleife mit sich selbst verbindet, muss man andere Kabelfarbe verwenden als die Haupteingänge oder -ausgänge.&lt;br /&gt;
&lt;br /&gt;
[[File:SimpleLatchv2.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Ausgang 1!!Eingang 1!!Einmgang 2!! Ausgang 1 (t+1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;Ausgang 1 ist die grüne Schleife, die im Bild zu sehen ist. Sie trägt den zu speichernden Wert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Eingang 1 ist Set, und Eingang 2 ist Reset.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Positive Zelle ===&lt;br /&gt;
&lt;br /&gt;
Zelle zum Speichern eines positiven Wertes, mit Reset-Unterstützung:&lt;br /&gt;
&lt;br /&gt;
[[File:AdvancedMemoryCell.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Der gewünschte Wert wird als Signal I auf der rechten Seite angeschlossen, um die Speicherzelle zu setzen. Um die Zelle zurückzusetzen, schließt man einen negativen Wert als Signal I an.&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang der Speicherzelle ist 2 sich gegenseitig ausschließende Signale.&lt;br /&gt;
** Falls das Eingangssignal I &amp;gt; 0 ist, wird das Signal I auf die andere Seite weitergegeben.&lt;br /&gt;
** Falls das Eingangssignal I unterbrochen wird, wird stattdessen das Signal M als Speicher des vorherigen Eingangswertes ausgegeben.&lt;br /&gt;
* Wenn das Eingangssignal I unterbrochen wird, dauert es 2 Ticks, um auf das Speichersignal M umzuschalten.&lt;br /&gt;
* Wenn das Eingangssignal I nur einen Tick dauert, beginnt die Speicherzelle zwischen den beiden vorherigen Werten zu wechseln, Tick für Tick. Unbegrenzt.&lt;br /&gt;
* Die Umschaltung erfolgt nahtlos, d. h. es gibt keine Ticks mit Leersignal.&lt;br /&gt;
&lt;br /&gt;
=== Positiv- und Negativzelle ===&lt;br /&gt;
&lt;br /&gt;
Diese Zelle kann negative oder positive Werte speichern. Der Reset erfolgt auf einer eigenen Leitung. Zusätzlich wird ein 1-Tick-Burst korrekt behandelt. [https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=60330&amp;amp;p=362377#p362377 Forum Beitrag].&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang M (Speicher) ist der letzte Nicht-Null-Eingang I (Eingang).&lt;br /&gt;
* Ein Nicht-Null-Signal R (Reset) setzt den Ausgang auf Null.&lt;br /&gt;
* 1-Tick-Bursts von R oder I werden korrekt behandelt.&lt;br /&gt;
* Negative Werte werden korrekt behandelt.&lt;br /&gt;
&lt;br /&gt;
[[File:Memory_cell_with_negatives.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Multiplikator und Wörterbücher/Arrays ==&lt;br /&gt;
[[File:combinatorMultiplierDetailed.png|left|500px]]&lt;br /&gt;
* Die Multiplikation von zwei Signalen ist einfach und erfordert nur einen einzigen Kombinator. Die Multiplikation einer Gruppe von Signalen ist jedoch komplizierter.&lt;br /&gt;
* Ein Beweis für die Gleichung und warum sie funktioniert, wird unten gezeigt.&lt;br /&gt;
* Ein Wörterbuch ist ein System, mit dem auf einen Wert eines bestimmten Signals zugegriffen werden kann. Zum Beispiel kann A viele Signale enthalten (entweder von einem Kombinator für Konstanten oder einer Speicherzelle) und B kann 1 eines bestimmten Signals enthalten (z. B. das blaue Signal). Was übrig bleibt, ist der Wert des blauen Signals aus A. Das liegt daran, dass alle anderen Signale mit 0 multipliziert werden.&lt;br /&gt;
* Arrays sind ähnlich wie Wörterbücher, aber statt eines Signals als Schlüssel verwenden wir eine Zahl. Es werden Kombinatoren für Konstanten platziert, die jedes Signal auf eine eindeutige Zahl abbilden (z. B. 1 gelbes Fließband, 2 rotes Fließband, 3 blaues Fließband, 4 Befeuerter Greifarm, usw.). Dann verwendet man einen Kombinator mit &amp;quot;jedes = Index OUTPUT 1 von jedem&amp;quot; und setzen das als Eingabe in ein Wörterbuch ein.{{clear}}&lt;br /&gt;
[[File:combinatorMultiplierMath.png|left|500px]]&lt;br /&gt;
&lt;br /&gt;
    ((A+B)^2 - (A-B)^2)/4 = AB&lt;br /&gt;
    (A+B)^2 - (A-B)^2 = 4AB&lt;br /&gt;
    (A^2 + 2AB + B^2) - (A^2 - 2AB + B^2) = 4AB&lt;br /&gt;
    4AB = 4AB&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=14556 Combinators 101 (Tutorial)]&lt;br /&gt;
* {{TransLink|Tutorial:Circuit network cookbook}}&lt;br /&gt;
* {{TransLink|Circuit network}}&lt;br /&gt;
* {{TransLink|Arithmetic combinator}}&lt;br /&gt;
* {{TransLink|Constant combinator}}&lt;br /&gt;
* {{TransLink|Decider combinator}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208902</id>
		<title>Tutorial:Combinator tutorial/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial/de&amp;diff=208902"/>
		<updated>2025-01-09T15:31:30Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: /* Virtuelle Signale */ Groß-Kleinschreibung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Dies ist ein Tutorial für &#039;&#039;&#039;Fortgeschrittene&#039;&#039;&#039;. Anfänger sollten das {{TransLink|Tutorial:Circuit network cookbook}} für Beispiele und die {{TransLink|Circuit network}} Seite für einen Überblick über das Schaltungsnetz lesen. Dieses Tutorial setzt ein grundlegendes Verständnis von Schaltungen voraus und behandelt fortgeschrittenere Themen wie SR-Flipflops, Speicherzellen und Taktgeber.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Logikschaltungen mit Kombinatoren werden aufgebaut, indem man Ausgänge so mit Eingängen verknüpft, dass die erwünschte Operation durchgeführt wird. Komplexere Logik erfordert eine Vielzahl von Kombinatoren, aber einige sehr nützliche Grundfunktionen können bereits mit nur einer Handvoll Kombinatoren erreicht werden. Kombinator-Logik funktioniert, weil Factorio alle Aktualisierungen genau &#039;&#039;60 mal pro Sekunde&#039;&#039; durchführt, so dass Kombinatoren in einem Takt-Schritt ihre Logik ausführen und im nächsten Takt die resultierenden Ausgabewerte summiert werden oder Entscheidungen wirksam werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Logikwerte von Kombinatoren berechnet werden, werden die Ausgaben erst im nächsten Schritt vom Schaltungsnetz erkannt. Wenn also ein {{TransLink|Decider combinator}} verwendet wird, um eine bestimmte Eingangsbedingung zu erkennen, wird sein Ausgangswert erst im nächsten Schritt im Schaltungsnetz wirksam. &#039;&#039;&#039;Es ist wichtig, dieses Verhalten im Hinterkopf zu behalten. Es kann zu Sequenz-Fehlern und erheblichen Verzögerungen führen, wenn mehrere Kombinatoren in Reihe geschaltet sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das Schaltungsnetz verhält sich wie ein Drahtbus in der Elektronik. Es überträgt die Informationen aus allen angeschlossenen Drähten, d. h., wenn gleiche Signale auf einem Draht sind, werden diese automatisch addiert. Wenn das Signal unterschiedlich ist, wird es auch über diesem Draht übertragen, aber als unterschiedliches Signal.&lt;br /&gt;
&lt;br /&gt;
Beim Querverbinden von Kombinatoren ist es eine gute Praxis, die unbenutzte Farbe zum Querverbinden zu verwenden. Dadurch werden die Eingangs- und Ausgangsnetzwerke aufgeteilt und es wird verhindert, dass unerwünschte Eingänge versehentlich mit einem größeren Schaltungsnetz verbunden werden. Kombinatoren summieren die roten und grünen Eingänge vor der Berechnung, so dass bei der Rückverdrahtung des Ausgangs mit dem Eingang beide Farben verwendet werden können. In den meisten Fällen ist es jedoch sinnvoller, die entgegengesetzte Farbe des Drahtes zu verwenden, damit der resultierende Ausgang und Eingang nicht gestört wird.&lt;br /&gt;
&lt;br /&gt;
== Virtuelle Signale ==&lt;br /&gt;
&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|right|Die verfügbaren virtuellen Signale für das Schaltungsnetz]]&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Standard-Signalen für die Gegenstände enthält das Schaltungsnetz von Factorio auch eine Reihe von Signalen, die keinen bestimmten Spielgegenstand repräsentieren. Stattdessen dienen diese virtuellen Signale als benutzerdefinierte Kanäle für das Schaltungsnetz. Sie haben die Bedeutung, die der Benutzer ihnen zuweisen möchte. Derzeit gibt es 48 virtuelle Signale, die über das Schaltungsnetz gesendet werden können:&lt;br /&gt;
&lt;br /&gt;
* Die 36 alphanumerischen Zeichen (A-Z, 0-9)&lt;br /&gt;
* Neun Farben: Rot, Grün, Blau, Gelb, Magenta, Cyan, Weiß, Grau und Schwarz&lt;br /&gt;
* Drei Symbole: Ein Häkchen, ein Informationsbuchstabe &#039;i&#039; und ein kleiner, weißer Punkt&lt;br /&gt;
&lt;br /&gt;
=== Logische Signale ===&lt;br /&gt;
&lt;br /&gt;
Es gibt drei zusätzliche virtuelle Signale, die als &#039;&#039;Logiksignale&#039;&#039; bezeichnet werden. Im Gegensatz zu anderen Signalen können sie nicht über das Schaltungsnetz gesendet werden; stattdessen wenden sie zusätzliche Logik auf Kombinatoren an, die deren Verhalten verändern. Insbesondere fungieren diese Logiksymbole als Platzhalter, also als spezielle Signale, die &#039;&#039;&#039;null oder mehr&#039;&#039;&#039; beliebige Signale repräsentieren, anstatt ein einzelnes diskretes Signal darzustellen.  Das Schaltungsnetz von Factorio implementiert drei Arten von Platzhaltern.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Alles Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_everything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Alles&#039;&#039; wird bei Kombinatoren für Entscheidungen verwendet. Sein genaues Verhalten hängt davon ab, ob er als Eingang oder als Ausgang verwendet wird:&lt;br /&gt;
* &#039;&#039;&#039;Eingabe&#039;&#039;&#039;: Gibt wahr zurück, wenn &#039;&#039;alle&#039;&#039; Eingangssignale die Bedingung erfüllen, oder wenn es &#039;&#039;keine&#039;&#039; Eingangssignale gibt. Andernfalls gibt er falsch zurück.&lt;br /&gt;
* &#039;&#039;&#039;Ausgang&#039;&#039;&#039;: Gibt &#039;&#039;alle&#039;&#039; Eingangssignale ungleich Null zurück.&lt;br /&gt;
&lt;br /&gt;
Wenn er als Eingabe verwendet wird, kann man sich den Platzhalter &#039;&#039;Alles&#039;&#039; als logisches UND oder als [[:wikipedia:de:Allaussage|Allaussage]] vorstellen. Wenn er als Ausgang verwendet wird, wirkt er wie ein &amp;quot;Echo&amp;quot; oder &amp;quot;Dump&amp;quot; der Eingangssignale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Kann als Ausgang verwendet werden, solange die Eingabe nicht ein &#039;&#039;Jeweils&#039;&#039; Platzhalter ist.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Irgendetwas Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_anything.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Irgendetwas&#039;&#039; wird auch bei Kombinatoren für Entscheidungen verwendet.&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mindestens einem&#039;&#039;&#039; Eingangssignal gibt er wahr zurück, wenn &#039;&#039;irgendein&#039;&#039; Eingangssignal die Bedingung erfüllt. Wenn kein Signal die Bedingung erfüllt, oder keine Eingangssignale vorhanden sind, wird falsch zurückgegeben. Von diesem Verhalten her kann man sich den &#039;&#039;Irgendetwas&#039;&#039;-Platzhalter als logisches ODER oder als [[:wikipedia:de:Existenzaussage|Existenzaussage]] vorstellen.&lt;br /&gt;
&lt;br /&gt;
Wenn &#039;&#039;irgendetwas&#039;&#039; sowohl als Eingabe als auch als Ausgabe in einem Kombinator für Vergleiche verwendet wird, gibt es ein willkürlich gewähltes Signal aus denen zurück, die die Bedingung erfüllen.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Jeweils Platzhalter&amp;lt;/span&amp;gt; [[File:Signal_each.png|left|20px]] ====&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter &#039;&#039;Jeweils&#039;&#039; wird sowohl mit Kombinatoren für Entscheidungen als auch mit {{TransLink|Arithmetic combinator|Kombinatoren für Berechnungen}} verwendet und verhält sich im Vergleich zu den beiden vorherigen etwas anders. Im Allgemeinen führt er eine Kombinator-Aktion auf jedes Signal &#039;&#039;&#039;einzeln&#039;&#039;&#039; aus, wobei die genaue Aktion davon abhängt, wie er verwendet wird und in welcher Art er von Kombinator verwendet wird. Er kann als Eingang verwendet werden und ebenfalls als Ausgang, aber &#039;&#039;nur, wenn er auch als Eingang verwendet wird&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Entscheidungen&#039;&#039;&#039; vergleicht der Platzhalter &#039;&#039;Jeweils&#039;&#039; jedes Eingangssignal einzeln mit der Kombinatorbedingung und gibt jedes Signal zurück, das die Bedingung erfüllt. Die Art und Weise, wie der Platzhalter &#039;&#039;Jeweils&#039;&#039; Signale zurückgibt, wenn er als Eingang verwendet wird, hängt davon ab, ob er auch als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingabe&#039;&#039;&#039;: Summiert jedes Eingangssignal, das die Bedingung erfüllt, und gibt je nach Ausgabeeinstellungen entweder eine Anzahl der erfüllten Bedingungen oder eine Summierung der Eingangswerte als Ausgangssignal zurück.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Gibt jedes Signal zurück, das die Bedingung erfüllt hat, wobei die Werte von den Ausgangseinstellungen abhängen.&lt;br /&gt;
&lt;br /&gt;
In einem &#039;&#039;&#039;Kombinator für Berechnungen&#039;&#039;&#039; wird die vorgesehene arithmetische Operation individuell auf jedes Eingangssignal angewendet, und ähnlich wie beim Kombinator für Entscheidungen hängt das zurückgegebene Signal davon ab, ob der Platzhalter &#039;&#039;Jeweils&#039;&#039; als Ausgang verwendet wird oder nicht:&lt;br /&gt;
* &#039;&#039;&#039;Nur Eingang&#039;&#039;&#039;: Das Ergebnis jeder Operation auf den Eingangssignalen wird summiert und als Ausgangssignal zurückgegeben.&lt;br /&gt;
* &#039;&#039;&#039;Eingang und Ausgang&#039;&#039;&#039;: Jedes Eingangssignal wird mit dem Ergebnis der angegebenen Operation darauf angewendet zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Jeweils&#039;&#039;&#039;-Platzhalter ist also deutlich komplexer als die beiden anderen Platzhalter, bietet aber im Gegenzug für seine Komplexität eine gute Leistung.&lt;br /&gt;
&lt;br /&gt;
== Eingangs-Isolator &amp;amp; Gatter ==&lt;br /&gt;
Ein Kombinator für Berechnungen, der auf (Eingabe: Jeweils + 0, Ausgabe: Jeweils) gesetzt ist, kann zum Vertauschen von Drahtfarben und als Isolator verwendet werden, um zu verhindern, dass nachgeschaltete Logik in die Eingänge des Schaltungsnetzes zurückfließt.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Entscheidungen, der auf (Ausgabe: Alles, Eingang → Ausgang) eingestellt ist, fungiert ebenfalls als Isolator, solange die eingestellte Logikbedingung wahr ist. Dieser kann auch selektiv Eingänge nur dann durchlassen oder &amp;quot;steuern&amp;quot;, wenn dies gewünscht ist. Dies könnte verwendet werden, um entfernte Bahnhöfe sequentiell nach ihrem Kisteninhalt abzufragen und nur gewünschte Bahnhöfe einzuschließen.&lt;br /&gt;
&lt;br /&gt;
== Set/Reset Flipflop-Schalter ==&lt;br /&gt;
Manchmal benötigt man etwas, das einen Trigger auf eine bestimmte Menge setzt (SET), und dann so lange eingeschaltet BLEIBT, bis diese Menge einen anderen Wert erreicht (den RESET-Wert). Dafür benötigt man einen Kombinator für Entscheidungen und einen Kombinator für Berechnungen (Für komplexere mehrkanalige Bedingungen können auch zwei Kombinatoren für Entscheidungen und ein {{TransLink|Constant combinator}} verwendet werden).&lt;br /&gt;
&lt;br /&gt;
Man stellt den ersten Kombinator für Entscheidungen auf die gewünschte SET-Bedingung ein, so dass er dann eine 1 ausgibt. Dessen Ausgang wird mit dem Eingang eines Kombinators für Berechnungen verbunden, der die Eingabe mit dem Bias-Wert multipliziert, der die Differenz zwischen dem Set- und dem Reset-Wert darstellt. Sein Ausgang wird wiederum mit dem Eingang des Kombinators für Entscheidungen verbunden, so dass der Eingang des Entscheiders dem Ausgang des Berechners entspricht.&amp;lt;br&amp;gt;&lt;br /&gt;
Immer, wenn die eingestellte Bedingung erreicht wird, gibt der Kombinator für Entscheidungen eine &#039;1&#039; aus, und der Bias-Wert im Kombinator für Berechnungen wird angewendet. Dadurch wird der Ausgang so lange &#039;wahr&#039; gehalten, bis der Wert wieder unter den Rücksetzpunkt fällt.&lt;br /&gt;
&lt;br /&gt;
In diesem speziellen Beispiel läuft die Pumpe, wenn das Leichtöl 20000 erreicht, und schaltet sich aus, wenn es 5000 erreicht:&lt;br /&gt;
&lt;br /&gt;
[[File:SR_latch.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Beispiel für eine Dampf-Reserve mit genauer Beschreibung und Erklärung gibt es hier:&amp;lt;br&amp;gt;[[Tutorial:Circuit_network_cookbook/de#RS-Flipflop_-_Version_mit_einem_Kombinator_f.C3.BCr_Entscheidungen|RS-Flipflop - Version mit einem Kombinator]]&lt;br /&gt;
&lt;br /&gt;
== Intelligente Zugbeladung ==&lt;br /&gt;
Dies löst das Problem, dass die Beladung von Kisten mit einem bestimmten Gegenstand in aller Regel ungleicher und langsamer erfolgt als die Beladung von Zügen.&lt;br /&gt;
&lt;br /&gt;
Zum Aufbau wird ein Kombinator für Berechnungen sowie rotes und grünes Signalkabel benötigt. Zunächst verbinden wir alle verwendeten Kisten mit dem Eingang des Kombinators für Berechnungen. Im Kombinator für Berechnungen wird als Berechnung &#039;&#039;&#039;Gegenstand / -Anzahl der Kisten&#039;&#039;&#039; und als Ausgabe &#039;&#039;&#039;Gegenstand&#039;&#039;&#039; eingestellt. Dies ergibt den Durchschnitt der Anzahl der Gegenstände in den Kisten, mit einem negativen Vorzeichen. Als letztes werden alle verwendeten Greifarme mit andersfarbigem Signalkabel mit dem Ausgang des Kombinators verbunden. Die Greifarme so einstellen, dass sie aktivert werden, wenn &#039;&#039;&#039;Gegenstand &amp;lt; 1&#039;&#039;&#039; ist.&lt;br /&gt;
&lt;br /&gt;
Eine anschaulichere Darstellung sowie Fragen zum Design finden sich in einem reddit-Post: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station].&lt;br /&gt;
&lt;br /&gt;
Erläuterung, warum das funktioniert:&lt;br /&gt;
Der Kombinator berechnet die durchschnittliche Anzahl der Gegenstände in den Kisten als negative Zahl. Der Kisteninhalt des Greifarms ist positiv, und da das Schaltungsnetz implizit alle Eingaben addiert, ergibt sich bei der Addition des negativen Durchschnitts die Differenz aus Durchschnitt und Anzahl Gegenstände in der Kiste. Ist die Differenz kleiner als 1, also 0 oder negativ, befinden sich genauso viele oder weniger Gegenstände in der Kiste als der Durchschnitt, d.h. der Greifarm wird aktiviert. Anders herum ausgedrückt: ist die Differenz 1 oder größer, dann befinden sich mehr Gegenstände in der Kiste als der Durchschnitt und der Greifarm bleibt deaktiviert.&lt;br /&gt;
&lt;br /&gt;
== Speicher ==&lt;br /&gt;
Um beispielsweise einen Zähler zu realisieren, aber auch für komplexere Schaltungen, benötigt man einen Speicher, der die verarbeiteten Werte zwischenspeichert.&lt;br /&gt;
Hierzu setzen wir einen Kombinator für Entscheidungen ein, bei dem der Ausgang an den Eingang angeschlossen wird und als Kriterium größer als 0 (für positive Werte) eingestellt hat. Solange alle anderen Eingaben im Netz 0 sind, wird damit der Ausgabewert erhalten.&lt;br /&gt;
Jeder Eingang ungleich 0 erzeugt einen Grundtakt. In jedem Zyklus wird der gespeicherte Wert um die Summe aller angeschlossenen Eingangswerte erhöht. Ein einzelner Impuls eines Eingangs bewirkt somit eine einmalige Inkrementierung um den gepulsten Wert. Ein Rücksetzen des Zählers auf 0 erfolgt immer dann, wenn die eingestellte Bedingung nicht mehr erfüllt ist, oder wenn ein negativer Impuls in Höhe des Eingangswertesg auftritt.&lt;br /&gt;
&lt;br /&gt;
== Taktgeber ==&lt;br /&gt;
[[File:Timer.png|thumb|right|377px|Ein grundlegender Taktgeber. Signal 1 wird Tick für Tick erhöht bis 30 erreicht sind, dann beginnt er wieder bei 1.]]&lt;br /&gt;
Ein Taktgeber entsteht, wenn man den Ausgang eines Kombinators mit seinem eigenen Eingang verbindet, so dass jeder Zyklus den Zählerstand wieder an den Eingang zurückgibt. Es kann entweder der Kombinator für Berechnungen oder der Kombinator für Entscheidungen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Ein Kombinator für Berechnungen, der mit sich selbst verbunden ist, ist lustig anzusehen und läuft endlos durch. Es erfordert zusätzliche Steuerlogik zum Zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
Für einen selbstrückstellenden Taktgeber wird nur ein einziger Kombinator für Entscheidungen benötigt, dessen Ausgang mit dem Eingang verbunden ist und der mit kleiner als (&amp;lt;) und Eingabe → Ausgabe konfiguriert ist. Wenn dann ein Kombinator für Konstanten an den Eingang angeschlossen wird, zählt er jeden Zyklus um den Wert des Kombinators für Konstanten hoch, bis der eingestellte Wert in der Bedingung erreicht ist, und gibt dann eine 0 aus, die mit dem Kombinator für Konstanten summiert wird und den Prozess zurücksetzt.&lt;br /&gt;
&lt;br /&gt;
Die Taktsequenz enthält keine 0. Sie beginnt bei dem im Kombinator für Konstanten eingestellten Wert und geht bis zu dem Wert, der schließlich dazu führt, dass die Bedingung falsch ist. Ein Kombinator für Berechnungen kann die Taktsequenz ändern, aber man muss daran denken, dass seine Ausgaben einen Zyklus später als die Eingangswerte des Taktzyklus auftreten.&lt;br /&gt;
&lt;br /&gt;
Ein Taktgenerator, der nur einmal zählt, kann mit dem folgenden Aufbau erstellt werden:&lt;br /&gt;
&lt;br /&gt;
[[File:Onetime_Clock.png|thumb|none|360px|Einmaliger Taktgeber. Läuft bis T=Z+1. Rücksetzen über R&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
== Impulsgeneratoren ==&lt;br /&gt;
&lt;br /&gt;
Wenn man einen zusätzlichen Kombinator für Entscheidungen (=) an den Ausgang eines einfachen Taktgebers anschließt, kann man man ein Impulsgenerator bauen, der jedes Mal, wenn der Takt die eingestellte Bedingung durchläuft, einen einzelnen Puls am Ausgang ausgibt. Jeder beliebige Ausgangswert kann verwendet werden, entweder direkt von der Taktsequenz (Eingang → Ausgang), eine 1, oder ein Wert auf einem separaten Logikkanal des Schaltungsnetzes, wie er von einem Kombinator für Konstanten gesetzt wird, oder vom Schaltungsnetz selbst.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PulseGen.png|500px]]&lt;br /&gt;
*&#039;&#039;Der Wert 1 kann als beliebige positive ganze Zahl geschrieben werden, solange er innerhalb der Grenzen des Taktgenerators liegt.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Mit obigem Taktgenerator würde dieses Licht jeden 1. Tick pulsieren, nachdem der Taktgeber 30 Ticks erreicht hat. Das bedeutet, dass es 1/30 einer Sekunde pulsiert, da Factorio Schaltungen 60 Mal pro Sekunde aktualisiert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Zähler ==&lt;br /&gt;
Ein Zähler wird verwendet, um eine Anzahl von Eingangsereignissen zu zählen und die Summe dieser Zählung auszugeben. Jeder pulsierende Eingang in einen Kombinator für Entscheidungen, der als Eingang → Ausgang konfiguriert und Ausgang und Eingang verbunden hat, erzeugt einen Zähler. Dieser Eingang muss zu allen anderen Zeiten 0 sein, sonst läuft der Kombinator wie eine Uhr durchgängig.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird dazu ein Impulsgenerator verwendet. Schaltet man mehrere Kombinatoren für Entscheidungen mit sequentiellen Bedingungen, die als Isolator dienen, mit einem Taktgeber und einem Impulsgenerator zusammen an den Eingang eines Zählers, kann man die Inhalte der einzelnen Kombinatoren abfragen und zählen.&lt;br /&gt;
&lt;br /&gt;
== Logikgatter ==&lt;br /&gt;
&lt;br /&gt;
Einige Logikgatter funktionieren nur mit booleschen Werten, bei denen die Eingänge entweder 0 oder 1 sind.&lt;br /&gt;
Andere Logikgatter funktionieren auch mit anderen Werten, z.B. 2.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Eingebaut&#039;&#039;&#039;===&lt;br /&gt;
Der Kombinator für Berechnungen hat eingebaute OR-, XOR- und AND-Operatoren.&lt;br /&gt;
Diese arbeiten bitweise, d. h. sie führen die Operation auf jedem Bit der Zahl im Binärformat aus und geben das Ergebnis zurück.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für den bitweisen AND-Operator:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingan 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 4  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 3  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 30  || 10&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 40  || 8&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn die Eingänge nur aus booleschen Werten (1 oder 0) bestehen, können die Operatoren des Kombinators für Berechnungen als Logikgatter verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Monadisches NOT&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOT.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres OR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:OR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert für eine beliebige Anzahl von Eingängen, die alle als das Signal &amp;quot;A&amp;quot; gesendet werden. Dies funktioniert sowohl für boolesche Eingänge als auch für andere Werte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XOR.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingängen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:AND.png|530px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Berechnungen funktioniert für nicht-boolesche Werte und gibt nicht-boolesche Werte zurück, wenn sie als Eingabe gegeben werden, aber nur, wenn beide Werte nicht 0 sind.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Das angegebene Beispiel für den Kombinator für Entscheidungen funktioniert nur für boolesche Werte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;1&amp;quot; auf 1 weniger als die Anzahl der Eingänge oder die angezeigte &amp;quot;2&amp;quot; auf die Anzahl der Eingänge geändert wird, wie unten für ein ternäres UND gezeigt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Ternäres AND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:TrinaryAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Eingang 3!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres NAND&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:NAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur für boolesche Eingangswerte. Es kann für eine beliebige Anzahl von Eingängen geändert werden, indem die angezeigte &amp;quot;2&amp;quot; in die Anzahl der Eingänge geändert wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Binäres XNOR&#039;&#039;&#039;===&lt;br /&gt;
----&lt;br /&gt;
[[File:XAND.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Eingang 1!!Eingang 2!!Ausgang&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0  || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0  || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1  || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;*Hinweis: Dies funktioniert nur bei booleschen Eingabewerten.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Speicherzellen ==&lt;br /&gt;
&lt;br /&gt;
=== Einfaches Flipflop ===&lt;br /&gt;
&lt;br /&gt;
Wenn man den Kombinator in einer Schleife mit sich selbst verbindet, muss man andere Kabelfarbe verwenden als die Haupteingänge oder -ausgänge.&lt;br /&gt;
&lt;br /&gt;
[[File:SimpleLatchv2.png|415px]]&lt;br /&gt;
&lt;br /&gt;
Wahrheitstabelle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Ausgang 1!!Eingang 1!!Einmgang 2!! Ausgang 1 (t+1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || 1 &#039;&#039;(2)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;Ausgang 1 ist die grüne Schleife, die im Bild zu sehen ist. Sie trägt den zu speichernden Wert.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Eingang 1 ist Set, und Eingang 2 ist Reset.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Positive Zelle ===&lt;br /&gt;
&lt;br /&gt;
Zelle zum Speichern eines positiven Wertes, mit Reset-Unterstützung:&lt;br /&gt;
&lt;br /&gt;
[[File:AdvancedMemoryCell.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Der gewünschte Wert wird als Signal I auf der rechten Seite angeschlossen, um die Speicherzelle zu setzen. Um die Zelle zurückzusetzen, schließt man einen negativen Wert als Signal I an.&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang der Speicherzelle ist 2 sich gegenseitig ausschließende Signale.&lt;br /&gt;
** Falls das Eingangssignal I &amp;gt; 0 ist, wird das Signal I auf die andere Seite weitergegeben.&lt;br /&gt;
** Falls das Eingangssignal I unterbrochen wird, wird stattdessen das Signal M als Speicher des vorherigen Eingangswertes ausgegeben.&lt;br /&gt;
* Wenn das Eingangssignal I unterbrochen wird, dauert es 2 Ticks, um auf das Speichersignal M umzuschalten.&lt;br /&gt;
* Wenn das Eingangssignal I nur einen Tick dauert, beginnt die Speicherzelle zwischen den beiden vorherigen Werten zu wechseln, Tick für Tick. Unbegrenzt.&lt;br /&gt;
* Die Umschaltung erfolgt nahtlos, d. h. es gibt keine Ticks mit Leersignal.&lt;br /&gt;
&lt;br /&gt;
=== Positiv- und Negativzelle ===&lt;br /&gt;
&lt;br /&gt;
Diese Zelle kann negative oder positive Werte speichern. Der Reset erfolgt auf einer eigenen Leitung. Zusätzlich wird ein 1-Tick-Burst korrekt behandelt. [https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=60330&amp;amp;p=362377#p362377 Forum Beitrag].&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang M (Speicher) ist der letzte Nicht-Null-Eingang I (Eingang).&lt;br /&gt;
* Ein Nicht-Null-Signal R (Reset) setzt den Ausgang auf Null.&lt;br /&gt;
* 1-Tick-Bursts von R oder I werden korrekt behandelt.&lt;br /&gt;
* Negative Werte werden korrekt behandelt.&lt;br /&gt;
&lt;br /&gt;
[[File:Memory_cell_with_negatives.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Multiplikator und Wörterbücher/Arrays ==&lt;br /&gt;
[[File:combinatorMultiplierDetailed.png|left|500px]]&lt;br /&gt;
* Die Multiplikation von zwei Signalen ist einfach und erfordert nur einen einzigen Kombinator. Die Multiplikation einer Gruppe von Signalen ist jedoch komplizierter.&lt;br /&gt;
* Ein Beweis für die Gleichung und warum sie funktioniert, wird unten gezeigt.&lt;br /&gt;
* Ein Wörterbuch ist ein System, mit dem auf einen Wert eines bestimmten Signals zugegriffen werden kann. Zum Beispiel kann A viele Signale enthalten (entweder von einem Kombinator für Konstanten oder einer Speicherzelle) und B kann 1 eines bestimmten Signals enthalten (z. B. das blaue Signal). Was übrig bleibt, ist der Wert des blauen Signals aus A. Das liegt daran, dass alle anderen Signale mit 0 multipliziert werden.&lt;br /&gt;
* Arrays sind ähnlich wie Wörterbücher, aber statt eines Signals als Schlüssel verwenden wir eine Zahl. Es werden Kombinatoren für Konstanten platziert, die jedes Signal auf eine eindeutige Zahl abbilden (z. B. 1 gelbes Fließband, 2 rotes Fließband, 3 blaues Fließband, 4 Befeuerter Greifarm, usw.). Dann verwendet man einen Kombinator mit &amp;quot;jedes = Index OUTPUT 1 von jedem&amp;quot; und setzen das als Eingabe in ein Wörterbuch ein.{{clear}}&lt;br /&gt;
[[File:combinatorMultiplierMath.png|left|500px]]&lt;br /&gt;
&lt;br /&gt;
    ((A+B)^2 - (A-B)^2)/4 = AB&lt;br /&gt;
    (A+B)^2 - (A-B)^2 = 4AB&lt;br /&gt;
    (A^2 + 2AB + B^2) - (A^2 - 2AB + B^2) = 4AB&lt;br /&gt;
    4AB = 4AB&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=14556 Combinators 101 (Tutorial)]&lt;br /&gt;
* {{TransLink|Tutorial:Circuit network cookbook}}&lt;br /&gt;
* {{TransLink|Circuit network}}&lt;br /&gt;
* {{TransLink|Arithmetic combinator}}&lt;br /&gt;
* {{TransLink|Constant combinator}}&lt;br /&gt;
* {{TransLink|Decider combinator}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Map_editor&amp;diff=208575</id>
		<title>Map editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Map_editor&amp;diff=208575"/>
		<updated>2024-12-30T23:08:31Z</updated>

		<summary type="html">&lt;p&gt;Eisberg: Typo / missing char&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
[[File:map_editor_gui.png|thumb|170px|right|Map editor GUI in the entity editor mode.]]Factorio includes a fully featured map editor. You can access it by selecting &amp;quot;Map editor&amp;quot; on the Factorio main menu, or by either using the console command &amp;quot;/editor&amp;quot;  or pressing Ctrl+Shift+F11 in-game. In-game, /editor can also be used to leave the map editor again. Enabling the editor disables achivements.&lt;br /&gt;
&lt;br /&gt;
The editor allows the player full creative control to completely change map terrain, clone parts of the map and much more. However, the map editor cannot be used to create custom scenario &#039;&#039;scripts&#039;&#039;, for that see [[modding]].&lt;br /&gt;
&lt;br /&gt;
== Editor modes ==&lt;br /&gt;
The &amp;quot;Tools&amp;quot; tab in the GUI shown in the top left when using the map editor allows to switch between different map editor modes. Each of the modes provides different tools and ways to change the map. All editor modes use {{Keybinding|Q}} to clear the cursor, like the normal game. Placing entities/tiles/decoratives is done using {{Keybinding|lmb}}, they can be removed with {{Keybinding|rmb}}. The size of brushes and sprays can be increased and decreased using {{Keybinding|numplus}} and {{Keybinding|numminus}}.&lt;br /&gt;
&lt;br /&gt;
=== None ===&lt;br /&gt;
The &amp;quot;None&amp;quot; mode is the default editor mode when opening the map editor. It works very similar to the normal game, mostly providing additional utilities such as instant blueprinting, deconstruction and upgrading, and the ability to craft any item infinitely, even if item is not researched yet or hidden. Similarly, recipes in machines can be set even if they are not researched yet. The &amp;quot;None&amp;quot;, surface and time editor modes are the only modes where the player&#039;s inventory is accessible so the mentioned features can be used.&lt;br /&gt;
&lt;br /&gt;
=== Decoratives ===&lt;br /&gt;
The decoratives editor mode allows to place and delete and decorative as desired. The brush allows to place decoratives in a large area at once, while the cursor place single decoratives.&lt;br /&gt;
&lt;br /&gt;
In this mode, it is possible to see the bounding boxes of the decoratives when hovering near them with an empty cursor. The graphical variation of the decorative depends on its position in the world and cannot be changed.&lt;br /&gt;
&lt;br /&gt;
=== Entities ===&lt;br /&gt;
The entities editor mode can be used to bulk place many entities at once or to place entities that don&#039;t have an associated item.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;build-as force&amp;quot; option allows to choose the force the entities should be placed as. The brush and spray tools allow to place many entities at once. The difference between spray and brush is that the brush will not place more entities on already placed areas without clicking again.&lt;br /&gt;
&lt;br /&gt;
=== Forces ===&lt;br /&gt;
Forces can be created and deleted using the forces editor mode. Furthermore, entities can be selected to change their force. The red flag that can be placed with this editor mode changes the spawn location of that force on that surface.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
The resources editor mode allows to easily create or delete resources. The difference between spray and brush is that the brush will not place more resources on already placed areas without clicking again. The intensity setting controls how rich the resource entities are. The slider does not allow much variation in this by default, however the textfield next to it is not limited in any way, so it can be used to set much higher richness.&lt;br /&gt;
&lt;br /&gt;
=== Surfaces ===&lt;br /&gt;
The surface editor mode allows to create and delete surface and switch between them. Furthermore, it can be used to remove all entities from a surface, change the surface&#039;s map generation settings, remove chunks that contain only out-of-map tiles and more. Additionally, it is possible to import a different save file into the save that is currently being edited. This operation will create a new surface that contains the map from the imported save file.&lt;br /&gt;
&lt;br /&gt;
=== Tiles ===&lt;br /&gt;
The tile editor mode allows to place any kind of tile, anywhere. The brush mode can be used for bulk placing and the paint bucket can be used to easily replace one tile type with another. To place other tiles on out-of-map tiles, {{Keybinding|shift}} must be held. The variations tab allows to randomize what graphics the tiles use, each tile has up to 16 different graphics variations that it can be use.&lt;br /&gt;
&lt;br /&gt;
=== Cloning ===&lt;br /&gt;
The clone editor mode allows to clone entire areas of the map, including decoratives and tiles, or to clone single entities. To de-select the clone source area/entity or set an entity as the source entity, use {{Keybinding|Q}}.&lt;br /&gt;
&lt;br /&gt;
=== Areas and positions ===&lt;br /&gt;
The area and position editor mode allows to create positions and areas in the world that can be named. These can then be easily accessed in scripts.&lt;br /&gt;
&lt;br /&gt;
=== Time ===&lt;br /&gt;
The time editor mode can be used to pause and unpause the game, make it run only for a single tick/a custom interval or to speed up/slow down the game. Furthermore, it can be used to control the current day time and how long one day takes.&lt;br /&gt;
&lt;br /&gt;
=== Cliffs ===&lt;br /&gt;
The cliff editor mode allows to create cliffs easily. They can be placed in lines by holding and dragging the mouse, or be placed a single entities. Use {{Keybinding|R}} and {{Keybinding|shift|R}} when placing single cliffs to rotate through all their possible orientations.&lt;br /&gt;
&lt;br /&gt;
== Setting up research ==&lt;br /&gt;
&lt;br /&gt;
In the technology GUI {{Keybinding|T}} technologies can be instantly researched by shift clicking the research button after selecting the desired technology. Already researched technologies can be un-researched by selecting the technology and clicking &amp;quot;unresearch&amp;quot;. Furthermore, the console is accessible like in the normal game, so it can be used to research all technologies and more: [[Console]].&lt;br /&gt;
&lt;br /&gt;
== Saving scenarios ==&lt;br /&gt;
&lt;br /&gt;
Maps created with the map editor can be saved as [[Scenario system|Scenarios]] via the in-game escape menu. These scenarios are saved to the [[user data directory]]. The scenario may then be played from selecting Play-&amp;gt;Custom Scenario from the Main Menu. Alternatively, it can be played directly from the escape menu, using the &amp;quot;save and play&amp;quot; option. If one wishes to add scripting to the scenario, they may do so by modifying the control.lua file created inside the scenario file.&lt;br /&gt;
&lt;br /&gt;
{{C|Main}}&lt;/div&gt;</summary>
		<author><name>Eisberg</name></author>
	</entry>
</feed>