Aus Das deutschsprachige Scratch-Wiki
(☁ Variable)
|
Dieser Artikel oder diese Sektion benutzt Cloud Daten. Benutzer, die noch den Neuer Scratcher Status haben oder den Offline-Editor, benutzen, können keine Projekte mit Cloud Daten erstellen oder sie in Projekten anderer Benutzer verwenden. Um Cloud-Daten zu verwenden, ist es erforderlich, den Online-Editor mit Status Scratcher zu benutzen. |
Kodierung einer Cloud-Variable ist der Prozess, bei dem man eine Liste oder Zeichenkette nimmt und sie in ein reines Zahlenformat kompiliert. Der Grund dafür ist, dass Scratch aufgrund der begrenzten Speicherkapazität derzeit nur Zahlen in einer Cloud-Variable unterstützt. Zahlen nehmen weniger Platz ein und sind in der Scratch-Datenbank leichter zu verarbeiten. Mann kann Cloud Variablen verwenden, um große Online-Ranglisten oder sogar massive Online-Multiplayer-Spiele zu erstellen.
Eine Methode
Dies ist eine von vielen Methoden, um Text zu Nummern zu kodieren.
Variablen/Listen
Es werden folgende Variablen und Listen benötigt:
(i)(i2)- Schleifenvariable(Ergebnis)- Gibt das Ergebnis(Zwischenspeicher)- Wird zum Zwischenspeichern benutzt(Zeichenliste ::list)(Buchstaben ::list)
Zeichenliste füllen
Benutze das folgende Skript, um die Zeichenliste zu füllen.
Definiere Zeichenliste füllen
setze [text v] auf [ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.-,*?!"§$%&/(\)=;:_^°\@´`]
lösche alles aus [Zeichenliste v]
setze [i2 v] auf [1]
wiederhole (Länge von (text)::operators) mal
füge (Zeichen (i2) von (text)) zu [Zeichenliste v] hinzu
ändere [i2 v] um (1)
end
setze [text v] auf [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lösche alles aus [Buchstaben v]
setze [i2 v] auf [1]
wiederhole (Länge von (text)::operators) mal
falls <nicht <[Buchstaben v] enthält (Zeichen (i2) von (text))?::data>>, dann
füge (Zeichen (i2) von (text)) zu [Buchstaben v] hinzu
end
ändere [i2 v] um (1)
end
Groß- Kleinschreiberkennung
Dies ist eine veränderte Version von dieser.
Definiere Groß- Kleinschreibung erkennen (buchstabe)
setze [i2 v] auf [1]
setze [Speicher v] auf []
setze [ergebnis v] auf [klein]
falls <nicht <[Buchstaben v] enthält (buchstabe::custom)?::data>>, dann
setze [ergebnis v] auf [?]
stoppe [dieses Skript v]
end
setze [vorheriges Kostüm v] auf (Kostüm [Name v])
wechsle zu Kostüm [Put me over ABCD... v]
wiederhole (Länge von (Buchstaben::list)::operators) mal
falls <(Zeichen (i2) von (Buchstaben::list)) = (buchstabe::custom)>, dann
setze [Speicher v] auf (verbinde (Speicher) und (buchstabe::custom))
sonst
setze [Speicher v] auf (verbinde (Speicher) und (Element (i2) von [Buchstaben v]))
end
ändere [i2 v] um (1)
end
wechsle zu Kostüm [Put me over ABCD... v]
setze [Kostüm v] auf (Kostüm [Nummer v])
wechsle zu Kostüm (Speicher)
falls <(Kostüm [Nummer v]) \> (Kostüm)>, dann
setze [ergebnis v] auf [groß]
end
wechsle zu Kostüm (vorheriges Kostüm)
Für dieses Skript werden zwei Kostüme benötigt, sie sind im vorgefertigtem Projekt bereits enthalten
Kodierung
Das folgende Skript kodiert Text zu einer Nummern, durch Listen Kodierung:
Definiere Kodiere (String)
setze [i v] auf [1]
setze [Kodiert v] auf []
setze [Zwischenspeicher v] auf []
wiederhole bis <(Zeichen (i) von (String::custom)) = []>
falls <[Zeichenliste v] enthält (Zeichen (i) von (String::custom))?::data>, dann
Groß- Kleinschreibung erkennen (Zeichen (i) von (String::custom))::custom
setze [Zwischenspeicher v] auf (Nummer von (Zeichen (i) von (String::custom)) in [Zeichenliste v])
falls <(ergebnis) = [groß]>, dann
ändere [Zwischenspeicher v] um (26)
end
setze [Kodiert v] auf (verbinde (Kodiert) und (verbinde (Länge von (Zwischenspeicher)::operators) und (Zwischenspeicher)))
end
ändere [i v] um (1)
end
setze [ergebnis v] auf (Kodiert)
Dekodierung
Mit diesem Skript wird die Kodierte Nummer zurück zu Text umgewandelt:
Definiere Dekodiere (nummerfolge)
setze [i v] auf [1]
setze [ergebnis v] auf []
wiederhole bis <(Zeichen (i) von (nummerfolge::custom)) = []>
setze [Zwischenspeicher v] auf []
wiederhole (Zeichen (i) von (nummerfolge::custom)) mal
ändere [i v] um (1)
setze [Zwischenspeicher v] auf (verbinde (Zwischenspeicher) und (Zeichen (i) von (nummerfolge::custom)))
end
setze [ergebnis v] auf (verbinde (ergebnis) und (Element (Zwischenspeicher) von [Zeichenliste v]))
ändere [i v] um (1)
end
Solange bei Seiten die gleiche Liste haben, kommt das gleiche ergebnis aus. Um mehr Charaktäre hinzuzufügen, muss man auf beiden Seiten die Liste aktualisieren.
Demo
Siehe auch
[wiki=de:Kodierung und Dekodierung von Cloud-Daten]Kodierung und Dekodierung von Cloud-Daten[/wiki]