kopia lustrzana https://github.com/backface/turtlestitch
1 wiersz
18 KiB
XML
1 wiersz
18 KiB
XML
<project name="JSFunctions" app="Snap! 4.0, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" tempo="60" threadsafe="false" lines="round" codify="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAHUpJREFUeAHt3QuQXXV9B/ANhIAQCCFCAuERFGx9BOwICNKGBLJMgPDMQH20NTNSdazaotaxWkt0WpzqaMVWnUlnKoK1WiRACJCSQCJPNToUfFRLEYQYSBRT8uKRV7//m3vWzebu7t2bLdm9+zkzN+fcc/7/c/7nszC/+/uf/zmno8NEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENjDAnvv4eM7/AgQuPTSSycdf/zxs/bbb79Rq1ev/tUIOGWnSIAAgX4FRvVbQgECuylw0UUXfTO7uKy+m6e2b9++dNSoUUv22Wefxddff72AvJu+qhMgMDwF9hqezdbq4SSwadOmn6S92+ptPjzB94+zfO3mzZufmj179tXD6Vy0lQABAoMlIAMeLEn76VPg4osv/v1kvvf0LLRt27bvL1y48OSyfsaMGZeNGzduTtb95+jRo5ftvffeK5Ihb+1Zx3cCBAi0g8DodjgJ5zD0BbZu3Tplr726Olw+kSz4P9auXXv0QQcd9IOq9Vn+6yxPTbnLEoQ78nn2wgsvXJbAfce+++57TYLxc1VZcwIECAx3AQF4uP8Fh0n7k812JpDWWpsAe+uCBQtW5MsD3Zuf9R9N0L0qwXlqff24LF9UPumunpF11XXk7tUsEyBAYFgKdKUkw7L1Gj1sBJIBzyyNTSBde8IJJ3Rlvd1P4MYbb1x08803n5BA/d5qfcpvKcsvvPDCY9U6cwIECLSDgAy4Hf6KQ/wc0o38mmSxR5Rm5truXfPmzasGZDVsebLg30vGXG07I4O4Hsq14eerFeYECBBoBwEBuB3+ikP8HJL9dibw1lqZ4Lqkv+YmA+4sZZL9rtu4ceP3li9fXsuC+6tnOwECBIaTgAA8nP5aw7StCb4zq6aX0c3VcqP5nDlzjk/APrpsy33CywTfRkrWESDQ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QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBFgf8D0VWcikIKmX8AAAAASUVORK5CYII=</pentrails><costumes><list id="2"></list></costumes><sounds><list id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="34.00441814031274" y="-3.328227907064843" heading="105" scale="1" rotation="1" draggable="true" costume="0" color="80,80,80" pen="tip" id="8"><costumes><list id="9"></list></costumes><sounds><list id="10"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return +a + +b</l></block><list><l>3</l><l>4</l></list></block></script><script x="20" y="70.99999999999999"><block s="doDeclareVariables"><list><l>mult</l></list></block><block s="doSetVar"><l>mult</l><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return +a * +b</l></block></block><block s="doSayFor"><block s="evaluate"><block var="mult"/><list><l>5</l><l>2</l></list></block><l>2</l></block></script><script x="20" y="166"><block s="doRun"><block s="reportJSFunction"><list><l>degrees</l></list><l>this.turn(+degrees)</l></block><list><l>15</l></list></block></script><script x="20" y="223"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l><l>start</l><l>end</l></list><l>return new List(list.asArray().slice(+start - 1, +end))</l></block><list><block s="reportNewList"><list><l>foo</l><l>bar</l><l>baz</l><l>qux</l><l>frob</l><l>spam</l><l>garply</l></list></block><l>3</l><l>5</l></list></block></script><script x="20" y="292"><custom-block s="copy %l from %n to %n"><block s="reportNewList"><list><l>foo</l><l>bar</l><l>baz</l><l>qux</l><l>frob</l><l>spam</l><l>garply</l></list></block><l>3</l><l>5</l></custom-block></script><script x="20" y="328.99999999999994"><block s="clear"></block></script><script x="20" y="365"><block s="doRun"><block s="reportJSFunction"><list><l>size</l><l>level</l></list><l>var myself = this;

function sierp (length, depth) {
 if (depth) {
 for (var i = 0; i < 3; i +=1) {
 sierp(length / 2, depth - 1);
 myself.forward(length)
 myself.turn(120);
 }
 } 
}

this.clear();
this.up();
this.gotoXY(0, 0);
this.down();
for (var i = 0; i < 12; i += 1) {
 sierp(+size, +level);
 this.turn(30);
}
this.up();</l></block><list><l>200</l><l>5</l></list></block></script><script x="20" y="684"><custom-block s="label %txt of size %n"><l>Hello!</l><l>36</l></custom-block></script><script x="20" y="722.9999999999999"><custom-block s="JS map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l>hello </l><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>foo</l><l>bar</l><l>baz</l></list></block></custom-block></script><script x="20" y="766.0000000000001"><custom-block s="speak %s"><l>Hello, World!</l></custom-block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="copy %'list' from %'start' to %'end'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l><l>start</l><l>end</l></list><l>return new List(list.asArray().slice(+start - 1, +end))</l></block><list><block var="list"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="label %'text' of size %'size'" type="command" category="pen"><header></header><code></code><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),
 context = stage.penTrails().getContext('2d'),
 rotation = radians(this.direction() - 90),
 trans = new Point(
 this.center().x - stage.left(),
 this.center().y - stage.top()
 ),
 isWarped = this.Warped,
 len,
 pos;

if (isWarped) {endWarp(); }
context.save();
context.font = size + 'px monospace';
context.textAlign = 'left';
context.textBaseline = 'alphabetic';
context.fillStyle = this.color.toString();
len = context.measureText(text).width;
trans = trans.multiplyBy(1 / stage.scale);
context.translate(trans.x, trans.y);
context.rotate(rotation);
context.fillText(text, 0, 0);
context.translate(-trans.x, -trans.y);
context.restore();
pos = new Point(
 len * Math.sin(radians(this.direction())),
 len * Math.cos(radians(this.direction())));
pos = pos.add(new Point(this.xPosition(), this.yPosition()));
this.gotoXY(pos.x, pos.y, false);
this.changed();
if (isWarped) {this.startWarp(); }
stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="JS map %'reporter' over %'list'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>reporter</l><l>list</l><l>process</l></list><l>// process.context.inputs:
// [0] - reporter
// [1] - list (original source)
// ---------------------------------
// [2..n] - result values (target)

if (process.context.inputs.length - 2 === list.length()) {
 process.returnValueToParentContext(
 new List(process.context.inputs.slice(2))
 );
 return;
}
var next = list.at(process.context.inputs.length - 1);
process.pushContext();
process.evaluate(reporter, new List([next]));</l></block><list><block var="reporter"/><block var="list"/></list></block></block></script></block-definition><block-definition s="speak %'text'" type="command" category="sound"><header></header><code></code><inputs><input type="%s">Hello, World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>window.speechSynthesis.speak(new SpeechSynthesisUtterance(msg))</l></block><list><block var="text"/></list></block></script></block-definition></blocks><variables></variables></project> |