Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Hello there! We are conducting a survey to better understand the user experience in making a first edit. If you have ever made an edit on Gamepedia, please fill out the survey. Thank you!

Kodierer und Dekodierer (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Redstone-Verstärker.png
Schaltnetze

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Redstone-Welt angesehen werden.

Ein Kodierer und Dekodierer kann Zahlenwerte eines bestimmten Zahlensystems in ein anderes umwandeln, wie zum Beispiel von Dual in Oktal.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Kodierer und Dekodierer (Befehle) Bild 1.1.png

Mit diesem Zahlensystemumrechner lassen sich Zahlen aus dem Dezimalsystem in das Dualsystem umrechnen.

Einschalten
  • Befehl 1.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 1.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 1.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 1: Start-Funktion
Die Start-Funktion erstellt das Auslöser-Punktestand-Ziel und alle Variablen die benötigt werden.

Editor Icon.png kodierer_und_dekodierer:v1start.mcfunction
# Punktestand-Ziel wird erstellt.
scoreboard objectives add PZKoDe.1Wert trigger ["Kodierer und Dekodierer.1: ",{"text":"Wert der Variable","bold":true}]

# Interne Variablen für die Berechnung werden gesetzt.
scoreboard players set #VarKoDe.1Zahl PZKoDe.1Wert 0
scoreboard players set #VarKoDe.1Potenz PZKoDe.1Wert 1
scoreboard players set #VarKoDe.1Rest PZKoDe.1Wert 0
scoreboard players set #VarKoDe.1Term PZKoDe.1Wert 0

# Öffentliche Variablen für die sichtbare Ausgabe im Chat werden gesetzt.
scoreboard players set VarKoDe.1Variable1 PZKoDe.1Wert 0
scoreboard players set VarKoDe.1Variable2 PZKoDe.1Wert 0
scoreboard players set KonstKoDe.1ZEHN PZKoDe.1Wert 10
scoreboard players set KonstKoDe.1ZWEI PZKoDe.1Wert 2

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion wartet auf die Eingabe des Spielers und ruft zur Berechnung der Werte die Ein- und Ausgabe-Funktionen auf. Die Ergebnisse werden im Chat ausgegeben.

Editor Icon.png kodierer_und_dekodierer:v1zyklus.mcfunction
# Wenn Spieler in einem Umkreis von 25 Metern den Wert eins besitzen, wird die Variable 1 um eins erhöht und das Ergebnis in die Zahl-Variable gespeichert.
execute if entity @a[distance=..25,scores={PZKoDe.1Wert=1}] store result score #VarKoDe.1Zahl PZKoDe.1Wert run scoreboard players add VarKoDe.1Variable1 PZKoDe.1Wert 1

# Wenn die Zahl-Variable einen Wert ab eins besitzt, so wird die Eingaben-Funktion aufgerufen. In ihr wird sie wieder auf null gesetzt wodurch die Ausgaben-Funktion danach ausgeführt wird.
execute if score #VarKoDe.1Zahl PZKoDe.1Wert matches 1.. run function kodierer_und_dekodierer:v1eingabe
execute if score #VarKoDe.1Zahl PZKoDe.1Wert matches 0 run function kodierer_und_dekodierer:v1ausgabe

# Wenn die Zahl-Variable exisitiert, wird nach Spielern in einem Umkreis von 25 Metern geschaut, ob sie einen Wert außer null besitzen und erhalten dann die Chat-Nachricht.
execute if score #VarKoDe.1Zahl PZKoDe.1Wert matches -1.. as @a[distance=..25] unless entity @s[scores={PZKoDe.1Wert=0}] run tellraw @s ["Kodierer und Dekodierer.1: ",{"text":"\nvar1 == ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für [var1 + 1]10"} },"clickEvent":{"action":"run_command","value":"/trigger PZKoDe.1Wert set 1"} },{"text":"[","color":"gray","bold":true},{"score":{"name":"VarKoDe.1Variable1","objective":"PZKoDe.1Wert"},"color":"dark_purple","bold":true},{"text":"]","color":"gray","bold":true},{"text":"10","bold":true,"italic":true},{"text":"\nvar2 == ","bold":true},{"text":"[","color":"gray","bold":true},{"score":{"name":"VarKoDe.1Variable2","objective":"PZKoDe.1Wert"},"color":"dark_purple","bold":true},{"text":"]","color":"gray","bold":true},{"text":"2","bold":true,"italic":true}]

# Wenn Spieler keinen Wert hatten oder irgendeinen anderen Wert außer null, erhalten sie die Erlaubnis für den Auslöser und ihr Wert wird auf null gesetzt.
execute as @a[distance=..25] unless entity @s[scores={PZKoDe.1Wert=0}] run scoreboard players enable @s PZKoDe.1Wert
execute as @a[distance=..25] unless entity @s[scores={PZKoDe.1Wert=0}] run scoreboard players set @s PZKoDe.1Wert 0

Variante 1: Eingabe-Funktion
Die Eingabe-Funktion erhält den Dezimalzahlenwert und rechnet ihn in einen dualen Zahlenwert um.

Editor Icon.png kodierer_und_dekodierer:v1eingabe.mcfunction
# Der Wert von Variable 1 vom Zehnersystem wird in das Dualsystem umgerechnet und in die Term-Variable gespeichert.
scoreboard players operation #VarKoDe.1Rest PZKoDe.1Wert = #VarKoDe.1Zahl PZKoDe.1Wert
scoreboard players operation #VarKoDe.1Rest PZKoDe.1Wert %= KonstKoDe.1ZWEI PZKoDe.1Wert
scoreboard players operation #VarKoDe.1Zahl PZKoDe.1Wert /= KonstKoDe.1ZWEI PZKoDe.1Wert
scoreboard players operation #VarKoDe.1Rest PZKoDe.1Wert *= #VarKoDe.1Potenz PZKoDe.1Wert
scoreboard players operation #VarKoDe.1Term PZKoDe.1Wert += #VarKoDe.1Rest PZKoDe.1Wert
scoreboard players operation #VarKoDe.1Potenz PZKoDe.1Wert *= KonstKoDe.1ZEHN PZKoDe.1Wert

# Falls die Zahl-Variable größer gleich eins ist wird diese Funktion nochmals aufgerufen.
execute if score #VarKoDe.1Zahl PZKoDe.1Wert matches 1.. run function kodierer_und_dekodierer:v1eingabe

Variante 1: Ausgabe-Funktion
Die Ausgabe-Funktion nimmt das Ergebnis und setzt alle Variablen auf den Startwert zurück.

Editor Icon.png kodierer_und_dekodierer:v1ausgabe.mcfunction
# Der duale Wert von der Term-Variable wird in die Variable 2 gespeichert und die drei anderen Variablen werden wieder auf ihre Startwerte gesetzt.
scoreboard players operation VarKoDe.1Variable2 PZKoDe.1Wert = #VarKoDe.1Term PZKoDe.1Wert
scoreboard players set #VarKoDe.1Term PZKoDe.1Wert 0
scoreboard players set #VarKoDe.1Potenz PZKoDe.1Wert 1
scoreboard players set #VarKoDe.1Zahl PZKoDe.1Wert -1

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel und somit alle Variablen.

Editor Icon.png kodierer_und_dekodierer:v1stopp.mcfunction
# Das Punktestand-Ziel wird entfernt.
scoreboard objectives remove PZKoDe.1Wert

Variante 2[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Kodierer und Dekodierer (Befehle) Bild 1.2.png

Dieser Zahlensystemumrechner kann zwei Zahlen in beliebigen Zahlensystem zwischen dual und dezimal umrechnen und ausgeben.

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 das Auslöser-Punktestand-Ziel und alle Variablen, die für das Berechnen der Zahlenwerte benötigt werden.

Editor Icon.png kodierer_und_dekodierer:v2start.mcfunction
# Punktestand-Ziel wird erstellt
scoreboard objectives add PZKoDe.2Wert trigger ["Kodierer und Dekodierer.2: ",{"text":"Wert der Variable","bold":true}]

# Interne Variablen für die Berechnung werden gesetzt
scoreboard players set #VarKoDe.2AusgabeSystem PZKoDe.2Wert 2
scoreboard players set #VarKoDe.2EingabeZahl PZKoDe.2Wert 1
scoreboard players set #VarKoDe.2AusgabeZahl PZKoDe.2Wert 1
scoreboard players set #VarKoDe.2Potenz PZKoDe.2Wert 1
scoreboard players set #VarKoDe.2Rest PZKoDe.2Wert 0
scoreboard players set #VarKoDe.2Term PZKoDe.2Wert 0

# Öffentliche Variablen für die sichtbare Ausgabe im Chat werden gesetzt
scoreboard players set VarKoDe.2SystemVariable1 PZKoDe.2Wert 0
scoreboard players set VarKoDe.2SystemVariable2 PZKoDe.2Wert 0
scoreboard players set VarKoDe.2Variable1 PZKoDe.2Wert 0
scoreboard players set VarKoDe.2System1 PZKoDe.2Wert 10
scoreboard players set VarKoDe.2System2 PZKoDe.2Wert 2
scoreboard players set KonstKoDe.2ZEHN PZKoDe.2Wert 10

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler im Chat auf eine Variable oder Zahlensystem geklickt hat und berechnet dann die neuen Werte in den jeweiligen Zahlensystemen um.

Editor Icon.png kodierer_und_dekodierer:v2zyklus.mcfunction
# Für dne Wert eins wird die Variable 1 um eins ehröht. Für die Werte zwei und drei die System-Variablen, wobei sie größer zehn wieder auf zwei gesetzt werden.
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1}] run scoreboard players add VarKoDe.2Variable1 PZKoDe.2Wert 1
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=2}] run scoreboard players add VarKoDe.2System1 PZKoDe.2Wert 1
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=2}] if score VarKoDe.2System1 PZKoDe.2Wert matches 11.. run scoreboard players set VarKoDe.2System1 PZKoDe.2Wert 2
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=3}] run scoreboard players add VarKoDe.2System2 PZKoDe.2Wert 1
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=3}] if score VarKoDe.2System2 PZKoDe.2Wert matches 11.. run scoreboard players set VarKoDe.2System2 PZKoDe.2Wert 2

