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, wird der Scratcher-Status benötigt und der Online-Editor muss verwendet werden. |
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)
(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 [vorhäriges 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 (vorhäriges 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]