<snapdata remixID="9708716"><project name="2020 - U1L3-AngleExperiments2 (starter)" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAC4ElEQVR4nO3dvWoUUQBH8dXdjRt2owYMfoIKCmJIIaQQVogooi8giiiiSApRSSuBkFZSq70OqA8Q+9il3G73BfIGWy7XyoAoiPN17s2eXznVvzgwcGeYaQQJ1KAHaLoZoFAGKJQBCmWAQhmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGKJQBCmWAQhmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGWILDM216QrIMsEQ3VlboCckxwJI9ff4s7O7u0jOSYYAV6R47Sk9IggFWbHauR0+ImgHWYDAYhEdPHtMzomSANbp5+1aYTCb0jKgYIKB5ZIaeEA0DBJ08e4aegDNA2Kfsc9jY3KRnYAwwElcWF+kJCAOMTKPVpCfUygAjdXVpiZ5QCwOM2Nv19fDl21d6RqUMMAELp0/REypjgAk5iOeHBpiYgxahASbizr27YTwe0zNKZ4CRGw6H4f7DB/SMyhhgxDq9Lj2hcgYYobn54/SE2hhgRF6sroadHzv0jFoZYCSu9/v0BIQBwg61W/QElAFCzl04T0+IggHW7N3WVnj/8QM9IxoGWKOLly/RE6JjgDWYtnf8/ocBVuja8jI9IXoGWIHt79vhzdoaPSMJBliy+YUT9ISkGGBJ2rMdekKSDLCgl69fhb29PXpGsgxQKAMsoN/vh/6UPsMtiwEW0Ol1PeMryAALaLSaBliQAeY0Go32AxyNRvScZBlgTt1ebz/Abs+voOZlgDn9is/bcDEGmJMBlsMAc8iy7LfoGq1myLIMXJQuA8yh1f7zz0jNv1zTvxmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGKJQBCmWAQhmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGKJQBCmWAQhmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGKJQBCmWAQhmgUAYolAEKZYBCGaBQBiiUAQplgEIZoFAGKJQBCmWAQhmgUAYo1E//hEYwzL5yYgAAAABJRU5ErkJggg==</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0" y="0" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="0,4,3,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="16.666666666666657" y="10"><block s="down"><comment w="234.33333333333334" collapsed="true">It&apos;s best to put the pen down before drawing.</comment></block></script><script x="16.666666666666657" y="40.66666666666666"><block s="setHeading"><l>0</l><comment w="188.33333333333334" collapsed="true">You might (or might not) need this.</comment></block></script><script x="16.666666666666657" y="74.66666666666666"><block s="gotoXY"><l>0</l><l>0</l><comment w="188.33333333333334" collapsed="true">You might (or might not) need this.</comment></block></script><script x="16.666666666666657" y="108.6666666666666"><block s="clear"><comment w="80" collapsed="false">Script A.</comment></block><block s="doRepeat"><l>6</l><script><block s="forward"><l>100</l></block><block s="doWait"><l>.5</l></block><block s="forward"><l>-100</l></block><block s="doWait"><l>.5</l></block><block s="turn"><block s="reportQuotient"><l>360</l><l>3</l></block></block></script></block></script><script x="16.666666666666657" y="279.0000000000001"><block s="clear"></block><block s="doRepeat"><l>60</l><script><block s="setColor"><color>0,4,3,1</color></block><block s="setSize"><l>1</l></block><block s="forward"><l>100</l></block><block s="doWait"><l>1</l></block><block s="setColor"><color>255,254,250,1</color><comment w="280.83333333333337" collapsed="false">Why is this change in pen color and size useful here?</comment></block><block s="setSize"><l>3</l></block><block s="forward"><l>-100</l></block><block s="turn"><block s="reportQuotient"><l>360</l><l>60</l></block></block></script><comment w="358.8333333333333" collapsed="false">Script B.&#xD;The second hand on a clock must make 60 small turns to make a full rotation.</comment></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Table support&#xD;Table lines&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return SnapCloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([StageMorph.prototype.dimensions.x,&#xD;                                   StageMorph.prototype.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return ScriptsMorph.prototype.enableKeyboard;&#xD;    case &apos;Table support&apos;:&#xD;        return List.prototype.enableTables;&#xD;    case &apos;Table lines&apos;:&#xD;        return TableMorph.prototype.highContrast;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    default: return which;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Table support&#xD;Table lines&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;if (tf != !!tf) return;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        return;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        return;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        return;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        return;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        return;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        return;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        return;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        return;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) return;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        return;&#xD;    case &apos;Keyboard editing&apos;:&#xD;            ScriptsMorph.prototype.enableKeyboard = tf;&#xD;            if (ScriptsMorph.prototype.enableKeyboard) {&#xD;                ide.removeSetting(&apos;keyboard&apos;);&#xD;            } else {&#xD;                ide.saveSetting(&apos;keyboard&apos;, false);&#xD;            }&#xD;        return;&#xD;    case &apos;Table support&apos;:&#xD;            List.prototype.enableTables = tf;&#xD;            if (List.prototype.enableTables) {&#xD;                ide.removeSetting(&apos;tables&apos;);&#xD;            } else {&#xD;                ide.saveSetting(&apos;tables&apos;, false);&#xD;            }&#xD;        return;&#xD;    case &apos;Table lines&apos;:&#xD;                TableMorph.prototype.highContrast = tf;&#xD;                if (TableMorph.prototype.highContrast) {&#xD;                    ide.saveSetting(&apos;tableLines&apos;, true);&#xD;                } else {&#xD;                    ide.removeSetting(&apos;tableLines&apos;);&#xD;                }&#xD;        return;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        return;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        return;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        return;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        return;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        return;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        return;&#xD;}</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        return;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        return;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        return;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        return;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        return;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        return;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition></blocks><variables></variables></project><media name="2020 - U1L3-AngleExperiments2 (starter)" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>