Convertir le projet Scratch en Python

en premier

La raison pour laquelle j'ai décidé de faire cela est que lorsque je suis passé de Scratch à Python, j'ai pensé "Je me demande si je peux passer de Scratch à Python ..." et Python l'a compris, Unity et Lorsque vous faites C # "Au fait, je me demande s'il existe un moyen de passer de Scratch à Python ... Cherchez-le." "Non ..." "Dis, je l'ai fait moi-même." J'ai décidé de le faire.

L'un d'eux

Rechercher une cible d'analyse

Tout d'abord, vous obtiendrez un fichier .sb3 lorsque vous téléchargez le fichier de projet Scratch. Rien ne peut être fait à moins que le fichier sb3 ne puisse être analysé. Ainsi, lorsque j'ai recherché "analyse de fichier sb3", j'ai trouvé un site qui affiche les noms des variables utilisées dans le projet Scatch. Faites glisser le site avec l'extension modifiée en .zip. Donc, j'ai pensé que cela pourrait être le cas, et quand j'ai changé l'extension en .zip et l'ai étendue, j'ai trouvé un json qui avait l'air suspect. En regardant son contenu, il écrit clairement des choses telles que des blocs. Pour le moment, le fichier à analyser a été trouvé. projectj.png

Créer une interface graphique

À ce moment-là, je voulais le distribuer, donc je voulais en faire quelque chose que tout le monde puisse faire. Si vous le faites avec PythonTkinter, seules les personnes qui ont installé python peuvent l'exécuter, donc je l'ai fait C # Form et créé la partie GUI. GUI.png

Décompressez le zip

J'ai réussi à utiliser la classe ZipArchive (C #).

Deuxième partie

analyse json

Même si j'essayais de faire une analyse Json avec C #, je devais créer une classe qui lui était dédiée, j'ai donc décidé à contrecœur d'utiliser le module Json de Python. Après avoir fait une telle chose et une telle chose, l'analyse de Json a été effectuée en toute sécurité. Au fait, j'ai décidé d'utiliser System.Diagnostics.Process pour exécuter Python afin de l'exécuter automatiquement.

l'écriture

Je pensais l'écrire en C #, mais j'ai décidé de l'écrire en python car j'avais fait une analyse Json en python. Cependant, j'ai dû spécifier l'emplacement et le nom du fichier à écrire, j'ai donc décidé de mettre un argument à l'exécution et de le lire avec sys.argv. Après cela, ouvrez () et écrivez () dans l'enfer if au moment de l'analyse Json est OK.

finalement

Doit-il être distribué? Je crains que si je le fais, je me fie à cet outil. (Y a-t-il quelqu'un qui le télécharge en premier lieu?) Non compatible avec certains blocs. Ce n'est pas un problème, mais si vous voulez faire plus que cela, vous pouvez utiliser Python.

Bonus: là où j'ai eu du mal

Analyse Json

La définition de bloc du fichier json est divisée en blocs. Un opérateur est également un bloc. En d'autres termes, lors du calcul de 5 + 5 + 5 + 5 + 5, j'ai utilisé une fonction récursive. Mais ce n'est que près de 1000, alors faites-moi savoir si vous avez une meilleure idée.

l'écriture

J'utilise .format () depuis longtemps parce que je ne connaissais pas la chaîne f avant qu'elle ne soit presque terminée. J'ai pensé que ce serait bien s'il y avait quelque chose comme la chaîne de caractères \ $ en C #, et quand je l'ai googlé, il y avait une chaîne de caractères f et c'était génial. Peut-être que la chaîne f ou la chaîne \ $ est différente.

empiler

Après être sorti du bloc if ou for, je dois écrire else ou celui en dessous, donc j'ai sauvegardé cet autre ou celui en dessous dans la liste, et quand je l'ai appelé, c'était le calque actuel -1. Gars

if True:
    if True:
        if True:
            if True:
                print("Hello")
    print("World")#-2 a été. Vous pouvez utiliser et

Parce qu'il y avait quelque chose comme ça, j'ai décidé de sauver la hiérarchie au moment de si ensemble.

Vraiment à la fin

Je ne sais pas pourquoi, mais merci d'avoir regardé jusqu'à présent.

Postscript

~~ Publié ~~. ~~https://www.axfc.net/u/4023085~~

Recommended Posts

Convertir le projet Scratch en Python
[python] Convertir la date en chaîne
Convertir numpy int64 en python int
[Python] Convertir la liste en Pandas [Pandas]
[Python] Convertir Shift_JIS en UTF-8
Convertir le code python 3.x en python 2.x
Convertir Markdown en PDF en Python
Convertir la liste en DataFrame avec python
Python> liste> Convertir une double liste en une seule liste
[Python] Convertit les nombres naturels en nombres ordinaux
Convertir décimal en n-aire [python]
Python> tuple> Convertir un double tuple en un seul tuple
Mis à jour vers Python 2.7.9
Convertir un mémo à la fois avec Python 2to3
Convertir en HSV
Convertir Python> séquence de deux valeurs en dictionnaire
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment convertir Python en fichier exe
[Python] Convertit les délimiteurs de fichier csv en délimiteurs de tabulation
Convertir Hiragana en Romaji avec Python (bêta)
Conversion de katakana en voyelle kana [python]
Convertissez des données FX 1 minute en données 5 minutes avec Python
python> Convertir le tuple en liste> aList = list (pi_tuple)
Convertir le type de date Python au format RFC822
Convertir des nombres chinois en nombres arabes avec Python
Convertir de Markdown en HTML en Python
Convertir une URL absolue en URL relative en Python
"Backport" vers python 2
Exemple de conversion en ondelettes d'images en Python
[Python] Présentez UIKit3 au projet Django
Convertir le fichier FBX en ASCII <-> BINARY en Python
Convertir un PDF en image (JPEG / PNG) avec Python
Convertir le «nombre» de date Excel en date / heure Python
Convertissez des PDF en images en masse avec Python
Script Python pour convertir la latitude et la longitude en code de maillage
[Python] Conversion de DICOM en PNG ou CSV
Convertir un fichier svg en png / ico avec Python
Convertir les valeurs d'époque Windows à ce jour avec python
Convertir STL en maillage Voxel à l'aide de Python VTK
Convertir un float exponentiel en str en Python
Convertir le code de maillage cubique en WKT en Python
Convertir une chaîne au format de liste caractère par caractère avec python
Comment installer Python
Convertir 202003 en 2020-03 avec les pandas
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Convertir les kanji en kana
Réécrire le code Python2 en Python3 (2to3)
Convertir jupyter en py
Comment installer python
Introduction au langage Python
Convertir keras-yolo3 en ONNX
Introduction à OpenCV (python) - (2)
Convertir dict en tableau
Remarque pour faire de python un démon
Introduction de Python 2.7 à CentOS 6.6
Convertir json en Excel
Connectez python à mysql