# Der Wert der Variable 1 wird in die Eingabe-Variable gespeichert und das erste Zahlensystem ebenfalls in die System-Variable. Anschließend wird mit diesen Variablen die Zahl im vorgegebenen Zahlensystem ausgerechnet.
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation #VarKoDe.2EingabeZahl PZKoDe.2Wert = VarKoDe.2Variable1 PZKoDe.2Wert
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation #VarKoDe.2AusgabeSystem PZKoDe.2Wert = VarKoDe.2System1 PZKoDe.2Wert
execute if score #VarKoDe.2EingabeZahl PZKoDe.2Wert matches 1.. run function kodierer_und_dekodierer:v2eingabe
execute if score #VarKoDe.2EingabeZahl PZKoDe.2Wert matches 0 run function kodierer_und_dekodierer:v2ausgabe
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation VarKoDe.2SystemVariable1 PZKoDe.2Wert = #VarKoDe.2AusgabeZahl PZKoDe.2Wert

# Der Wert der Variable 1 wird nochmal in die Eingabe-Variable gespeichert und das zweite Zahlensystem ebenfalls in die System-Variable. Anschließend wird mit diesen Variablen die Zahl im vorgegebenen Zahlensystem ausgerechnet.
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation #VarKoDe.2EingabeZahl PZKoDe.2Wert = VarKoDe.2Variable1 PZKoDe.2Wert
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation #VarKoDe.2AusgabeSystem PZKoDe.2Wert = VarKoDe.2System2 PZKoDe.2Wert
execute if score #VarKoDe.2EingabeZahl PZKoDe.2Wert matches 1.. run function kodierer_und_dekodierer:v2eingabe
execute if score #VarKoDe.2EingabeZahl PZKoDe.2Wert matches 0 run function kodierer_und_dekodierer:v2ausgabe
execute if entity @a[distance=..25,scores={PZKoDe.2Wert=1..}] run scoreboard players operation VarKoDe.2SystemVariable2 PZKoDe.2Wert = #VarKoDe.2AusgabeZahl PZKoDe.2Wert

