Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » [v1.3-beta] sb3topy: Scratch to Python with Pygame
- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Scratch to Python
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy
Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.

Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).
What's Supported
Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.
Working
About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy
Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.

Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).
What's Supported
Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.
Working
- Graphics
- Sounds
- Custom Blocks
- Pen
- Color, Brightness, and Ghost effects
- Touching [sprite v] block
- Cloning
- Variable monitors
- Speech bubbles
- Some “hacked” blocks
- Touching color block
- Sprite dragging
- Music blocks
About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…
Last edited by imfh (Jan. 21, 2025 23:56:37)
- skymover1239
-
500+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
That is awesome!!
- god286
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
I will try it soon! This is cool!
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
- Retr0id
-
68 posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
- SansStudios
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects 

- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Yeah, I'll probably add it eventually. Right now, I'm working on rewriting how blocks are stored so everything is saved in a single JSON file instead of messy Python code (see the feature-type-switches branch, it's currently broken). That means I have to finish that before adding new blocks, however, so it might be a little while until I add the for loop. Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects
Once I do get new format done, adding new blocks like that should be pretty easy.
- NFlex23
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Very cool! I can't wait for variable monitors to be implemented so I can test out one of my projects in it. 
Edit: I keep on getting this error when trying to convert https://scratch-mit-edu.ezproxyberklee.flo.org/projects/540224710

Another edit: it's probably because the costumes are SVGs…?

Edit: I keep on getting this error when trying to convert https://scratch-mit-edu.ezproxyberklee.flo.org/projects/540224710

Another edit: it's probably because the costumes are SVGs…?
Last edited by NFlex23 (May 1, 2022 18:20:06)
- Retr0id
-
68 posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
I mean like, an example of the python code that it generates.
- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
https://scratch-mit-edu.ezproxyberklee.flo.org/projects/540224710Ok, I found the issue. Since you don't have SVG conversion setup, it can't convert SVG files and needs to use a fallback image. However, it was still trying to get the bitmap resolution for the fallback image. I've fixed the error for now by just adding a default bitmap resolution. Edit: I keep on getting this error when trying to convert
Another edit: it's probably because the costumes are SVGs…?
Oh, yeah that could be helpful.Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
I mean like, an example of the python code that it generates.
Last edited by imfh (May 1, 2022 21:28:45)
- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Version 1.1 Beta is now out! I finished refactoring the specmap and added hidden blocks. I also fixed a bug which broke a lot of projects, and improved performance by avoiding debug logs by default.
The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
You can see the file all of the blocks are stored in here and the documentation for it here.
The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
{ "control_for_each": { "type": "stack", "args": { "SUBSTACK": "stack", "VARIABLE": "variable", "VALUE": "int" }, "code": [ "for i in range(1, {VALUE}+1):", " {VARIABLE} = i", " {SUBSTACK}" ] } }
- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Here's some example output for Opac3tyD by @griffpatch (the others are too big to post):
import math import time import engine from engine.events import * from engine.operators import * from engine.types import * @sprite('Stage') class Stage(Target): """Sprite Stage""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 0 self._ypos = 0 self._direction = 90 self.shown = True self.pen = Pen(self) self.costume = Costumes( 1, 100, "None", [ { 'name': "backdrop1", 'path': "4b2a86f1da4c2593288abbe7f56eab5a-svg-2x.png", 'center': (480, 360), 'scale': 2 }, { 'name': "backdrop2", 'path': "a10d191b1511644ed42d3e869577e1ce-svg-2x.png", 'center': (480, 360), 'scale': 2 } ]) self.sounds = Sounds( 100, [ ]) self.var_Resolution = 3 self.var_Zoom = 299 self.sprite.layer = 0 @sprite('Blank') class SpriteBlank(Target): """Sprite Blank""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 36 self._ypos = 28 self._direction = 90 self.shown = True self.pen = Pen(self) self.costume = Costumes( 0, 100, "all around", [ { 'name': "costume1", 'path': "3339a2953a3bf62bb80e54ff575dbced-fallback.png", 'center': (0, 0), 'scale': 1 } ]) self.sounds = Sounds( 100, [ { 'name': "pop", 'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav" } ]) self.sprite.layer = 3 @sprite('3d demo') class Spriteddemo(Target): """Sprite 3d demo""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 132.1725565687481 self._ypos = 4.912546966277481 self._direction = 90 self.shown = False self.pen = Pen(self) self.costume = Costumes( 0, 100, "all around", [ { 'name': "big rect", 'path': "c4958b3fc53e567c3f2d6903f3a7c11a-svg-2x.png", 'center': (522, 388), 'scale': 2 } ]) self.sounds = Sounds( 100, [ { 'name': "Julius_-_3d_Demo_Tune.mp3", 'path': "4baafbd297c5163c9bfe5da2a4b7a8b6.wav" }, { 'name': "silence", 'path': "22392866c0f23819792658e9bc4f6c0a.wav" } ]) self.var_pos = 1992 self.var_lastquad = 30 self.var_lastrendertime = 0 self.var_incx = 72 self.var_incy = 78 self.var_ymin = 90 self.var_ymax = 84 self.var_xmin = -93.44758896468164 self.var_xmax = 300 self.var_xcnt = 55.67592596131997 self.var_xminprv = -76.10188833345045 self.var_xmaxprv = -9999999 self.var_p = 6 self.var_ply = 6 self.var_pOrd = 38 self.var_distance = 4.500000000000004 self.var_speed = 0.5400382381196349 self.var_speedTarget = 0.6 self.var_starIdx = 192 self.var_GUI = 0 self.var_Stars = 300 self.var_ZoomSx = 0.399999999999975 self.var_beat = 7 self.var_beatTimer = 28.516000000000002 self.var_beatSize = 1.2893518518518519 self.var_a1 = -0.7020497095555254 self.var_a2 = 0.511866032704478 self.var_svx = 300 self.var_svy = 300 self.var_svz = 300 self.var_acc = 0 self.var_peri = 527.0775063128438 self.var_ind = 35.53957386718539 self.var_td = 0.0957606658924196 self.list_points = List( [-0.8040276720500144, -0.29271526339301984, 0.13363113549602848, -47.911626143953875, 13.445139405650869, 61.975484984148316, -0.5061708219851443, 0.6538253400375734, 0.2574947084610783, -38.88029270113208, 23.89699921288966, 77.33822300053956, 0.01381562942416649, -0.6126629922077974, 0.6119258045434227, 6.004924678902964, 35.531837354590095, 58.52431526753469, 0.3116724794890361, 0.33387761122279763, 0.7357893775084734, 26.866185715758053, 50.36695870415431, 72.03718446689328, -0.3116724794890361, -0.33387761122279763, -0.7357893775084734, -22.995111691367022, -43.109723620989236, 61.65754678663661, -0.01381562942416649, 0.6126629922077974, -0.6119258045434227, -7.884602343092702, -46.65410859267782, 76.84375374556744, 0.5061708219851443, -0.6538253400375734, -0.2574947084610783, 29.27939299558875, -17.99599701442316, 58.2407195907593, 0.8040276720500144, 0.29271526339301984, -0.13363113549602848, 55.35826330256229, -15.534842526976146, 71.60798937920059, 1.2516880008601288, -1.0616680911978267, -1.1351819042106337, 67.6241797993048, -61.796975030599754, 53.90906904828621, 0.9734028857521868, -0.8751494534208689, -1.5063532774331263, 54.10765307121713, -84.45917407126471, 55.749027701194485, -1.0724442096211277, -1.654249298486482, 0.309552256112522, -50.87156180170708, 15.471626388616022, 48.48204875370223, -1.3507293247290697, -1.4677306607095304, -0.06161911710997848, -66.61051083333321, -2.4757579894906603, 49.965101763102474, 1.3507293247290697, 1.4677306607095304, 0.06161911710997848, 132.1725565687481, 4.912546966277481, 99.14374107970566, 1.0724442096211277, 1.654249298486482, -0.309552256112522, 110.75265681961221, -33.68333243903171, 105.55043952572944, -0.9734028857521868, 0.8751494534208689, 1.5063532774331263, -79.79722095673223, 124.55922577748973, 82.21789763713979, -1.2516880008601288, 1.0616680911978267, 1.1351819042106337, -108.60164179576256, 99.24339143561592, 86.57573997496672, 1.0729604317551955, -0.878239189426486, -0.5722340487931296, 60.104749633485035, -32.42391212308745, 55.73066203911069, 0.5163902015393135, -0.5052019138725763, -1.3145767952381233, 30.550744891785886, -78.90050805164623, 59.81219060830805, -0.5871340043028463, -1.3015114803469603, 0.4597189228662642, -29.18742124287494, 23.933447513366314, 51.47577793817772, -1.1437042345187258, -0.9284742047930521, -0.28262382357872984, -62.339880852353936, -14.964981438402184, 54.9385086139351, 1.1437042345187258, 0.9284742047930521, 0.28262382357872984, 95.3694079008873, 22.89387466762048, 84.04656803688688, 0.5871340043028463, 1.3015114803469603, -0.4597189228662642, 53.12230722131608, -43.55985892315359, 93.68803318846312, -0.5163902015393135, 0.5052019138725763, 1.3145767952381233, -38.17092300043672, 98.58041852015454, 74.73096090730736, -1.0729604317551955, 0.878239189426486, 0.5722340487931296, -88.71398307386997, 47.857355846529, 82.25787544215683, 1.4705955986416253, -1.1129323546504821, 0.35878978205499035, 102.48209568488191, 23.816605196065094, 53.44256463273567, -0.19911509200601463, 0.006179472011234938, -1.8682384572799942, -18.50704863519583, -160.01940969568008, 66.49667969962444, 0.14252004979519134, -1.4515501873868624, 1.1843521593825015, 11.071858746144576, 76.65734402765746, 50.25577174938265, -1.527190640852448, -0.3324383607251463, -1.0426760799524786, -121.76466322491632, -81.7714278809795, 61.633737932011066, 1.527190640852448, 0.3324383607251463, 1.0426760799524786, 142.38215031514335, 95.61716369656168, 72.06971141134844, -0.14252004979519134, 1.4515501873868624, -1.1843521593825015, -21.59454499433319, -149.5124262967825, 98.01881952701814, 0.19911509200601463, -0.006179472011234938, 1.8682384572799942, 18.477995707473546, 159.76820636036223, 66.3922911897563, -1.4705955986416253, 1.1129323546504821, -0.35878978205499035, -168.37909504796193, -39.130917485907865, 87.80666134669723, -192.26192053601963, -174.00688689781055, -196.54504635194874, -317.17182014405154, -322.05863168518374, 1.6531120122882732, 173.5558715443796, 53.13940744302991, -40.10688178423276, -1016.3119080175866, 245.38398639931688, -5.8907569274120855, -225.22454882515484, -227.646269331458, -19.623365576069766, -283.3350581809263, -22.416976361931383, 1.2729316976338891, -48.76826731940144, 120.71832829993404, -176.23206449344138, 134.03127985821374, 454.7097634367476, -2.586674064449883, 182.50380724837163, 326.543905150942, -89.93573044034407, -163.84439779655244, 84.43353812857224, -0.9221403986062678, 179.78754746827403, -133.1917439481557, -100.69456904635393, 398.3269626438108, -225.7489422027148, 2.2068055861708267, 228.72607461792128, -85.24344380185924, 168.24962550341175, 795.5123194236439, 571.7422220394085, 3.440094729883623, -34.93355548077656, 348.0218715726326, -182.84261426345796, 35.58485167886467, 159.08704391500228, -0.8715988648726193, 67.21690284236072, -69.48321066083899, 267.62468124810874, 288.0666485176335, 1091.7864942265705, 4.088881088911711, -265.5517176249297, 287.26994087326875, -28.341920761260603, 288.09078352334006, 27.781030636783505, -1.0697993680706386, -175.80077762729297, -133.7152996779527, 53.835898802702246, -369.95716019371844, 118.02985026471049, 2.1303377712188336, -266.15535611576036, 52.95843172887552, 64.5114662714884, 1760.8876016958636, -442.45302199770487, -6.6149700575201775, -301.11811215299775, 128.73579531253384, 89.73837227865852, 748.7223483408355, -229.24779826722323, -2.4803692080800186, 39.01460417624886, 51.98139130986975, -3.129781861597584, -239.08223742352385, 21.686537784491968, -6.234990594580671, -74.23395590621182, 132.34822907171124, 297.28482031736894, 172.3693355622398, -701.6540054887984, -2.35504835322982, 304.89070273544723, -144.65958494069804, -4.925635308467054, 630.3992097294794, -15.728347345571565, 2.0562030080907334, -89.8453031686831, -83.48431075660312, 340.627639594944, -288.0116033943637, 1146.4711681148215, 3.3579821888439247, -19.81563198720707, -167.17215397464747, -28.736933165444245, -31.34570027668764, -49.673033558065725, 1.7393273374972194, 239.3814956991933, -56.96636429281584, -49.14602283128587, 1223.9666360326553, -261.9566260729376, 5.108098849198443, -276.7479651305599, 126.41192665530093, 106.67045870566174, 699.5782504728904, -275.3249856032113, -2.5227103198850287, -15.545223206711347, -93.31399890210425, -152.43307771677016, -48.08250903123014, -464.56711092106724, 3.0505801264309484, 386.7489773921464, -145.52504365724252, 27.56241914434311, 800.0920633971921, 49.61548668106367, 2.058200339656161, 87.55525585169912, 342.908153963228, -168.13409136645956, -72.09196223907269, 148.78754095467255, -0.8808710050730783, -58.03253485600112, -108.70739200789282, 300.0598704395114, -141.81941390471113, 789.1760881726049, 2.625630317626764, -96.22774768441079, 179.16127917303302, -73.56259978894205, 170.7685420707136, 125.31537032212893, -1.7237327120711181, 50.154250817250464, 59.97265536217123, -109.84457823124276, -258.26874983745387, 588.118697501457, -5.332559676151834, 92.04593869659791, 64.12225775649804, -133.77922324621775, -443.3736548657077, 662.6688703389234, -4.923385093549136, 234.45415725117243, -195.78945902261972, -38.42830461506092, 358.1869397282766, -61.37526368153722, 1.514642112554995, 241.9097553891191, 212.00846664080933, -14.215413704817946, -339.77829946836675, 23.265870984882337, -1.420731661570064, 41.125312662024726, 202.63278169755154, 73.68625276169294, -59.1528715074413, -110.363549216654, -1.505315056613652, -298.3659804108997, -24.495365879903833, -84.96891527632143, -2735.5328485657365, -753.4857924484423, 9.155352182406514, -11.709245956057263, -62.90923308153223, 154.98168099687135, -42.29523621297174, 686.6319621798629, 4.42759549091203, 335.49685482759463, 239.17418114054217, 68.01887623971191, -417.16164104753176, -81.41860475409698, -1.2522287012118758, -172.5824060609677, -261.48775048466143, -123.24555776788999, -190.10870087637525, -135.72726870355913, 1.115271557614242, -320.5583240377461, 89.82234468375691, 30.875638398538484, 1180.4995503795462, -123.94070125158963, -3.673606334361113, 26.81488707784487, 148.95412582542212, 127.48972401331325, -53.95254755937768, -262.77696708506045, -2.0651247381936866, -146.1709451055022, -94.97094643407553, 266.6244025384008, -421.23760691260543, 791.3807584841538, 2.953799421142513, 304.6455086565721, 96.77718859493534, 62.69997829838292, -946.6933639394834, -186.7816262653324, -3.114278716066836, 128.4611360163066, -298.8595909879796, -45.778602143276125, 130.49116354029044, -46.49394557860668, 0.9908266519950556, 311.8542389421845, 110.72848918054027, 116.84234034319596, -846.3136770397889, -309.8614106203002, -2.716850727584743, 133.96208387790298, 160.7478079734251, -144.93895591755586, -247.5213421782281, 276.780153715297, -1.8940687618826775, -310.5432045819966, 222.87053150644152, -59.3012820134749, 437.2870693119004, 78.77633070414828, -1.3936636077707536, -139.28090047136246, -50.11696568261712, -83.75631250797001, -739.9455241337347, -437.9653369823779, 5.308111868446278, -85.36388478568206, -83.85616250402967, 153.87706260058155, -277.5000299182539, 517.2967241895308, 3.345307578740305, 86.82734084256194, -16.15932251317108, 136.92658141781698, 1347.51149536859, 2079.109549265455, 15.271239640487874, -13.7839774946763, 3.615276817650848, -111.78072963530212, -4157.843680712906, -31313.948452776018, 280.457422094808, -11.080653069983345, 194.14957739635466, -102.92793635414104, 22.687099458212888, 162.25107181638643, -1.5779365585927425, -42.72454124647645, 96.36872880302587, 321.58774831829226, 134.25462000158515, -1053.5364781466676, -3.272293461263567, -53.88486107475325, -16.04877367491883, 389.31331320740725, -709.2354759291852, 5506.404576736134, 14.126985417583084, -78.41124465602591, -266.5578201373408, -125.00241597339367, -83.81824782645363, -136.6290957897552, 1.0992153627346932, 296.851133393138, -189.99054816778212, 11.99976166807852, 468.860720741208, 14.645155039284154, 1.5667749947559042, -253.84260458925326, 101.16837327126056, 1.3751251438654153, 815.1421063967218, -11.642863712261041, -3.1961252182506805, -37.766936992525444, -110.36626743875435, 81.96917179925393, -92.51221348245492, 213.41006059229693, 2.5929709926475835, -36.183637371449244, -150.0184746856947, 83.75679760894849, -64.82676731441435, 162.24804304497118, 1.9297621177073343, -325.9843506969062, 58.438818592337014, -33.363231827481656, 1957.7038257414258, 182.31978815612393, -5.9875770301369755, 334.9207502312929, -108.22045248110004, -65.70709426276952, 923.9042655416207, -189.10903329213917, 2.752817845821667, 363.65017079422853, -133.03853099256133, -29.669845064746173, 820.0340263244299, -73.95982281569601, 2.2468322268246856, -115.522737784733, 205.89174352029121, 187.38219217644885, 173.97188900795246, -281.69431763617797, -1.4951391863454877, -18.590020652148475, -77.51230632048258, 310.4114231876311, -54.071712432999, 1129.6673075841854, 3.6374572113216326, 24.681980410142227, -51.19375444792632, 262.90492212845834, 149.368025396936, 1418.7376702286263, 5.401136170296284, 90.42078783018077, -42.5889641684952, 166.7520932438373, 601.2691721284359, 1079.54162045827, 6.505706209537987, -121.50685122527547, -5.665565283328418, -50.497386982541514, -3125.416352192137, -1267.0933008879265, 25.644535780758005, -144.01746312415463, -370.583772166251, 193.86499095935483, -109.29108931637852, 154.85171008067013, 0.7935259426848453, -165.92001595830516, 158.8133271713293, 197.46866618196944, 326.080089036425, -390.5963991835826, -1.963357812770747, -101.63126192452143, -47.48442541472343, 1.147010724358604, -567.5281865956297, 11.543530395928174, 5.617560573955469, -73.55646197329725, -168.26876443715335, -195.1001505683045, -126.06893249901168, -334.73378468565176, 1.7215695398962028, 90.16811925137658, 8.838048357616303, 235.89107242594974, -5039.317506176801, -12854.449904073024, -54.68207203566801, 16.466366066130064, 194.56148910219767, -178.60482810159132, -19.623921784714582, 280.94913584505906, -1.5717890966450236, -237.0055101040107, 111.5300409377398, 104.41952288209433, 681.7124523869073, -305.90130041186046, -2.8714316975090317, 69.4138628740605, -33.60995031652267, 266.49218664397665, 579.8702211581484, 2135.3025235253012, 8.03163696211519, -29.014796257884925, -38.92246515815726, 344.3547315379032, -174.04062693329323, 2355.7775140770423, 6.836262813376172, 186.60806943945704, 232.22183774919438, -164.65856809836032, -236.97954554636823, 216.24042361429622, -1.3001540036003285, -275.75675938722316, -59.842226667088426, -173.56588142324256, -1220.7230183961374, -755.2557634048036, 4.414236487452396, 44.7083687467714, 102.34750945871632, 201.1147638923229, -137.47106735480833, -609.8132633815617, -3.0383208347708504, -181.84084375901344, -179.0802111449686, 168.92952214164075, -286.6721982711978, 274.48954708766405, 1.609463064353929, 116.79944697066608, 38.66364438906099, 261.8950368179907, -995.9689623800707, -2189.513587426294, -8.394049971011519, -18.225910069480488, -237.33927610335735, -4.569854561701366, -18.97006829274077, -5.443807116257143, 1.2353061125887272, -148.51111327717587, -85.6699482557785, -56.98340517835345, -480.90411245234696, -180.89769240081023, 3.2503760925442453, -56.63017426787696, 0.8934022150186097, 440.2978783853789, -3705.6806944184714, 30993.702534088785, 70.31459029041146, 307.4704494170437, -76.51905031985007, -25.15463391936967, 1192.7199932927256, -107.99173345432268, 3.8706080537859093, -180.4214018292526, 170.45754698470523, 78.13668514425723, 331.95722408529355, -145.6178854098321, -1.8260352699134288, -90.96588768500098, -1.073434638527773, -247.55616291172566, -4147.875793000821, -10986.365584122017, 44.527232256096305, 234.09569201551886, 159.54993433945086, 186.2042510726197, -442.6069306412746, -348.5642202605556, -1.8932852465622934, -289.0701312297313, 151.83521709374983, 103.08988364060072, 602.9691459176144, -219.72365014853483, -2.07937315962404, -196.18151892813523, -115.43774576349406, -174.95124130832136, -479.7301936825464, -423.2406814856343, 2.443770753685519, -219.81204056661582, -174.58550424596527, 68.98961208661541, -357.0261086813842, 116.71682948982121, 1.6450440922025316, -263.84195527125513, -201.82417493122153, -162.24494518428085, -374.9467020522853, -228.11922769476308, 1.4268027495264686, -70.3272630914353, 318.96846933097254, -92.7749448335672, 71.56808575530972, 87.8607943317393, -0.9535268850881597, -21.421737137338603, -91.86362704107165, 158.49032333705813, -58.43048614406426, 491.12866443253586, 3.0951788963773295, -256.473289598079, 31.443523858871266, -10.136817229530351, 3228.003681510227, 98.56878612712846, -12.564255004414342, 188.0972474283361, -19.60409738065256, -158.95944012150798, 2561.577875115355, -2201.628297198728, 13.70591106658382, -213.98899355731947, 68.23643763447042, 100.4315590122705, 1046.410641199856, -500.64148977273237, -4.891979298170431, 158.54224698225386, -19.064941863051246, -57.051584416371256, 2187.8021028818775, -808.2966174645703, 13.825150419813152, 370.3895509482492, -93.24305942017581, -16.072007892188225, 1191.338783142298, -62.17516162640001, 3.208164785382069, 132.3872153877578, -270.6778454720469, 65.1239447550521, 148.96013110295453, 69.89277538002439, 1.0931225149449142, -78.94366788467833, -289.0847056438151, 184.68331869523942, -74.86698368106488, 188.207442858694, 1.0152455621507261, 256.7048371661249, 51.16726022532056, -42.81981220228632, -1534.900201930804, 270.82813061153416, -6.003539582270415, 177.0610682306513, 287.8650872894075, -110.68002164664517, -180.68230026717612, 117.56523113504315, -1.0472826580175314, -152.7703908872902, 78.18551836642544, -192.37263640739818, 647.3801446686442, 795.5368550661407, -4.16511081114393, -231.82908550994378, 282.9672616077278, -12.680790361042119, 255.36429002385842, 11.509816014811413, -1.0848891425905702, -101.73553128536645, -99.92714628079887, 119.01027838226865, -281.40642925601196, 339.3596692091477, 2.8300160665916514, 124.46384005071978, -53.39362546686475, 69.79163893567814, 667.0408984838672, 364.362916407012, 5.305462296616829, -118.47069984635148, 61.615204182649975, -43.2117988184376, 642.5344983531955, 226.4578995747644, -5.37244982516657, -32.689371809007966, -22.20638284623683, -226.43162463267333, -379.5217188249461, -2492.185166788483, 11.02100146318495, 118.0497263990701, -185.30244813613695, -95.41102767905731, 189.62754508773554, -153.12816234988807, 1.587448196838764, -10.632792266249119, -173.01463645425292, -80.31736361463915, -15.53422368096858, -135.0227136152635, 1.683172677567968, 16.261997632586937, 266.13744069857813, -126.31867986611876, -13.557418767922654, 144.42628028822855, -1.1420806292224055, -137.80631094274676, -213.84418216712868, 161.55211110136557, -181.7482660512374, 221.229553419524, 1.35909778183325, 72.49155356255902, 123.36756354133495, -166.13072559811678, -173.53280138573135, 416.48247697126607, -2.497320920124876, 145.22094340345512, 292.5363629390353, 43.51266687457732, -146.51755264933294, -43.553926498167044, -1.0317515361366905, 26.903904915945294, -286.75894712242206, 107.84008997846357, 32.251881426984305, 110.59291864963312, 1.0278588170491958, 135.4604481542542, -141.10263178061223, -272.1516353253892, 279.85174578571, -567.7321364756019, 2.076935095813796, 58.2940365976277, 215.8165491908385, 159.04094251046467, -80.46919238819723, -223.53056851207936, -1.41016455528687, 3.065032888090375, 32.902826527662484, -357.5597954206483, 5.60688255750149, 3764.7509197384866, -10.528624593030655, -208.9614052598544, 45.10550504280237, -220.7501365100197, 1663.0973548650193, 1721.3952134241188, -7.864757519232542, 96.04500216508177, 240.02934863323088, -262.5685945514125, -114.65204171336951, 332.805041504468, -1.2634192903913743, -104.90369153831757, 181.47617898777716, -129.2076281562002, 184.28774764594723, 218.32316799351221, -1.7021218178262716, -295.816380837906, 138.3025281015969, -99.36839290176195, 685.4116736951752, 222.19187093905484, -2.2972284319367264, 214.42418351445318, 278.8519360365744, -5.819349788447696, -227.71836342007285, 8.350291830153928, -1.079587820666068, -237.97862082739735, 52.608523821550214, 41.863086095330495, 1576.0793941238153, -291.0214357149698, -6.616013886902045, -38.18958006907329, -75.23962335892236, -67.10107952756995, -141.14272489393736, -248.85430142809994, 3.7277505427458553, -131.56231642345728, 5.648411549206468, -153.1223418411277, -82715.35368906886, -94506.28121530352, 621.9936808318877, 298.71047875647326, 172.01341388533663, 161.53461606271475, -520.5423352676108, -277.4830984170167, -1.7467190902667136, -245.28465959161798, 47.46673073608521, 29.939003008406257, 1837.4250540946946, -240.39845240762241, -7.482267615237579, 16.077530039389497, 65.31626285745094, 279.40883573679565, -87.0530616447526, -1367.9296390812106, -4.8985130716897345, 50.1798783538343, 364.78871480261637, -122.38125376768404, -36.96350350060198, 101.76880987139629, -0.8285698583256305, -85.69998157092358, -62.61097548243769, 34.1376421727072, -371.23753600011815, 153.12213894083956, 4.387216034061772, 126.11236327041932, -44.98034102499225, 180.55038037630712, 800.4312671739222, 1119.667363304138, 6.240603004002219, -5.478878455856403, 134.9755768874976, 98.87656558079438, 14.327179833868323, -226.80579371097397, -2.292784097685381, 5.019337817296584, 196.8936263726841, 224.49878618174273, -7.164423399973881, -348.68199126501685, -1.5535298723915694, -100.403181344023, -78.23084048810459, 77.724746772329, -351.686497179316, 280.02273417732994, 3.561786892911227, 107.06963608369631, 87.56676823170974, 285.68190775165687, -384.4917313721352, -1008.6035557534441, -3.542514950486864, -49.09081679940234, -276.83865205449956, 156.33122157238685, -46.983284645769025, 166.27147179817948, 1.0606514081681668, 139.8698995967492, 262.50099075007864, -82.07094063911194, -156.4789270894857, 95.93063761934208, -1.1513904043329597, 82.58973060629422, 112.66508955646572, -315.1357036544986, -214.75442234764515, 865.3800136282487, -2.739749889190479, -198.10448835432894, -21.96880004348985, -100.94544281170448, -2055.515599564838, -1025.8388198252135, 10.34407619191553, -361.8358615247095, -158.48620275565415, -145.12728486989045, -644.9720694118432, -253.3981497812095, 1.785890198831347, 80.01375018301391, 319.5204198751301, -129.77865435398348, -70.90757272299308, 123.48297181443216, -0.9463145937412503, -63.940207575607765, -255.63552845331316, 63.61702103147021, -69.03013708452663, 73.5609617845278, 1.1460646419063978, 69.79052100329308, -53.93806968600549, -324.599701014942, 350.52975344163224, -1687.7336194458233, 5.189669519413027, -60.81564156151781, 255.18226428389974, 55.28534237743764, 75.89907216787728, -66.78871881205029, -1.1963635538197481, -307.11247349717087, -201.85209774336312, -224.11304170531773, -436.2901590132549, -314.98869244949987, 1.422967222484606, 307.4889730721536, 212.21973442314396, 211.5285133738096, -433.6574964249298, -295.15273660135955, -1.413749017880974, -314.8932480413668, 55.410673311510706, 82.07860436995637, 2000.2413155031077, -539.3771451819529, -6.35395072600807, 202.56704551258437, -44.10196449418278, -66.26920715687366, 1312.6605126821944, -441.30584236316247, 6.482525514186166, 342.46995868509657, 81.56831525987245, 94.05282672686242, -1259.271312214328, -334.76530074183523, -3.6791610951492855, 389.466663627288, -78.18992019180595, 32.419916393541676, 1499.3225673143595, 111.06395492218014, 3.8378282189030455, 107.71984870918793, 82.14994978561332, 269.0015211663384, -412.9738361401896, -1014.5261694934396, -3.785143486315452, 157.52327261365147, -188.7908701914874, 9.296516656135143, 249.8646905203663, 12.327316277786574, 1.5626170930316798, 303.7060094431977, -132.6582620747572, 32.97640588172267, 684.8244067553393, 67.81638278924535, 2.2409828220145376, 137.73015007816042, -7.083682162931004, 127.57047666528737, 4204.0702915489965, 3822.6456804502877, 30.258020471766937, -204.4174170152079, 96.88457164341115, 57.8091553934238, 682.1870239756212, -198.3808129077407, -3.3266930581025416, 60.54118594214363, -101.83044710719993, -103.29726301917478, 172.33157846238987, -294.02098069594706, 2.831644735792644, 6.193479047652108, 16.43463328416534, -229.43091053878803, -98.3487581251097, 5725.356774552244, -24.949579473558675, -121.29676638181866, -360.07439928285856, 141.69869001194812, -94.43778642495145, 116.63420273451658, 0.8168996685281826, -223.36436005199417, 32.83575460246687, 150.29030022326768, 2596.224501670522, -1777.6760483346386, -11.673751537731777, 65.47098519211981, 152.06295342278892, 47.53322886498274, -129.03463853475026, -94.61504589694239, -2.015382824188461, -75.8451373737298, 375.5860382505655, -111.37612520158744, 65.78622299305282, 89.42467972137949, -0.8078540135709921, -125.39503690934966, -102.03319993200583, 324.2827596749147, -335.55545421289753, 900.6280679321817, 2.7678414360513672, -22.284510963254565, 138.41252198486745, 226.35894802531755, 49.117869278997645, -506.8177105195149, -2.2371218507616946, -301.1848179220171, -188.3364927741768, -131.510713578647, -456.452306657743, -195.98137816598287, 1.5214198215948112, -44.18594697677704, -82.68294225332603, 300.06187915597906, -138.0586756347308, 1024.4930565801492, 3.4099228284814806, -49.254066477607886, -215.51766358767193, -134.68545861503597, -64.79677603527242, -181.93198221889938, 1.3552733334344764, -33.801270971914576, -287.4655026596302, 81.60304928597404, -30.218346699486784, 83.76500455613059, 1.0227497389844724, -107.9969236847696, -13.172682359834477, 99.94570741895159, -1684.166757834995, 1589.2915402089413, 15.750136719048124, 43.210939974307365, 147.47485470252442, -137.45174117155156, -83.71428505635188, 287.23431160555526, -2.0839406988536338, -65.56733222955525, -252.95994831528986, 13.645091986840432, -72.17700993501322, 16.47619974092063, 1.1578250491807351, -139.76069077562855, -266.8638138261884, 95.96172335546177, -148.5086978309984, 106.44641741746837, 1.0950549269452896, 340.51382557237184, 107.08715949743318, 80.05417962255179, -951.8871254692883, -215.67711617636678, -2.8006755795446043, 209.05627790439988, -205.97570773844782, -155.17241716707971, 302.2415132513188, -225.82756943506047, 1.4380820483015253, -191.0091216229755, -165.63687209080504, -282.18600160070616, -331.9043226426924, -486.1574475882405, 1.7333773008658961, 146.59323408800492, 84.39799517458219, -113.29784267927424, -529.1011360019578, 419.5423995362336, -3.6608348136122197, -237.40293611935115, 57.335282584277586, 50.54216077453232, 1423.0628567128547, -315.3683607217525, -5.988649654961074, -187.23710467286148, 57.84833878067454, 61.68334870998467, 1097.3030669740408, -371.0137390599034, -5.856238228967833, -230.92809761739917, -194.30466029863442, 118.60400620744204, -337.3449288586416, 178.9527102163723, 1.4830871903152867, -76.58171430780816, -341.60132264812574, 190.19930305795384, -60.91129537684709, 164.47552950768122, 0.8616884536496996, 234.2910936998803, -76.8568203120425, 12.0296054136393, 896.5272892459019, 37.85567621485612, 3.809929950951908, -73.55649702004787, 162.90737931047306, -34.06797872187583, 144.00060507124257, 63.42895767163745, -1.8985309981575738, 151.90644749272596, -302.965648295814, 63.900281169152855, 152.81179246536115, 61.19503793529645, 0.9784841167498138, 221.75500159525905, 138.95060737238725, 167.59309652096317, -482.85361797133436, -360.96813594596057, -2.1796890965990405, -66.35037994851355, 158.4329147794841, -200.6754532268328, 136.87008573366077, 390.7757100081264, -1.9531490929564606, 209.55829232787949, 207.2842224083768, -62.38245940330246, -300.6130755896993, 93.56367675937274, -1.4561967182818156, 109.22134529346066, 236.14775976328573, 20.613883462819995, -136.68400259755688, -25.20301091140128, -1.2834242967102139, -155.09220270500745, 215.67447701432235, -155.2189658891298, 227.3548021247175, 219.81509210485373, -1.428973817481504, -16.893112970633712, -211.39083800912738, 120.62560040411738, -18.298933316545632, 167.12615898309284, 1.3838188420687707, -0.764872889209264, -120.8815330034893, 232.14665354783975, 6.6549562428215685, 553.7101584080162, 2.385198959544599, -73.40770932727229, -53.976023312196006, 71.02039718177245, -363.1676734019559, 361.00120793525974, 5.036755726923069, 140.72075522378924, 314.72431284266565, -14.706257175103268, -131.05266811186272, 15.301465063504285, -0.9585692031388444, 37.25321613095274, -242.48909807860184, -91.85986362005124, 47.786142169398765, -111.81246011776638, 1.2128611320469358, 117.78349726136871, -30.977819015560726, 139.94792557847347, 1049.4882041969092, 1220.8034606182148, 8.789707838151841, -112.18794096061426, -227.0157719103335, 189.60934395203265, -138.29443512759914, 244.74976470033897, 1.2840744963467636, 146.2989308348164, 318.7477913489981, 11.422186429668209, -134.80610017252138, -9.570069006497455, -0.9461498053065058, 177.88947308865946, 108.47486891080818, -80.20933220932555, -495.31217912147207, 230.42566521972674, -2.817100504715394, -92.86352979614388, -12.350054435014695, 122.69001789229131, -1523.9144802337096, 2054.7433429067123, 16.6356137440523, -36.45199040744687, -91.0878559805698, 123.0010342537164, -106.60565900328972, 384.0392396984136, 3.114123532935643, -11.052535160843583, -25.805153082451458, 301.1078443335845, -79.11495166749367, 2961.854189630379, 9.833690602010096, -45.88265394576343, -60.72054421433828, -230.50552402666798, -214.4350408239563, -1045.4757277370488, 4.543839206582993, -160.1880811148066, 102.1132358647208, 307.4697766534957, 495.87478141898697, -965.3115121382501, -3.1251124611324403, 52.52666339255677, 147.1078834585669, 140.9617665537515, -108.48582235592163, -293.22070832651707, -2.087174918455067, -139.2900280761503, 117.17334047359175, 159.27239402462476, 375.2796603075527, -432.46186903452167, -2.694291830442138, 242.2669738510959, -185.9906843285693, -132.31091083382248, 387.9926087343683, -214.4085879183523, 1.594472083764723, 192.49130982499787, 249.68363697669506, -113.14669565278605, -227.59128580659558, 138.75621983472539, -1.2080272812611748, -16.365099060158713, 195.18530321524946, 5.2802042726439735, 29.36711558111021, -8.518011580069636, -1.5697950912568495, -131.21225638144722, 268.4034709971366, -104.86619764546884, 154.39150733305166, 118.2138252256118, -1.1400717557541737, 52.1819195714061, 67.42855101485083, -165.5428557900884, -234.66015335066538, 781.0991615558016, -4.705347937798019, -32.745171422087296, -195.37469353070682, -35.90936349194006, -45.78840485060624, -53.174519932705095, 1.4930205462695958, 172.69129516881546, 193.21864381874676, 202.01304497669648, -269.6493736465709, -314.0722107710188, -1.566740132583988, -103.10100342094194, -28.07776381884655, 152.09806555911143, -896.2905107932751, 1352.687440889967, 8.840339657621552, -4.247402235493655, 205.2925404415548, 92.87589506402163, 8.836840285455331, -138.39188262675242, -1.4895240960246126, -36.22984799918423, 13.686573069632889, 236.10394920819834, 1169.2053417028653, -8062.629795104431, -34.10325469933826, 234.39300473510707, -162.1481671391007, 136.13188334239118, 433.7918984812579, 244.73828235133234, 1.8259626257564157, 306.42265769811274, 214.06371779385714, 100.09933191558397, -427.03899815105456, -136.4661592152628, -1.4016962127384751, 308.2372030303256, -93.83014450125116, -77.53533704058697, 976.0352121136758, -253.87864692165752, 3.1621814618479034, -325.1526854207685, 32.52653131969404, -114.36237742421396, 4063.3960459300315, 1386.917654003148, -12.443966524386605, 22.75745063912823, 1.6579347092909533, -129.3845021005878, 2503.195771597655, -15031.963277246448, 116.00290466045858, -28.510810651646533, 139.6528672373184, -304.4900793259985, 73.08311352614389, 674.9994452045663, -2.218763700948843, -246.25938770713483, -228.04703029948556, -173.78683247403828, -310.9606045003864, -217.78335761853285, 1.2692824052746097, 149.7108836794905, 151.317828783129, 25.75975609927029, -297.8456467274754, -49.123939756239324, -2.01152300590007, -324.27568567211927, -25.81807500350987, 6.534841192836657, -2824.1285338242146, 82.24410361202747, 8.720114864602534, 210.52876486929938, 284.77036380329304, -48.4197945474789, -218.39887901037594, 53.17561906587616, -1.057197777832537, 185.98637030944988, 154.6260226332373, 331.6079918102122, -366.8762738173684, -647.1847841946653, -1.9615629284627407, -42.23365829679538, -154.8081115952867, -205.08477692861536, -78.87460250942371, -382.9233475181713, 1.870662774544653, 105.63590494580839, 51.682372191398876, -349.58830844679096, -628.8580020769242, 2163.847830598708, -6.17328467940006, -118.11726683101338, 160.99867849128157, 308.212158802615, 226.21336437907502, -596.2817102006476, -1.9281226339452409, 97.25387683966837, 116.66812657511795, 70.57783763362983, -254.38417451239036, -183.86022014680688, -2.6376454820289075, 22.748500414352648, 35.31331078658848, 0.6897662625636489, -214.6544072903198, -4.678985355329385, -9.617408409193057, -37.58804828615286, 19.447887164947005, -325.75898519300546, 842.8150178385408, 6733.294089546101, -20.691712612952536, 291.10782901520696, -53.20959684697158, -49.668589372848416, 1608.5442554887297, -288.6344204914745, 5.522279898598592, 91.551105663039, -318.733770190507, 99.88081646625996, 89.43544226297882, 91.96126006389002, 0.9283488547702003, 150.20117810780377, -117.64537607252798, -58.57619841590842, 375.54898410631637, -148.91438525006515, 2.485398303247675, -48.345110625160274, 214.34921686340775, 46.969809958142235, 72.22772379935327, -67.73154471145327, -1.428940580759666, 189.62325221974535, 336.8958631418871, -81.98900373457558, -165.04359094335317, 74.75761748701353, -0.8933775785697179, -224.41823583196006, -111.8226016922879, -224.70682886137277, -564.9905956505714, -559.123998809207, 2.5107390777173455, -200.08593706786974, -244.59933046632008, 35.18214372687529, -233.8848613114508, 43.94530299832212, 1.1887314900615513, 92.3141659237413, 6.136604515068434, 30.861572218688927, -9982.998807470733, -3241.433959837259, -107.9195895513197, -216.29975555387819, 61.73825267835837, 154.12917459239654, 1180.9582471996262, -854.58384470342, -5.4761580345414025, 300.6922916429186, 75.90449713552042, 32.27461376423125, -1194.6858821350334, -117.81783414467101, -3.982074054467668, -80.1303356304353, 75.01958662262422, 93.73468215732792, 344.83541730237164, -406.0771204506972, -4.29953303231435, -150.34023796018974, -167.87010318054874, -285.51083880177316, -258.8184931312324, -487.64494590225456, 1.7161148300101543, -202.82172062431252, 234.66656966887882, 159.5272680220389, 268.2272474881066, -211.86851793690366, -1.3132386639426765, 305.62573267431515, 120.30639339374979, 108.81305283451101, -763.0155194509014, -265.29819961944514, -2.5009642897806588, -302.09304195043933, -218.8688135862864, -50.529528222096005, -394.8245047990368, -62.982631442761964, 1.316836938984909, -218.85779270335047, -122.65371409544741, -284.1607472787243, -506.2532251982922, -649.7608322742005, 2.3025306737199265, 83.88629520354807, 283.462097277854, -241.05668700964694, -83.5771770624171, 258.25737813160333, -1.0680775082079237, -42.64293374946823, -103.42335165051202, -2.4880389636014595, -114.13415085752177, -5.809643663794627, 2.757327508798265, 217.20788748824046, 123.99522452478564, 251.04763592746363, -533.2852700797139, -609.61932696257, -2.4473154147200247, 44.92237773681762, 234.95495168691627, 201.58410005559858, -56.74172126078975, -260.38397868013675, -1.2943174874996743, 191.203232740007, 26.49992325697094, -78.84844203873571, -2336.6577778551614, 989.8691999679025, -12.288355042656425, -88.16699798268135, -34.995920015649126, -218.20601517445752, -660.4731567644052, -1601.221923174842, 7.364999101009269, -115.02992320579958, -73.45152134064445, 153.0587791029776, -424.9138553835787, 580.6756422087968, 3.7686558257362037, -154.84982418811336, 126.4372578363258, -158.48391325747696, 393.1343245735875, 391.3835224519126, -2.491393556105712, -31.621667328029286, 216.15060505907425, -173.46176805613928, 50.698710009066, 245.13106142221255, -1.4155323400030237, -78.58249319669223, 12.897796366450812, -278.108678676131, 3279.9755759007403, 11202.87377391098, -40.38591686968666, -292.9452307816561, 286.7335761064503, 103.73497889440232, 317.0966322548721, -114.12105115386753, -1.073091689449003, -210.03550543421622, -258.4361432006343, -33.01278732154164, -233.2814442099235, -35.0644464377682, 1.126203446525064, -19.169472284491217, -114.51876268523891, 358.2568656254007, -36.529901941899254, 898.9974858051049, 2.5082667864262667, 320.06067314085425, -19.05346511106695, 53.5549121811362, 4886.698525092436, 772.3608104045211, 15.235902831362178, 112.76902169932032, 127.7195320175895, 350.0812282561703, -274.2615504289076, -837.4302693630934, -2.399102439916358, -83.37238140695173, -49.762464219905745, -266.93958453681284, -460.24957067973196, -1438.9774197425272, 5.405947773585864, -118.12652054807342, -97.48919873920705, -123.42196134617166, -341.1382394165441, -353.6852384632205, 2.8904888514312406, 275.2963665919354, 301.98678772380555, 22.133393395511654, -270.10050644710753, -19.552818986444528, -0.9938852786917182, 99.92925592506154, -157.85889175557418, -243.15573777874695, 184.94826608159502, -452.7949704518886, 1.8554223127235958, -8.043655979878366, -141.51694441891925, 138.32661858597277, -10.383029675732997, 283.24710821336697, 2.046687296067853, -212.24212387878484, -211.5466418269764, 106.70659271034879, -285.3956925792934, 148.5271209255128, 1.3676728586976254, -6.195647405579523, 270.81708706283393, -38.42809480653016, 11.070251104865173, 43.096450665206206, -1.123145419723889, 76.76782108622878, 111.93404987944447, 2.7330887575039586, -208.07310866845364, -5.648443224625955, -2.7591545745449735, -9.207356371578912, 38.81690046246936, 150.3411867642336, 72.86703385584107, -1314.3754441086905, -8.738185033891046, 188.62479218075052, -124.43121956203187, -276.6921706451856, 443.05654500446065, -657.2235694111757, 2.36100320950239, 275.17444128772064, 65.0091219377018, -26.811171647299968, -1283.142315017678, 137.01060476691407, -4.6811772118503585, -132.30537960555742, 47.277037661865506, -189.57100845957368, 978.1823757972546, 1369.4077419134842, -7.269333314291645, 166.2484585622525, 64.99200803852627, -176.8515973806965, -783.814864061993, 853.0654178524231, -4.783640732945346, -208.84208212146106, 153.47863287291358, 275.463775739896, 425.18289364069784, -566.2325662780097, -2.0418131664047614, -187.47053229900075, -129.28598545611112, -286.7785400914035, -413.9431145809001, -626.3020527194316, 2.1968395646484975, 379.72558404684617, 86.839487596671, 72.81057926696282, -1303.5606031819902, -238.58336393446058, -3.437040606218969, 60.5374355422547, 64.3760344231829, 205.19001988445368, -303.63160014502967, -1009.1081914091076, -4.931114140953819, 205.71729426772737, -148.01576476876556, -225.92194764897457, 409.58402415965355, -453.956265511713, 1.993215378323415, 290.1986857038882, -55.255792866834156, -129.49331254898414, 1540.929563009414, -702.5789787256609, 5.319317096829011, -162.57686847903324, -215.35715595453888, -156.0610634307434, -217.41152474829659, -208.3665799519153, 1.347757432565357, 25.31478737801536, 242.39688593352554, 114.95177423623474, -29.33333291533088, -144.0024447779371, -1.2552401214481863, 192.8965259093468, -236.30284671729248, -152.90812125589673, 243.7809017826764, -193.89895220974725, 1.2539925265474303, 81.19064215053537, -196.35271373737032, -120.47693068412875, 123.44251860770302, -181.3203842013483, 1.4960742502907398, 109.2996651030947, 221.29349076116864, -233.42615953749848, -143.25541935690777, 321.3509691041092, -1.3709904963544255, 116.11763781157262, -160.01976478765624, -202.4953530553351, 213.1148636474652, -373.0911834512536, 1.8331500911417884, 10.28061707284499, 6.112146913530975, 290.375531191783, -2162.6906248797363, -49050.34710961527, -168.98057735719863, 117.69132117805921, -198.12958791701433, -203.9667084566345, 175.7833314327112, -304.6694376119402, 1.4861200327060373, 87.03866304681445, -276.43881189056987, -10.190860725354016, 96.50469380012052, -11.718446518603495, 1.0684190041434412, 94.10861036905796, -160.16016203036025, -1.513805945344063, 175.65008050702227, -4.305865526524845, 1.828799201793264, -236.9293813188425, 119.49252851588508, -31.73330547340615, 636.670928019735, 79.00811084601169, -2.667804955138077, -203.99444414652675, -168.52154319892122, 153.1265950001909, -341.67427051632757, 263.9895265576226, 1.703785943238236, 195.85176078896876, 25.892605766618885, 139.63043914541652, -2471.3128988576777, -1731.7237873820613, -12.56008176360326, -284.96195978108744, 287.3340609627466, 19.9202625426004, 308.5790348763381, -24.047760761794777, -1.0704444177825676, -280.02743927716705, 213.8448905548876, 113.99997399604703, 408.90382990941214, -169.16405740285393, -1.4520883163596034, 46.63355580069706, -109.63776806144489, 272.3084093099481, 132.74938262911135, 716.0536604322904, 2.6337030889301962, 135.0150926121084, -41.51384289226989, -61.46970923195447, 909.6000055280914, -422.40755436715506, 6.739818578010325, -93.32381167160987, -28.345823798977513, -49.34754485388361, -821.6090888960259, -426.7127470833716, 8.796050868113708, -220.67282504999162, -39.21695966354013, 82.42895711174654, -1413.7369802360777, 543.7494441908246, 6.442752101818647, -107.86287072224815, 20.635958980748583, -252.26723327110193, 2231.733060187549, 5081.880716089588, -20.222884841634926, 215.73780745278444, 182.4347765605042, 1.3224740967064592, -353.52106174179085, 1.0016650173915507, -1.6559179038057814, -188.6843940682933, -176.56379382722952, -193.77673804173995, -306.9024256672869, -313.1847022855473, 1.6304623562104499, -94.76931473838451, 55.67592596131997, 147.52615932611886, 562.5530797603858, -886.7596031079629, -5.9768018793175335] ) self.list_polys = List( [0, 12, 18, 6, 15790320, 128, 24, 30, 42, 36, 15790320, 128, 12, 36, 42, 18, 4253248, 128, 0, 24, 30, 6, 4210918, 128, 48, 60, 66, 54, 12853280, 128, 72, 78, 90, 84, 12853280, 128, 60, 84, 90, 66, 4253248, 128, 48, 72, 78, 54, 4210918, 128, 96, 108, 60, 48, 12853280, 255, 108, 132, 84, 60, 4253248, 255, 132, 120, 72, 84, 12853280, 255, 120, 96, 48, 72, 4210918, 255, 102, 114, 66, 54, 12853280, 255, 114, 138, 90, 66, 4253248, 255, 138, 126, 78, 90, 12853280, 255, 126, 102, 54, 78, 4210918, 255, 144, 156, 180, 168, 16776960, 128, 186, 174, 150, 162, 65535, 128] ) self.list_polyOrd = List( [-5.058797503814708, 24, -4.895668059457755, 48, -3.7765562327960276, 72, -2.238223653323433, 96, -1.5754094115399973, 54, -1.185162414577317, 36, -0.6398954576295532, 12, -0.45629758487826977, 78, -0.0823246956595538, 6, 0.08232469565955391, 0, 0.45629758487826977, 66, 0.6398954576295534, 18, 1.185162414577317, 42, 1.5754094115399973, 90, 2.238223653323433, 102, 3.7765562327960276, 60, 4.895668059457755, 84, 5.058797503814708, 30] ) self.list_beat = List( [24.488, 25.448, 26.418, 27.265, 27.719, 28.232, 28.716, 29.187, 29.662, 30.148, 30.587, 31.09, 31.568, 32.075, 32.547, 33.028, 33.48, 33.981, 34.462, 34.934, 35.415, 35.911, 36.37, 36.858, 37.322, 37.811, 38.28, 42.736, 43.118, 43.587, 44.07, 44.556, 45.004, 45.527, 45.97, 46.419, 46.92, 47.429, 47.908, 48.378, 48.881, 49.36, 49.806, 50.285, 50.77, 51.29, 51.749, 52.205, 52.707, 53.179, 53.644, 54.13, 54.564, 55.074, 55.556, 56.045, 56.543, 57.021, 57.499, 57.975, 58.38, 58.905, 59.39, 59.868, 60.353, 60.852, 61.303, 61.821, 62.284, 62.777, 63.226, 63.706, 64.223, 64.681, 65.164, 65.617, 66.101, 66.579, 67.066, 67.571, 68.047, 68.513, 69, 69.485, 69.938, 70.41, 70.933, 71.427, 71.932, 72.361, 72.862, 73.327, 73.805, 74.278, 74.74, 75.241, 75.721, 76.24, 76.733, 77.19, 77.676, 78.153, 78.619, 79.089, 79.574, 80.053, 80.572, 81.037, 81.505, 81.977, 82.454, 82.911, 83.408, 83.913, 84.385, 84.862, 85.353, 85.826, 86.285, 86.804, 87.259, 87.733, 88.204, 88.686, 89.156, 89.663, 90.121, 90.624, 91.08, 91.604, 92.082, 92.559, 92.996, 93.508, 93.983, 94.466, 94.958, 95.472, 95.917, 96.355, 96.807, 97.332, 97.816, 98.335, 98.764, 99.236, 99.749, 100.21, 100.689, 101.184, 101.632, 102.106, 102.619, 103.122, 103.571, 104.054, 104.5, 104.996, 105.506, 105.979, 106.482, 106.937, 107.404, 107.873, 108.376, 108.84, 109.334, 109.822, 110.316, 110.779, 111.273, 111.752, 112.261, 112.704, 113.178, 113.681, 114.147, 114.628, 115.103, 115.588, 116.03, 116.545, 117.005, 117.497, 117.982, 118.446, 118.929] ) self.sprite.layer = 1 @warp async def my_Create(self, util, ): self.list_points.delete_all() self.list_polys.delete_all() await self.my_AddCube(util, 0.5, 0.5) await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 240, 240, 240, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 240, 240, 240, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd) await self.my_AddCube(util, 1.4, 0.25) await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 196, 32, 32, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 196, 32, 32, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd) await self.my_AddCube(util, 1, 0.5) await self.my_AddPolycolorpoffset(util, 0, 2, -6, -8, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, -2, -6, 64, 230, 64, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 6, 4, -4, -2, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 0, -8, -4, 64, 64, 230, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 1, 3, -5, -7, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 3, 7, -1, -5, 64, 230, 64, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 7, 5, -3, -1, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 5, 1, -7, -3, 64, 64, 230, 255, self.var_pOrd) await self.my_AddCube(util, 0.8, 1.5) await self.my_AddPolycolorpoffset(util, 0, 2, 6, 4, 255, 255, 0, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 7, 5, 1, 3, 0, 255, 255, 128, self.var_pOrd) async def my_pause(self, util, ): if util.inputs["p"]: while not not util.inputs["p"]: await self.yield_() while not util.inputs["p"]: await self.yield_() while not not util.inputs["p"]: await self.yield_() async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res): if lt(arg_c3, arg_c1): await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res) else: if lt(arg_c4, arg_c1): await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res) else: if lt(arg_c3, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res) else: if lt(arg_c4, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res) else: self.pen.set_size(1) self.xpos = tonum(arg_c1) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c2) self.pen.up() self.pen.set_size(1) self.xpos = tonum(arg_c3) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c4) self.pen.up() @warp async def my_AddCube(self, util, arg_size, arg_size2): self.var_xmin = (0 - arg_size) self.var_ymin = (0 - arg_size2) self.var_pOrd = len(self.list_points) await self.my_AddPoint(util, self.var_ymin, self.var_xmin, self.var_xmin) await self.my_AddPoint(util, arg_size2, self.var_xmin, self.var_xmin) await self.my_AddPoint(util, self.var_ymin, arg_size, self.var_xmin) await self.my_AddPoint(util, arg_size2, arg_size, self.var_xmin) await self.my_AddPoint(util, self.var_ymin, self.var_xmin, arg_size) await self.my_AddPoint(util, arg_size2, self.var_xmin, arg_size) await self.my_AddPoint(util, self.var_ymin, arg_size, arg_size) await self.my_AddPoint(util, arg_size2, arg_size, arg_size) @warp async def my_AddPoint(self, util, arg_x, arg_y, arg_z): self.list_points.append(arg_x) self.list_points.append(arg_y) self.list_points.append(arg_z) self.list_points.append(0) self.list_points.append(0) self.list_points.append(0) @warp async def my_CreateStars(self, util, ): self.var_starIdx = len(self.list_points) self.var_xmax = 300 self.var_xmin = (0 - self.var_xmax) for _ in range(self.var_Stars): await self.my_AddPoint(util, pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax)) async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res): if lt(arg_c3, arg_c1): await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res) else: if lt(arg_c4, arg_c1): await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res) else: if lt(arg_c3, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res) else: if lt(arg_c4, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res) else: self.pen.set_size(1) self.xpos = tonum(arg_c1) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c2) self.pen.up() self.pen.set_size(1) self.xpos = tonum(arg_c3) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c4) self.pen.up() @warp async def my_rasterquadfillresolution(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res): if lt(arg_y2, arg_y1): await self.my_rasterquadfillresolution(util, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_res) else: if lt(arg_y3, arg_y1): await self.my_rasterquadfillresolution(util, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_res) else: if lt(arg_y4, arg_y1): await self.my_rasterquadfillresolution(util, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_res) else: if lt(arg_y4, arg_y2): await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x4, arg_y4, arg_x3, arg_y3, arg_x2, arg_y2, arg_res, div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2)))) else: await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4)))) @warp async def my_AddPolycolorpoffset(self, util, arg_p1, arg_p2, arg_p3, arg_p4, arg_r, arg_g, arg_b, arg_a, arg_off): self.list_polys.append(((arg_p1 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p2 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p3 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p4 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_r * 65536) + ((arg_g * 256) + arg_b))) self.list_polys.append(arg_a) async def my_rasterquadfillinnerresolutionextras(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, arg_x21y21, arg_x32y32, arg_x43y43, arg_x14y14): self.ypos = (math.ceil((tonum(arg_y1) + div(arg_res, 2))) + 0.5) if lt(arg_y2, arg_y3): for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() if lt(arg_y3, arg_y4): for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() else: for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x32y32)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() else: for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() async def my_filllinescrossingsres(self, util, arg_y1, arg_y2, arg_y3, arg_y4, arg_c12, arg_c23, arg_c34, arg_c41, arg_res): if gt(self.ypos, arg_y2): self.pen.set_size(1) self.xpos = arg_c41 self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = arg_c23 self.pen.up() else: if lt(self.ypos, arg_y3): self.pen.set_size(1) self.xpos = arg_c41 self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = arg_c12 self.pen.up() else: if lt(arg_c23, arg_c12): await self.my_fill4crossingsres(util, arg_c23, arg_c12, arg_c34, arg_c41, arg_res) else: await self.my_fill4crossingsres(util, arg_c12, arg_c23, arg_c34, arg_c41, arg_res) @on_pressed('t') async def key_t_pressed(self, util): pass @on_pressed('y') async def key_y_pressed(self, util): pass @warp async def my_ProcessPoints(self, util, arg_rot1, arg_rot2, arg_from, arg_to, arg_mul): await self.my_ProcessPointssincos(util, math.sin(math.radians(arg_rot1)), math.cos(math.radians(arg_rot1)), math.sin(math.radians(arg_rot2)), math.cos(math.radians(arg_rot2)), arg_from, arg_to, arg_mul) @warp async def my_orderpolys(self, util, ): self.var_lastquad = 0 self.list_polyOrd.delete_all() for _ in range(toint(div(len(self.list_polys), 6))): self.var_incx = self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 1))]) + 2))] self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 2))]) + 2))]) self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 3))]) + 2))]) self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 4))]) + 2))]) self.var_incy = 1 while not (gt(self.var_incy, len(self.list_polyOrd)) or gt(self.list_polyOrd[toint(self.var_incy)], self.var_incx)): self.var_incy = tonum(self.var_incy) + 2 self.list_polyOrd.insert(toint(self.var_incy), self.var_incx) self.list_polyOrd.insert(toint((tonum(self.var_incy) + 1)), self.var_lastquad) self.var_lastquad = tonum(self.var_lastquad) + self.var_ply @warp async def my_renderatresolution(self, util, arg_res): self.pen.clear_all() self.var_pOrd = self.var_starIdx self.pen.exact_color("#ffffff") for _ in range(toint(div((len(self.list_points) - self.var_starIdx), self.var_p))): self.var_ymin = (tonum(self.list_points[toint((tonum(self.var_pOrd) + 6))]) * 3) if (gt(self.var_ymin, 0.01) and lt(self.var_ymin, 45)): self.var_incx = self.list_points[toint((tonum(self.var_pOrd) + 4))] self.var_incy = self.list_points[toint((tonum(self.var_pOrd) + 5))] if (lt(abs(tonum(self.var_incx)), 280) and lt(abs(tonum(self.var_incy)), 240)): self.gotoxy(tonum(self.var_incx), tonum(self.var_incy)) if gt(self.var_ymin, 1): self.pen.exact_color(((70 * 16777216) + 14737663)) self.pen.set_size(((tonum(self.var_ymin) * 2) - 2)) self.pen.down() self.pen.up() self.pen.exact_color("#ffffff") self.pen.set_size(tonum(self.var_ymin)) self.pen.down() self.pen.up() self.var_pOrd = tonum(self.var_pOrd) + self.var_p self.var_pOrd = 2 for _ in range(toint(div(len(self.list_polyOrd), 2))): self.var_lastquad = self.list_polyOrd[toint(self.var_pOrd)] self.var_incx = self.list_polys[toint((tonum(self.var_lastquad) + 1))] self.var_incy = self.list_polys[toint((tonum(self.var_lastquad) + 2))] self.var_ymin = self.list_polys[toint((tonum(self.var_lastquad) + 3))] self.var_ymax = self.list_polys[toint((tonum(self.var_lastquad) + 4))] if lt(self.list_polys[toint((tonum(self.var_lastquad) + 6))], 255): self.pen.exact_color(((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 6))]) * 16777216) + tonum(self.list_polys[toint((tonum(self.var_lastquad) + 5))]))) await self.my_fillquadresolution(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res) else: self.pen.exact_color(self.list_polys[toint((tonum(self.var_lastquad) + 5))]) await self.my_fillquadtrires(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res) self.var_pOrd = tonum(self.var_pOrd) + 2 @on_pressed('space') async def key_space_pressed(self, util): if eq(self.var_speedTarget, 0.6): self.var_speedTarget = 0.05 else: self.var_speedTarget = 0.6 @warp async def my_ProcessPointssincos(self, util, arg_s, arg_c, arg_s2, arg_c2, arg_from, arg_len, arg_mul): self.var_pos = (tonum(arg_from) * self.var_p) self.var_xcnt = util.sprites.stage.var_Zoom for _ in range(toint(arg_len)): self.var_incx = self.list_points[toint((self.var_pos + 1))] self.var_incy = self.list_points[toint((self.var_pos + 3))] self.var_pOrd = self.list_points[toint((self.var_pos + 2))] if (gt(arg_from, 31) and gt(util.timer(), 42.2)): self.var_incx = (((tonum(self.var_incx) + self.var_svx) % 600) - 300) self.var_incy = (((tonum(self.var_incy) + self.var_svy) % 600) - 300) self.var_pOrd = (((tonum(self.var_pOrd) + self.var_svz) % 600) - 300) self.var_xcnt = div(util.sprites.stage.var_Zoom, (self.var_distance - tonum(self.var_pOrd))) self.list_points[toint((self.var_pos + 4))] = ((tonum(self.var_incx) * tonum(arg_mul)) * self.var_xcnt) self.list_points[toint((self.var_pos + 5))] = ((tonum(self.var_incy) * tonum(arg_mul)) * self.var_xcnt) self.list_points[toint((self.var_pos + 6))] = self.var_xcnt self.var_xmin = ((arg_c * tonum(self.var_incx)) - (arg_s * tonum(self.var_pOrd))) self.var_xcnt = ((arg_c * tonum(self.var_pOrd)) + (arg_s * tonum(self.var_incx))) self.list_points[toint((self.var_pos + 1))] = ((arg_c2 * self.var_xmin) - (arg_s2 * tonum(self.var_incy))) self.list_points[toint((self.var_pos + 2))] = self.var_xcnt self.list_points[toint((self.var_pos + 3))] = ((arg_c2 * tonum(self.var_incy)) + (arg_s2 * self.var_xmin)) self.var_pos += self.var_p @warp async def my_filltriangleresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_res): await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4)) self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.down() self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() async def my_filltriinner1(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_lena, arg_lenb, arg_lenc, arg_res14): self.var_peri = ((arg_lena + arg_lenb) + arg_lenc) self.var_ind = (sqrt(div(((((arg_lenb + arg_lenc) - arg_lena) * ((arg_lenc + arg_lena) - arg_lenb)) * ((arg_lena + arg_lenb) - arg_lenc)), self.var_peri)) + div(arg_res14, 1.5)) if gt(self.var_ind, arg_res14): self.var_incx = div((((arg_lena * tonum(arg_Ax)) + (arg_lenb * tonum(arg_Bx))) + (arg_lenc * tonum(arg_Cx))), self.var_peri) self.var_incy = div((((arg_lena * tonum(arg_Ay)) + (arg_lenb * tonum(arg_By))) + (arg_lenc * tonum(arg_Cy))), self.var_peri) if (lt(arg_lena, arg_lenb) and lt(arg_lena, arg_lenc)): await self.my_filltriinner2(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Ax)) * (tonum(self.var_incx) - tonum(arg_Ax))) + ((tonum(self.var_incy) - tonum(arg_Ay)) * (tonum(self.var_incy) - tonum(arg_Ay))))) * 4))), arg_res14) else: if (gt(arg_lenb, arg_lena) or gt(arg_lenb, arg_lenc)): await self.my_filltriinner2(util, arg_Cx, arg_Cy, arg_Bx, arg_By, arg_Ax, arg_Ay, (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Cx)) * (tonum(self.var_incx) - tonum(arg_Cx))) + ((tonum(self.var_incy) - tonum(arg_Cy)) * (tonum(self.var_incy) - tonum(arg_Cy))))) * 4))), arg_res14) else: await self.my_filltriinner2(util, arg_Bx, arg_By, arg_Ax, arg_Ay, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Bx)) * (tonum(self.var_incx) - tonum(arg_Bx))) + ((tonum(self.var_incy) - tonum(arg_By)) * (tonum(self.var_incy) - tonum(arg_By))))) * 4))), arg_res14) async def my_filltriinner2(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Aox, arg_Aoy, arg_Box, arg_Boy, arg_Cox, arg_Coy, arg_ind, arg_rate, arg_res14): self.gotoxy(toint(self.var_incx), toint(self.var_incy)) self.pen.set_size(arg_ind) self.pen.down() self.pen.up() self.var_td = (arg_rate + 1) while not lt((arg_ind * self.var_td), arg_res14): self.pen.set_size((arg_ind * self.var_td)) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.down() self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By))) self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy))) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.up() self.var_td += (self.var_td * arg_rate) await self.yield_() self.pen.set_size((arg_ind * self.var_td)) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.down() self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By))) self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy))) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.up() @warp async def my_fillquadresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res): await self.my_rasterquadfillresolution(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res) self.pen.set_size(1) self.pen.exact_color("#000000") self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Dx), tonum(arg_Dy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() @warp async def my_fillquadtrires(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res): await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4)) await self.my_filltriinner1(util, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_Ax, arg_Ay, sqrt((((tonum(arg_Dx) - tonum(arg_Ax)) * (tonum(arg_Dx) - tonum(arg_Ax))) + ((tonum(arg_Dy) - tonum(arg_Ay)) * (tonum(arg_Dy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Ax)) * (tonum(arg_Cx) - tonum(arg_Ax))) + ((tonum(arg_Cy) - tonum(arg_Ay)) * (tonum(arg_Cy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Dx)) * (tonum(arg_Cx) - tonum(arg_Dx))) + ((tonum(arg_Cy) - tonum(arg_Dy)) * (tonum(arg_Cy) - tonum(arg_Dy))))), (tonum(arg_res) * 1.4)) self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.pen.down() self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.exact_color("#000000") self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Dx), tonum(arg_Dy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() @on_broadcast('start music') async def broadcast_startmusic(self, util): await self.sounds.play("Julius_-_3d_Demo_Tune.mp3") pass # hide variable pass # hide variable while not gt(util.timer(), 202): await self.yield_() pass # hide variable pass # hide variable util.stop_all() return None @on_broadcast('green flag') async def broadcast_greenflag(self, util): self.var_lastrendertime = 0 pass # hide variable pass # hide variable await self.sounds.play("silence") util.sprites.stage.var_Zoom = 100 util.sprites.stage.var_Resolution = 3 self.var_Stars = 300 self.var_GUI = 0 self.var_ZoomSx = 0 self.var_beat = 1 self.var_beatSize = 1 self.var_beatTimer = self.list_beat[1] self.shown = False await self.my_Create(util, ) await self.my_CreateStars(util, ) self.var_distance = 50 self.var_speed = 25 self.var_speedTarget = 0.3 self.var_acc = 0 util.send_broadcast("start music") util.timer.reset() while True: if lt(util.timer(), 4): util.sprites.stage.var_Zoom = 100 else: if lt(util.timer(), 10): self.var_ZoomSx += ((300 - util.sprites.stage.var_Zoom) * 0.1) self.var_ZoomSx = (self.var_ZoomSx * 0.8) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: if lt(util.timer(), 55): if gt(util.timer(), 43): self.var_ZoomSx += ((120 - util.sprites.stage.var_Zoom) * 0.015) self.var_ZoomSx = (self.var_ZoomSx * 0.5) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: if lt(util.timer(), 73): if gt(util.timer(), 65): self.var_ZoomSx += ((280 - util.sprites.stage.var_Zoom) * 0.1) self.var_ZoomSx = (self.var_ZoomSx * 0.8) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: util.sprites.stage.var_Zoom = (200 + (80 * math.cos(math.radians(((util.timer() - 73) * 20))))) if eq(self.var_GUI, lt(util.inputs.mouse_y, 100)): self.var_GUI = (1 - self.var_GUI) if eq(self.var_GUI, 1): print(util.sprites.stage.var_Resolution) print(util.sprites.stage.var_Zoom) else: pass # hide variable pass # hide variable self.var_pos += 1 self.var_distance = div(((self.var_distance * 6) + 4.5), 7) self.var_speed = div(((self.var_speed * 20) + self.var_speedTarget), 21) await self.my_pause(util, ) self.var_a1 = (self.var_speed * -1.3) self.var_a2 = ((self.var_speed * -2.5) * math.sin(math.radians((util.timer() * 20)))) if lt(util.timer(), 12): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 0, 8, 1) else: if lt(util.timer(), 27): await self.my_ProcessPoints(util, (12 * math.cos(math.radians((util.timer() * 9)))), 20, 0, 8, 1) else: await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), 6, 0, 8, 1) await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 8, 16, 1) if gt(util.timer(), self.var_beatTimer): self.var_beatSize = 1.5 self.var_beat += 1 if gt(self.var_beat, len(self.list_beat)): self.var_beatTimer = 99999 else: self.var_beatTimer = (tonum(self.list_beat[self.var_beat]) - 0.2) if eq(self.var_beatTimer, 99999): if lt(self.var_beatSize, 2): self.var_beatSize += 0.05 await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize) else: await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), (5 * math.sin(math.radians(((util.timer() - 45) * 5)))), 24, 8, 2) else: self.var_beatSize = div(((self.var_beatSize * 5) + 1), 6) await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize) if gt(util.timer(), 42.2): if lt(self.var_acc, 13): self.var_acc += 0 self.var_svx = (((tonum(self.list_points[toint(((10 * self.var_p) + 1))]) + tonum(self.list_points[toint(((12 * self.var_p) + 1))])) * self.var_acc) + 300) self.var_svy = (((tonum(self.list_points[toint(((10 * self.var_p) + 3))]) + tonum(self.list_points[toint(((12 * self.var_p) + 3))])) * self.var_acc) + 300) self.var_svz = (((tonum(self.list_points[toint(((10 * self.var_p) + 2))]) + tonum(self.list_points[toint(((12 * self.var_p) + 2))])) * self.var_acc) + 300) if (lt(util.timer(), 12) or gt(util.timer(), 28)): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 1) else: if lt(util.timer(), 16): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((16.01 - util.timer()), 4)) else: if lt(util.timer(), 27): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 0.01) else: await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((util.timer() - 27.01), 1)) if lt(self.var_speedTarget, 0.6): self.var_speedTarget = 0.6 await self.my_ProcessPoints(util, self.var_a1, self.var_a2, (32 + div(self.var_Stars, 2)), div(self.var_Stars, 2), 1) await self.my_orderpolys(util, ) self.var_incx = toint((util.sprites.stage.var_Resolution * div(util.sprites.stage.var_Zoom, 300))) if lt(self.var_incx, 1): self.var_incx = 1 await self.my_renderatresolution(util, self.var_incx) await util.sprites["fade to black"].broadcast_tick(util) await self.yield_() @sprite('fade to black') class Spritefadetoblack(Target): """Sprite fade to black""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 0 self._ypos = 0 self._direction = 90 self.shown = False self.pen = Pen(self) self.costume = Costumes( 2, 100, "don't rotate", [ { 'name': "black", 'path': "f5e250886e3bafbbd9bc2398a5e321c5.png", 'center': (480, 360), 'scale': 2 }, { 'name': "white", 'path': "b61b1077b0ea1931abee9dbbfa7903ff.png", 'center': (480, 360), 'scale': 2 }, { 'name': "credits", 'path': "78dfd0b4f1aa8bde356a6b71a1d6de30-svg-2x.png", 'center': (480, 360), 'scale': 2 } ]) self.sounds = Sounds( 100, [ { 'name': "pop", 'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav" } ]) self.var_tick = 100 self.var_mode = 2 self.sprite.layer = 2 @on_broadcast('tick') async def broadcast_tick(self, util): if eq(self.var_mode, 0): if lt(self.var_tick, 100): self.var_tick += 3 if lt(self.var_tick, 100): self.costume.set_effect('ghost', self.var_tick) else: self.shown = False self.costume.switch("white") self.var_mode = 1 self.var_tick = 0 else: if eq(self.var_mode, 1): if gt(util.timer(), 27): self.shown = True self.var_tick += 15 if lt(self.var_tick, 100): self.costume.set_effect('ghost', self.var_tick) else: self.shown = False self.costume.switch("credits") self.var_mode = 2 self.var_tick = 100 else: if gt(util.timer(), 194): self.shown = True self.var_tick += -1 if gt(self.var_tick, 0): self.costume.set_effect('ghost', self.var_tick) else: self.var_mode = 3 @on_green_flag async def green_flag(self, util): self.gotoxy(0, 0) self.costume.switch("black") self.costume.clear_effects() self.shown = True self.var_tick = 0 self.var_mode = 0 util.send_broadcast("green flag") if __name__ == '__main__': engine.start_program()
- Gamer_Logan819
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
Wow!!!!
Now do python to scratch, lol
- -OofyRoblox-
-
500+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
- RED-001-alt
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
im 14 and all i know is scratch and i stalk the forums 24/7 thats all i spend my life on I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here

- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
There's a replit someone made in the issues of the GitHub which lets you use it online. I'm pretty sure it is not the latest version though, which run a little bit faster. It also doesn't have SVG support so some of the projects won't work right. I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
- kccuber
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
I think so, just no replit collab links. I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
- imfh
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
I see a lot of people on Scratch sharing and using replit as of recently, but I'm still not sure if it is allowed since about a year ago it seemed like the answer was a solid no. I'll just leave it alone for now.I think so, just no replit collab links. I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
- mumu245
-
1000+ posts
[v1.3-beta] sb3topy: Scratch to Python with Pygame
No. My project also runs everything live. It is not a transpiler. I will try it soon! This is cool!
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
- Discussion Forums
- » Advanced Topics
-
» [v1.3-beta] sb3topy: Scratch to Python with Pygame