Technik Wiki
KKeine Bearbeitungszusammenfassung
(In Downloadwelt enthalten: Redstone-Welt 1.14a)
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unterseite|
+
{{Unterseite|gruppe=Schaltnetze|
{{Seitenkopf|re=1}}
+
{{Seitenkopf|re=1|dw=r}}
{{Technik-Familien|Redstone-Komparator}}
 
{{Neue Technik|r|1}}
 
|
 
 
}}
 
}}
 
Der '''Vergleicher''' kann erkennen, je nach Ausführung, ob die Werte von den zu vergleichenden Variablen gleich groß <code>=</code>, ungleich <code>!=</code>, kleiner <code><</code>, kleiner gleich <code><=</code>, größer <code>></code> oder größer gleich <code>>=</code> sind.
 
Der '''Vergleicher''' kann erkennen, je nach Ausführung, ob die Werte von den zu vergleichenden Variablen gleich groß, ungleich, kleiner, kleiner gleich, größer oder größer gleich sind. Dabei können die Variablen positiv wie auch negativ sein.
 
   
 
== Variante 1 ==
 
== Variante 1 ==
 
{{Voraussetzung|
 
{{Voraussetzung|
*[[Schaltnetze/Zähler (Befehle)]]
+
*[[Zähler (Befehle)]]
*[[Schaltnetze/Addierer (Befehle)]]
+
*[[Addierwerk (Befehle)]]
*{{b|/tellraw}}
 
*{{b|/scoreboard}}
 
*{{b|/testforblock}}
 
 
|
 
|
* {{Gridbild|Hebel|link}}
+
*{{Gridbild|Hebel|link}}
* {{Gridbild|Redstone-Fackel|link}}
+
*{{Gridbild|Redstone-Fackel|link}}
* {{Gridbild|Befehlsblock|link}}
+
*{{Gridbild|Befehlsblock|link}}
* {{Gridbild|Ketten-Befehlsblock|link}}
+
*{{Gridbild|Ketten-Befehlsblock|link}}
* {{Gridbild|Wiederhol-Befehlsblock|link}}
+
*{{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
[[Datei:Schaltnetze Vergleicher (Befehle) Bild 1.1.png|400px]]
+
[[Datei:Vergleicher (Befehle) Bild 1.1.png|400px]]
   
  +
Dieser Vergleicher kann zwei Variablen die man mit Hilfe der Chat-Eingabe erhöhen kann, auf Gleichheit und Ungleichheit prüfen. Die Ergebnisse davon werden ebenfalls im Chat angezeigt.
Mit diesem Vergleicher kann man zwei Variablen mit einander auf Gleichheit prüfen und sich ausgeben lassen. Die beiden Variablen können dabei nicht negativ eingestellt werden, da dies dieser Vergleicher dies nicht unterstützt. Zuerst legt man das Punktestand-Ziel an{{bb|1|1}}, welches man auch wieder löschen kann, wenn man den Hebel wieder in Ausgangsstellung legt, da dabei die Redstone-Fackel wieder an geht und so den Befehlsblock aktiviert{{bb|1|2}}. Nun legt man die Variablen an, die man vergleichen möchte{{bb|1|3}}{{bb|1|4}}{{bb|1|5}}{{bb|1|6}}. Da man nicht direkt vergleichen kann, muss man sich eines Tricks bedienen: Man vergleicht, in dem man einfach den Wert der einen Variable von dem anderen abzieht und dann testet, ob der übrig gebliebene Betrag null ist. Wenn es der Fall ist, müssen beide Werte gleich sein, sonst sind sie verschieden. Dazu wird eine dritte Vergleichsvariable angelegt, die den Wert der ersten Variable bekommt{{bb|1|7}} und dann wird von dieser der Betrag von der zweiten Variable abgezogen{{bb|1|8}}. Nun testet der nächste Ketten-Befehlsblock, ob der Wert der Vergleichsvariable null ist{{bb|1|9}}. Wenn das der Fall ist, wird nun eine Nachricht in den Chat geschrieben, die dies ausgibt{{bb|1|10}}. Wenn sie nicht null ist, wird stattdessen ein weiterer Ketten-Befehlsblock genau dies prüfen{{bb|1|11}} und damit die zweite Nachricht aktivieren, welche die Unlgeichheit mitteilt{{bb|1|12}}.
 
  +
  +
;Einschalten
  +
*{{bb|1|1}} Das Punktestand-Ziel wird erstellt, welches es ermöglicht, dass man im Chat auf Nachrichten etwas auslösen kann.
  +
*{{bb|1|2}} Ein Rüstungsständer für die Gleichheit mit dem Namen "wahr" wird erstellt.
  +
*{{bb|1|3}} Ein Rüstungsständer für die Ungleichheit mit dem Namen "falsch" wird erstellt.
  +
*{{bb|1|4}} Den beiden Rüstungsständern sowie den beiden Variablen wird der Wert null zugewiesen. Dies funktioniert, weil keine der Variablen einen Wert besitzt und dann wird einfach der Wert null angenommen.
  +
  +
;Wiederholen
  +
*{{bb|1|5}} Wenn der Spieler den Auslöser im Chat für die erste Variable ausgelöst hat, besitzt er den Wert eins und lässt somit den Wert der Variable 1 um eins erhöhen.
  +
*{{bb|1|6}} Gleiches gilt für die zweite Variable, auch hier wird sie um eins erhöht wenn der Spieler auf diese geklickt hat.
  +
*{{bb|1|7}} Wenn der Spieler irgend eine Schaltfläche im Chat angeklickt hat, wird geprüft ob die beiden Variablen gleich sind. Das Ergebnis daraus wird dann in den Gleichheits-Rüstungsständer gespeichert.
  +
*{{bb|1|8}} Gleiches gilt für den Ungleichheits-Rüstungsständer.
  +
*{{bb|1|9}} Im gleichen Moment wird aus dem Wert des Rüstungsständer auch der entsprechende Name gesetzt: <code>1</code> für "wahr" und <code>0</code> für "falsch"{{bb|1|10|up=1}}
  +
*{{bb|1|11}} Wenn sich der Gleichheits-Rüstungsständer in der Welt befindet, wird allen Spielern im Umkreis von 25 Metern eine Chat-Nachricht angezeigt, wenn sie nicht den Wert null besitzen. In dieser können die beiden Variablen angeklickt werden und die Ergebnisse werden angezeigt.
  +
*{{bb|1|12}} Spieler die nicht den Wert null besitzen erhalten die Möglichkeit den Auslöser zu betätigen.
  +
*{{bb|1|13}} Ebenfalls wird diesen Spielern auch der Wert auf null gesetzt.
  +
  +
;Ausschalten
  +
*{{bb|1|14}} Das Punktestand-Ziel wird entfernt
  +
*{{bb|1|15}} Alle Rüstungsständer die erstellt wurden, werden wieder gelöscht.
   
 
{{Ausklappmenü|offen=1|{{bb}}|
 
{{Ausklappmenü|offen=1|{{bb}}|
{{bb|1|1|i|4=/scoreboard objectives add PZVergl:1Wert dummy}}
+
{{bb|1|1|i|4=scoreboard objectives add PZVergl.1Bool trigger ["Vergleicher.1: ",{"text":"Boolescher Wert der Variablen","bold":true}]}}
 
{{bb|1|2|k|4=summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1GLEICH"]} }}
 
{{bb|1|3|k|4=summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1UNGLEICH"]} }}
  +
{{bb|1|4|k|4=execute store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool run scoreboard players operation VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool}}
   
{{bb|1|3|i|4=/scoreboard players add #VarVergl:1ZahlA PZVergl:1Wert 1}}
 
{{bb|1|4|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:1"},{"text":" Der erste Wert für den Vergleich wurde um eins erhöht: "},{"score":{"name":"#VarVergl:1ZahlA","objective":"PZVergl:1Wert"} } ] }}
 
   
{{bb|1|5|i|4=/scoreboard players add #VarVergl:1ZahlB PZVergl:1Wert 1}}
+
{{bb|1|5|w|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=1}] run scoreboard players add VarVergl.1Variable1 PZVergl.1Bool 1}}
  +
{{bb|1|6|k|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=2}] run scoreboard players add VarVergl.1Variable2 PZVergl.1Bool 1 }}
{{bb|1|6|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:1"},{"text":" Der zweite Wert für den Vergleich wurde um eins erhöht: "},{"score":{"name":"#VarVergl:1ZahlB","objective":"PZVergl:1Wert"} } ] }}
 
  +
{{bb|1|7|k|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool if score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool}}
  +
{{bb|1|8|k|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool unless score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool}}
  +
{{bb|1|9|k|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=1},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'} }}
  +
{{bb|1|10|k|4=execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=0},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'} }}
  +
{{bb|1|11|k|4=execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run tellraw @s ["Vergleicher.1: ",{"text":"\nvar1 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 1"} },{"score":{"name":"VarVergl.1Variable1","objective":"PZVergl.1Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 2"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 2"} },{"score":{"name":"VarVergl.1Variable2","objective":"PZVergl.1Bool"},"color":"dark_purple","bold":true},{"text":"\n(var1 == var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Gleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 != var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Ungleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}] }}
  +
{{bb|1|12|k|4=execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players enable @s PZVergl.1Bool }}
  +
{{bb|1|13|k|4=execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players set @s PZVergl.1Bool 0 }}
   
{{bb|1|7|i|4=/scoreboard players operation #VarVergl:1ErgebnisZahl PZVergl:1Wert = #VarVergl:1ZahlA PZVergl:1Wert}}
 
{{bb|1|8|kb|4=/scoreboard players operation #VarVergl:1ErgebnisZahl PZVergl:1Wert -= #VarVergl:1ZahlB PZVergl:1Wert}}
 
{{bb|1|9|kb|4=/scoreboard players test #VarVergl:1ErgebnisZahl PZVergl:1Wert 0 0}}
 
{{bb|1|10|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:1"},{"text":" Die beiden Werte "},{"score":{"name":"#VarVergl:1ZahlA","objective":"PZVergl:1Wert"} },{"text":" und "},{"score":{"name":"#VarVergl:1ZahlB","objective":"PZVergl:1Wert"} },{"text":" sind gleich "} ] }}
 
{{bb|1|11|k|4=/testforblock ~-2 ~ ~ minecraft:chain_command_block * {SuccessCount:0} }}
 
{{bb|1|12|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:1"},{"text":" Die beiden Werte "},{"score":{"name":"#VarVergl:1ZahlA","objective":"PZVergl:1Wert"} },{"text":" und "},{"score":{"name":"#VarVergl:1ZahlB","objective":"PZVergl:1Wert"} },{"text":" sind ungleich "} ] }}
 
   
{{bb|1|2|i|4=/scoreboard objectives remove PZVergl:1Wert}}
+
{{bb|1|14|i|4=scoreboard objectives remove PZVergl.1Bool}}
 
{{bb|1|15|k|4=kill @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle] }}
 
}}
 
}}
   
 
== Variante 2 ==
 
== Variante 2 ==
 
{{Voraussetzung|
 
{{Voraussetzung|
*[[Schaltnetze/Zähler (Befehle)]]
+
*[[Zähler (Befehle)]]
*[[Schaltnetze/Addierer (Befehle)]]
+
*[[Addierwerk (Befehle)]]
 
*[[#Variante 1|Variante 1]]
 
*[[#Variante 1|Variante 1]]
*{{b|/tellraw}}
 
*{{b|/scoreboard}}
 
 
|
 
|
 
* {{Gridbild|Hebel|link}}
 
* {{Gridbild|Hebel|link}}
 
* {{Gridbild|Redstone-Fackel|link}}
 
* {{Gridbild|Redstone-Fackel|link}}
 
* {{Gridbild|Befehlsblock|link}}
 
* {{Gridbild|Befehlsblock|link}}
* {{Gridbild|Ketten-Befehlsblock|link}}
 
 
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
[[Datei:Schaltnetze Vergleicher (Befehle) Bild 2.1.png|400px]]
+
{{Bilderfolge|#1#2|Vergleicher (Befehle) Bild 2.|400px|list=1}}
   
  +
Mit diesem Vergleicher kann man zwei Variablen auf Gleichheit, Ungleichheit, größergleich, kleinergleich, größer und kleiner prüfen. Die Variablen lassen sich per Chat-Eingabe erhöhen oder erniedrigen. Die Ergebnisse werden auch im Chat ausgegeben.
Mit diesem Vergleicher kann man zwei Variablen auf Gleichheit, größer als und kleiner als prüfen lassen. Negative Werte werden auch hier nicht unterstützt. Wie bei Variante 1 wird hier wieder ein Punktestand-Ziel benötigt{{bb|2|1}}, mit der man die zwei Variablen festlegen kann{{bb|2|3}}{{bb|2|4}}{{bb|2|5}}{{bb|2|6}}. Wenn die zwei Variablen mit den gewünschten Wert ausgestattet sind, kann man sie vergleichen. Dazu wird eine dritte Variable angelegt, die den Wert der ersten Variable übertragen bekommt{{bb|2|7}}. Anschließend wird der Wert der zweiten Variable von der dritten variable abgezogen{{bb|2|8}}. Wenn beide Variablen gleich große Werte besaßen wird die dritte Variable nun einen Wert von null aufweisen{{bb|2|9}} und den dafür notwendigen Chat-Befehl auslösen{{bb|2|10}}. Ansonsten wird geprüft ob die dritte Variable kleiner gleich minus eins ist{{bb|2|11}}, dann ist die erste Variable kleiner und es wird der entsprechende Chat-Befehl ausgegeben{{bb|2|12}}. Als letztes wird der umgekehrte Fall überprüft{{bb|2|13}}{{bb|2|14}}. Um alle Variablen zu löschen, muss nur das Punktestand-Ziel gelöscht werden{{bb|2|2}}.
 
   
  +
;Einschalten
{{Ausklappmenü|offen=1|{{bb}}|
 
  +
* {{bb|2|1}} Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
{{bb|2|1|i|4=/scoreboard objectives add PZVergl:2Wert dummy}}
 
   
  +
;Wiederholen
{{bb|2|3|i|4=/scoreboard players add #VarVergl:2ZahlA PZVergl:2Wert 1}}
 
  +
* {{bb|2|2}} Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
{{bb|2|4|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:2"},{"text":" Der erste Wert für den Vergleich wurde um eins erhöht: "},{"score":{"name":"#VarVergl:2ZahlA","objective":"PZVergl:2Wert"} } ] }}
 
   
  +
;Ausschalten
{{bb|2|5|i|4=/scoreboard players add #VarVergl:2ZahlB PZVergl:2Wert 1}}
 
  +
* {{bb|2|3}} Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.
{{bb|2|6|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:2"},{"text":" Der zweite Wert für den Vergleich wurde um eins erhöht: "},{"score":{"name":"#VarVergl:2ZahlB","objective":"PZVergl:2Wert"} } ] }}
 
  +
 
{{Ausklappmenü|offen=1|{{bb}}|
  +
{{bb|2|1|i|4=function vergleicher:v2start}}
  +
{{bb|2|2|w|4=function vergleicher:v2zyklus}}
   
{{bb|2|7|i|4=/scoreboard players operation #VarVergl:2ErgebnisZahl PZVergl:2Wert = #VarVergl:2ZahlA PZVergl:2Wert}}
 
{{bb|2|8|kb|4=/scoreboard players operation #VarVergl:2ErgebnisZahl PZVergl:2Wert -= #VarVergl:2ZahlB PZVergl:2Wert}}
 
{{bb|2|9|kb|4=/scoreboard players test #VarVergl:2ErgebnisZahl PZVergl:2Wert 0 0}}
 
{{bb|2|10|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:2"},{"text":" Die beiden Werte "},{"score":{"name":"#VarVergl:2ZahlA","objective":"PZVergl:2Wert"} },{"text":" und "},{"score":{"name":"#VarVergl:2ZahlB","objective":"PZVergl:2Wert"} },{"text":" sind gleich "} ] }}
 
{{bb|2|11|k|4=/scoreboard players test #VarVergl:2ErgebnisZahl PZVergl:2Wert * -1}}
 
{{bb|2|12|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:2"},{"text":" Der erste Wert "},{"score":{"name":"#VarVergl:2ZahlA","objective":"PZVergl:2Wert"} },{"text":" ist kleiner als der zweite Wert "},{"score":{"name":"#VarVergl:2ZahlB","objective":"PZVergl:2Wert"} } ] }}
 
{{bb|2|13|k|4=/scoreboard players test #VarVergl:2ErgebnisZahl PZVergl:2Wert 1 *}}
 
{{bb|2|14|kb|4=/tellraw @a[r=15] [{"text":"Vergleicher:2"},{"text":" Der erste Wert "},{"score":{"name":"#VarVergl:2ZahlA","objective":"PZVergl:2Wert"} },{"text":" ist größer als der zweite Wert "},{"score":{"name":"#VarVergl:2ZahlB","objective":"PZVergl:2Wert"} } ] }}
 
   
{{bb|2|2|i|4=/scoreboard objectives remove PZVergl:2Wert}}
+
{{bb|2|3|i|4=function vergleicher:v2stopp}}
 
}}
 
}}
   
  +
{{fü|2|name=Start}}
== Variante 3 ==
 
  +
Die Start-Funktion erstellt ein Punktestand-Ziel mit den Variablen die verglichen werden sollen, inklusive der Rüstungsständern mit "wahr" und "falsch" als Namen.
{{Voraussetzung|
 
  +
*[[Schaltkreise/Speicherzelle (Befehle)]]
 
  +
{{f|name=vergleicher:v2start|alias=v2start|1=
*[[Schaltnetze/Zähler (Befehle)]]
 
  +
# Das Punktestand-Ziel wird erstellt
*[[Schaltnetze/Addierer (Befehle)]]
 
  +
scoreboard objectives add PZVergl.2Bool trigger ["Vergleicher.2: ",{"text":"Boolescher Wert der Variablen","bold":true}]
*[[#Variante 2|Variante 2]]
 
  +
*{{b|/tellraw}}
 
  +
# Sechs Rüstungsständer mit Wahrheitswerten im Namen für gleich, ungleich, größergleich, kleinergleich, größer und kleiner werden erstellt
*{{b|/scoreboard}}
 
  +
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GLEICH"]}
*{{b|/summon}}
 
  +
summon minecraft:armor_stand ~ ~2 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2UNGLEICH"]}
*{{b|/execute}}
 
  +
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSERGLEICH"]}
*{{b|/kill}}
 
  +
summon minecraft:armor_stand ~ ~4 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINERGLEICH"]}
|
 
  +
summon minecraft:armor_stand ~ ~5 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSER"]}
* {{Gridbild|Hebel|link}}
 
  +
summon minecraft:armor_stand ~ ~6 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINER"]}
* {{Gridbild|Redstone-Fackel|link}}
 
  +
* {{Gridbild|Befehlsblock|link}}
 
  +
# Die Variablen 1 und 2 werden mit den Werten null erstellt
* {{Gridbild|Ketten-Befehlsblock|link}}
 
 
scoreboard players set VarVergl.2Variable1 PZVergl.2Bool 0
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
 
scoreboard players set VarVergl.2Variable2 PZVergl.2Bool 0
  +
  +
# Die Rüstungsständer erhalten die Werte null und eins, für ihr jeweiliges Ergebnis
 
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
 
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool 0
 
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
 
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
 
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool 0
  +
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool 0
 
}}
 
}}
[[Datei:Schaltnetze Vergleicher (Befehle) Bild 3.1.png|400px]]
 
   
  +
{{fü|2|name=Zyklus}}
Dieser Vergleicher kann Objekt-Variablen auf auf Gleichheit, größer als und kleiner als prüfen. Dabei können die zu vergleichenden Variablen auch negativ eingestellt werden. Zuerst benötigt man zwei Punktestand-Ziele{{bb|3|1}}{{bb|3|2}}, welche später den Objekt-Variablen die Möglichkeit geben, ihre Wert zu speichern und zu vergleichen. Dann werden die zwei Objekte erschaffen{{bb|3|3}}{{bb|3|4}}. Es werden zwei kleine unsichtbare schwerelose Rüstungsständer erzeugt, die einmal eine Truhe und zum anderen mal einen Spender in ihrem Kopfslot tragen. Diese beiden Objekte haben zu Anfang keinen Wert, aber wenn man von ihnen Werte abzieht oder hinzufügt, wird ihnen im Schritt der Operation der Wert null zuvor gegeben. Sodass man nun bei der ersten Addition{{bb|3|5}} den Wert eins erhält. Man kann den Hebel so oft umlegen wie man möchte, der wert wird dann immer um eins erhöht. Anschließend wird der Wert auch ausgegeben{{bb|3|6}}. Der Befehlsblock für das subtrahieren{{bb|3|7}} liegt gegenüber und zeigt auch auf den Ketten-Befehlsblock, auf den schon der Additions-Befehlsblock zeigt. Diese drei Befehlsblöcke addieren oder subtrahieren den Wert der ersten Objektvariable. Das gleiche wird dann auch bei der zweiten Objekt-Variable gemacht{{bb|3|8}}{{bb|3|9}}{{bb|3|10}}. Nun kommen wir zum eigentlichen Vergleich der beiden Objekt-Variablen. Zuerst wird ein Vergleichswert benötigt. Wir legen hier den Vergleichswert mit Hilfe der ersten Objekt-Variable an{{bb|3|11}}. Dieser Vergleichswert wird auf minus eins gesetzt, das ist notwendig, damit man später nicht nur positive, sondern auch negative Zahlen vergleichen kann, denn diese liegen nur im negativen Bereich. Nun wird von der ersten Objektvariable (Truhe) der gesetzte Wert von vorhin (addieren oder subtrahieren) auf ihren Vergleichswert übertragen, aber mal minus eins{{bb|3|12}}, so dass nun ein negativer Betrag gespeichert ist, wenn der gesetzte Wert positiv war (und umgekehrt, wenn der Wert negativ war). Nun wird der Vergleichswert von der ersten Variable (Truhe) mit dem gesetzten Wert der zweiten Variable (Spender) addiert{{bb|3|13}}. Wenn der Vergleichswert der ersten Objekt-Variable nun bei null liegt, sind beide gesetzten Werte gleich groß{{bb|3|14}}, wenn der Vergleichswert größer null (Positiv) ist{{bb|3|15}}, dann ist die zweite Variable größer als die erste und wenn der Vergleichswert kleiner null (Negativ) ist{{bb|3|16}}, dann ist die zweite Variable kleiner als die erste. Möchte man alle Variablen und Punktestand-Ziele löschen, so legt man einfach den Hebel für diese wieder in Ausgangsstellung um, dann wird eine Redstone-Fackel aktiv, die die Befehlsblöcke für das Löschen aktiv schaltet{{bb|3|17}}{{bb|3|18}}{{bb|3|19}}.
 
  +
Die Zyklus-Funktion gibt dem Spieler eine Chat-Nachricht mit zwei Variablen die er erhöhen oder verringern kann. Je nach Werte die eingestellt sind, werden dann die Ausgaben der Vergleiche angezeigt.
   
  +
{{f|name=vergleicher:v2zyklus|alias=v2zyklus|1=
{{Ausklappmenü|offen=1|{{bb}}|
 
  +
# Wenn ein Spieler auf den Auslöser geklickt hat, wird je nach Klick-Wert die Variable 1 oder 2 um eins erhöht oder verringert
{{bb|3|1|i|4=/scoreboard objectives add PZVergl:3Wert dummy}}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1}] run scoreboard players add VarVergl.2Variable1 PZVergl.2Bool 1
{{bb|3|2|k|4=/scoreboard objectives add PZVergl:3Vergl dummy}}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=2}] run scoreboard players remove VarVergl.2Variable1 PZVergl.2Bool 1
{{bb|3|3|k|4=/summon minecraft:armor_stand ~ ~2 ~ {NoGravity:true,CustomName:"ObjVergl:3SpeicherA",Small:true,Invisible:true,Marker:true,Tags:["EtiVergl:3Alle"],ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b} ] } }}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=3}] run scoreboard players add VarVergl.2Variable2 PZVergl.2Bool 1
{{bb|3|4|k|4=/summon minecraft:armor_stand ~ ~2 ~ {NoGravity:true,CustomName:"ObjVergl:3SpeicherB",Small:true,Invisible:true,Marker:true,Tags:["EtiVergl:3Alle"],ArmorItems:[{},{},{},{id:"minecraft:dropper",Count:1b} ] } }}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=4}] run scoreboard players remove VarVergl.2Variable2 PZVergl.2Bool 1
   
  +
# Wenn im Chat auf ein Feld geklickt wurde, besitzt der Spieler mindestens den Wert eins. Die Ergebnisse werden daraufhin als Wert in die Rüstungsständer gespeichert
{{bb|3|5|i|4=/scoreboard players add @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Wert 1}}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool
{{bb|3|6|k|4=/tellraw @a[r=15] [{"text":"Vergleicher:3"},{"text":" Der Wert für die erste Objektvariable (Truhe) wurde auf folgenden Wert gesetzt: "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA]","objective":"PZVergl:3Wert"} } ] }}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool unless score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool
{{bb|3|7|i|4=/scoreboard players remove @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Wert 1}}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool >= VarVergl.2Variable2 PZVergl.2Bool
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool <= VarVergl.2Variable2 PZVergl.2Bool
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool > VarVergl.2Variable2 PZVergl.2Bool
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool < VarVergl.2Variable2 PZVergl.2Bool
   
  +
# Die Rüstungsständer können den Wert ein oder null besitzen. Je nach Wert wird dann der Wahrheitswert als Name für den jeweiligen Rüstungsständer festgesetzt
{{bb|3|8|i|4=/scoreboard players add @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB] PZVergl:3Wert 1}}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
{{bb|3|9|k|4=/tellraw @a[r=15] [{"text":"Vergleicher:3"},{"text":" Der Wert für die zweite Objektvariable (Spender) wurde auf folgenden Wert gesetzt: "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB]","objective":"PZVergl:3Wert"} } ] }}
 
  +
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=0}] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
{{bb|3|10|i|4=/scoreboard players remove @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB] PZVergl:3Wert 1}}
 
   
  +
# Wenn eingeschaltet wird, benötigt das Erzeugen der Rüstungsständer einen Tick, deshalb wird nach einem geprüft. Hat der Spieler nicht den Wert null, so erhält er die Chat-Nachricht. Dort sieht er die Ergebnisse der Vergleiche
{{bb|3|11|i|4=/scoreboard players set @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Vergl -1}}
 
  +
execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run tellraw @s ["Vergleicher.2: ",{"text":"\nvar1 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 1"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 2"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable1","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 3"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 4"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable2","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\n(var1 == var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Gleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 != var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Ungleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 >= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 <= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleinergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 > var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größer)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 < var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleiner)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]
{{bb|3|12|kb|4=/scoreboard players operation @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Vergl *= @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Wert}}
 
{{bb|3|13|kb|4=/scoreboard players operation @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA] PZVergl:3Vergl += @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB] PZVergl:3Wert}}
 
{{bb|3|14|kb|4=/execute @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA,score_PZVergl:3Vergl_min=0,score_PZVergl:3Vergl=0] ~ ~ ~ /tellraw @a[r=15] [{"text":"Vergleicher:3"},{"text":" Die beiden Werte "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA]","objective":"PZVergl:3Wert"} },{"text":" und "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB]","objective":"PZVergl:3Wert"} },{"text":" sind gleich "} ] }}
 
{{bb|3|15|k|4=/execute @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA,score_PZVergl:3Vergl_min=1] ~ ~ ~ /tellraw @a[r=15] [{"text":"Vergleicher:3"},{"text":" Der erste Wert "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA]","objective":"PZVergl:3Wert"} },{"text":" ist kleiner als der zweite Wert "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB]","objective":"PZVergl:3Wert"} } ] }}
 
{{bb|3|16|k|4=/execute @e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA,score_PZVergl:3Vergl=-1] ~ ~ ~ /tellraw @a[r=15] [{"text":"Vergleicher:3"},{"text":" Der erste Wert "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherA]","objective":"PZVergl:3Wert"} },{"text":" ist größer als der zweite Wert "},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjVergl:3SpeicherB]","objective":"PZVergl:3Wert"} } ] }}
 
   
  +
# Spieler die keinen Wert besitzen oder einen über null erhalten die Erlaubnis einen Auslöser zu nutzen und bekommen den Wert null zugewiesen
{{bb|3|17|i|4=/scoreboard objectives remove PZVergl:3Wert}}
 
  +
execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players enable @s PZVergl.2Bool
{{bb|3|18|k|4=/scoreboard objectives remove PZVergl:3Vergl}}
 
  +
execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players set @s PZVergl.2Bool 0
{{bb|3|19|k|4=/kill @e[type=minecraft:armor_stand,tag=EtiVergl:3Alle] }}
 
  +
}}
  +
  +
{{fü|2|name=Stopp}}
  +
Die Stopp-Funktion löscht das Punktestand-Ziel und die Rüstungsständer wieder.
  +
  +
{{f|name=vergleicher:v2stopp|alias=v2stopp|1=
  +
# Das Punktestand-Ziel sowie alle Rüstungsständer werden entfernt
 
scoreboard objectives remove PZVergl.2Bool
  +
kill @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle]
 
}}
 
}}
   
 
{{Unterseite|
 
{{Unterseite|
 
{{Technik-Familien|Redstone-Komparator}}
 
{{Navbox-Technik}}
 
{{Navbox-Technik}}
 
{{Navbox-Technik|Technik}}
 
{{Navbox-Technik|Technik}}

Aktuelle Version vom 2. März 2020, 11:04 Uhr

Gruppe: Grid Redstone-Verstärker
Schaltnetze

Grid Roter Sand blass mit Mechaniken

Grid Redstone mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Redstone-Welt Redstone-Welt

Der Vergleicher kann erkennen, je nach Ausführung, ob die Werte von den zu vergleichenden Variablen gleich groß =, ungleich !=, kleiner <, kleiner gleich <=, größer > oder größer gleich >= sind.

Variante 1

Vergleicher (Befehle) Bild 1.1

Dieser Vergleicher kann zwei Variablen die man mit Hilfe der Chat-Eingabe erhöhen kann, auf Gleichheit und Ungleichheit prüfen. Die Ergebnisse davon werden ebenfalls im Chat angezeigt.

Einschalten
  • Befehl 1.1 Das Punktestand-Ziel wird erstellt, welches es ermöglicht, dass man im Chat auf Nachrichten etwas auslösen kann.
  • Befehl 1.2 Ein Rüstungsständer für die Gleichheit mit dem Namen "wahr" wird erstellt.
  • Befehl 1.3 Ein Rüstungsständer für die Ungleichheit mit dem Namen "falsch" wird erstellt.
  • Befehl 1.4 Den beiden Rüstungsständern sowie den beiden Variablen wird der Wert null zugewiesen. Dies funktioniert, weil keine der Variablen einen Wert besitzt und dann wird einfach der Wert null angenommen.
Wiederholen
  • Befehl 1.5 Wenn der Spieler den Auslöser im Chat für die erste Variable ausgelöst hat, besitzt er den Wert eins und lässt somit den Wert der Variable 1 um eins erhöhen.
  • Befehl 1.6 Gleiches gilt für die zweite Variable, auch hier wird sie um eins erhöht wenn der Spieler auf diese geklickt hat.
  • Befehl 1.7 Wenn der Spieler irgend eine Schaltfläche im Chat angeklickt hat, wird geprüft ob die beiden Variablen gleich sind. Das Ergebnis daraus wird dann in den Gleichheits-Rüstungsständer gespeichert.
  • Befehl 1.8 Gleiches gilt für den Ungleichheits-Rüstungsständer.
  • Befehl 1.9 Im gleichen Moment wird aus dem Wert des Rüstungsständer auch der entsprechende Name gesetzt: 1 für "wahr" und 0 für "falsch"[B1.10]
  • Befehl 1.11 Wenn sich der Gleichheits-Rüstungsständer in der Welt befindet, wird allen Spielern im Umkreis von 25 Metern eine Chat-Nachricht angezeigt, wenn sie nicht den Wert null besitzen. In dieser können die beiden Variablen angeklickt werden und die Ergebnisse werden angezeigt.
  • Befehl 1.12 Spieler die nicht den Wert null besitzen erhalten die Möglichkeit den Auslöser zu betätigen.
  • Befehl 1.13 Ebenfalls wird diesen Spielern auch der Wert auf null gesetzt.
Ausschalten
  • Befehl 1.14 Das Punktestand-Ziel wird entfernt
  • Befehl 1.15 Alle Rüstungsständer die erstellt wurden, werden wieder gelöscht.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZVergl.1Bool trigger ["Vergleicher.1: ",{"text":"Boolescher Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1GLEICH"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1UNGLEICH"]}
execute store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool run scoreboard players operation VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool


execute if entity @a[distance=..25,scores={PZVergl.1Bool=1}] run scoreboard players add VarVergl.1Variable1 PZVergl.1Bool 1
execute if entity @a[distance=..25,scores={PZVergl.1Bool=2}] run scoreboard players add VarVergl.1Variable2 PZVergl.1Bool 1
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool if score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool unless score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=1},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=0},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run tellraw @s ["Vergleicher.1: ",{"text":"\nvar1 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 1"} },{"score":{"name":"VarVergl.1Variable1","objective":"PZVergl.1Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 2"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 2"} },{"score":{"name":"VarVergl.1Variable2","objective":"PZVergl.1Bool"},"color":"dark_purple","bold":true},{"text":"\n(var1 == var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Gleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 != var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Ungleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]
execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players enable @s PZVergl.1Bool
execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players set @s PZVergl.1Bool 0


scoreboard objectives remove PZVergl.1Bool
kill @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle]

Variante 2

Vergleicher (Befehle) Bild 2.1 Vergleicher (Befehle) Bild 2.2

Mit diesem Vergleicher kann man zwei Variablen auf Gleichheit, Ungleichheit, größergleich, kleinergleich, größer und kleiner prüfen. Die Variablen lassen sich per Chat-Eingabe erhöhen oder erniedrigen. Die Ergebnisse werden auch im Chat ausgegeben.

Einschalten
  • Befehl 2.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 2.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 2.3 Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.

Befehlsblöcke mit Befehlen:


Variante 2: Start-Funktion
Die Start-Funktion erstellt ein Punktestand-Ziel mit den Variablen die verglichen werden sollen, inklusive der Rüstungsständern mit "wahr" und "falsch" als Namen.

Editor Icon vergleicher:v2start.mcfunction
# Das Punktestand-Ziel wird erstellt
scoreboard objectives add PZVergl.2Bool trigger ["Vergleicher.2: ",{"text":"Boolescher Wert der Variablen","bold":true}]

# Sechs Rüstungsständer mit Wahrheitswerten im Namen für gleich, ungleich, größergleich, kleinergleich, größer und kleiner werden erstellt
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GLEICH"]}
summon minecraft:armor_stand ~ ~2 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2UNGLEICH"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSERGLEICH"]}
summon minecraft:armor_stand ~ ~4 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINERGLEICH"]}
summon minecraft:armor_stand ~ ~5 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSER"]}
summon minecraft:armor_stand ~ ~6 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINER"]}

# Die Variablen 1 und 2 werden mit den Werten null erstellt
scoreboard players set VarVergl.2Variable1 PZVergl.2Bool 0
scoreboard players set VarVergl.2Variable2 PZVergl.2Bool 0

# Die Rüstungsständer erhalten die Werte null und eins, für ihr jeweiliges Ergebnis
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool 0
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool 0
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool 0

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion gibt dem Spieler eine Chat-Nachricht mit zwei Variablen die er erhöhen oder verringern kann. Je nach Werte die eingestellt sind, werden dann die Ausgaben der Vergleiche angezeigt.

Editor Icon vergleicher:v2zyklus.mcfunction
# Wenn ein Spieler auf den Auslöser geklickt hat, wird je nach Klick-Wert die Variable 1 oder 2 um eins erhöht oder verringert
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1}] run scoreboard players add VarVergl.2Variable1 PZVergl.2Bool 1
execute if entity @a[distance=..25,scores={PZVergl.2Bool=2}] run scoreboard players remove VarVergl.2Variable1 PZVergl.2Bool 1
execute if entity @a[distance=..25,scores={PZVergl.2Bool=3}] run scoreboard players add VarVergl.2Variable2 PZVergl.2Bool 1
execute if entity @a[distance=..25,scores={PZVergl.2Bool=4}] run scoreboard players remove VarVergl.2Variable2 PZVergl.2Bool 1

# Wenn im Chat auf ein Feld geklickt wurde, besitzt der Spieler mindestens den Wert eins. Die Ergebnisse werden daraufhin als Wert in die Rüstungsständer gespeichert
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool unless score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool >= VarVergl.2Variable2 PZVergl.2Bool
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool <= VarVergl.2Variable2 PZVergl.2Bool
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool > VarVergl.2Variable2 PZVergl.2Bool
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool < VarVergl.2Variable2 PZVergl.2Bool

# Die Rüstungsständer können den Wert ein oder null besitzen. Je nach Wert wird dann der Wahrheitswert als Name für den jeweiligen Rüstungsständer festgesetzt
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=0}] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}

# Wenn eingeschaltet wird, benötigt das Erzeugen der Rüstungsständer einen Tick, deshalb wird nach einem geprüft. Hat der Spieler nicht den Wert null, so erhält er die Chat-Nachricht. Dort sieht er die Ergebnisse der Vergleiche
execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run tellraw @s ["Vergleicher.2: ",{"text":"\nvar1 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 1"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 2"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable1","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 3"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 4"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable2","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\n(var1 == var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Gleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 != var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Ungleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 >= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 <= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleinergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 > var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größer)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 < var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleiner)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]

# Spieler die keinen Wert besitzen oder einen über null erhalten die Erlaubnis einen Auslöser zu nutzen und bekommen den Wert null zugewiesen
execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players enable @s PZVergl.2Bool
execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players set @s PZVergl.2Bool 0

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel und die Rüstungsständer wieder.

Editor Icon vergleicher:v2stopp.mcfunction
# Das Punktestand-Ziel sowie alle Rüstungsständer werden entfernt
scoreboard objectives remove PZVergl.2Bool
kill @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle]


Disambig color
 
Grid Grasblock
Auch im Minecraft Wiki wird das Thema dieser Technik behandelt:
Redstone-Komparator