# Wenn die Variable 1 existiert werden Spieler im Umkreis von 25 Metern ausgewählt, welche nicht den Wert null besitzen und erhalten die Chat-Nachricht. In ihr können sie die Variable 1 festlegen und die beiden Zahlensysteme nach belieben ändern.
execute if score VarKoDe.2Variable1 PZKoDe.2Wert matches 0.. as @a[distance=..25] unless entity @s[scores={PZKoDe.2Wert=0}] run tellraw @s ["Kodierer und Dekodierer.2: ",{"text":"\nvar1 == ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für [var1 + 1]System1"} },"clickEvent":{"action":"run_command","value":"/trigger PZKoDe.2Wert set 1"} },{"text":"[","color":"gray","bold":true},{"score":{"name":"VarKoDe.2SystemVariable1","objective":"PZKoDe.2Wert"},"color":"dark_purple","bold":true},{"text":"]","color":"gray","bold":true},{"score":{"name":"VarKoDe.2System1","objective":"PZKoDe.2Wert"},"color":"gold","bold":true,"italic":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für das Zahlensystem1"} },"clickEvent":{"action":"run_command","value":"/trigger PZKoDe.2Wert set 2"} },{"text":"\nvar2 == ","bold":true},{"text":"[","color":"gray","bold":true},{"score":{"name":"VarKoDe.2SystemVariable2","objective":"PZKoDe.2Wert"},"color":"dark_purple","bold":true},{"text":"]","color":"gray","bold":true},{"score":{"name":"VarKoDe.2System2","objective":"PZKoDe.2Wert"},"color":"gold","bold":true,"italic":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für das Zahlensystem2"} },"clickEvent":{"action":"run_command","value":"/trigger PZKoDe.2Wert set 3"} }]

