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.

Es ist ABSOLUT Verboten, einen Chatraum oder Ähnliches zu erstellen, ich trage in keinem Weg Verantwortlichkeit, wenn man gebannt wird.


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


Das Projekt auf Scratch


Siehe auch


Code zum Einbinden ins Forum:
[wiki=de:Kodierung und Dekodierung von Cloud-Daten]Kodierung und Dekodierung von Cloud-Daten[/wiki]
Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.