# Spieler die noch keinen Wert besitzen oder nicht den Wert null besitzen, erhalten die Auslöser-Erlaubis und den Wert null.
execute as @a[distance=..25] unless entity @s[scores={PZKoDe.2Wert=0}] run scoreboard players enable @s PZKoDe.2Wert
execute as @a[distance=..25] unless entity @s[scores={PZKoDe.2Wert=0}] run scoreboard players set @s PZKoDe.2Wert 0

Variante 2: Eingabe-Funktion
Die Eingabe-Funktion berechnet mit der Eingabe-Variable den Wert des festgelegten Zahlensystems und gibt diese in die Term-Variable.

Editor Icon.png kodierer_und_dekodierer:v2eingabe.mcfunction
# Die Eingabe-Variable wird in das andere Zahlensystem umgerechnet.
scoreboard players operation #VarKoDe.2Rest PZKoDe.2Wert = #VarKoDe.2EingabeZahl PZKoDe.2Wert
scoreboard players operation #VarKoDe.2Rest PZKoDe.2Wert %= #VarKoDe.2AusgabeSystem PZKoDe.2Wert
scoreboard players operation #VarKoDe.2EingabeZahl PZKoDe.2Wert /= #VarKoDe.2AusgabeSystem PZKoDe.2Wert
scoreboard players operation #VarKoDe.2Rest PZKoDe.2Wert *= #VarKoDe.2Potenz PZKoDe.2Wert
scoreboard players operation #VarKoDe.2Term PZKoDe.2Wert += #VarKoDe.2Rest PZKoDe.2Wert
scoreboard players operation #VarKoDe.2Potenz PZKoDe.2Wert *= KonstKoDe.2ZEHN PZKoDe.2Wert

# Solange noch nicht die Variable kleiner eins ist, wird diese Funktion erneut aufgerufen.
execute if score #VarKoDe.2EingabeZahl PZKoDe.2Wert matches 1.. run function kodierer_und_dekodierer:v2eingabe

Variante 2: Ausgabe-Funktion
Die Ausgabe-Funktion speichert das Ergebnis in die Ausgabe-Variable und setzt die drei Variablen wieder auf ihren Start-Wert.

Editor Icon.png kodierer_und_dekodierer:v2ausgabe.mcfunction
# In die Ausgabe-Variable wird der Wert der Term-Variable gespeichert. Die drei anderen Variablen werden wieder auf ihre Startwerte gesetzt.
scoreboard players operation #VarKoDe.2AusgabeZahl PZKoDe.2Wert = #VarKoDe.2Term PZKoDe.2Wert
scoreboard players set #VarKoDe.2Term PZKoDe.2Wert 0
scoreboard players set #VarKoDe.2Potenz PZKoDe.2Wert 1
scoreboard players set #VarKoDe.2EingabeZahl PZKoDe.2Wert -1

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel. Die Variablen werden dadurch ebenfalls gelöscht.

Editor Icon.png kodierer_und_dekodierer:v2stopp.mcfunction
# Das Punktestand-Ziel wird entfernt.
scoreboard objectives remove PZKoDe.2Wert


Disambig color.svg