<snapdata remixID="13580461"><project name="Mastermind Solver" app="Snap! 10, https://snap.berkeley.edu" version="2"><notes>Enter a secret code and press space to let the program take guesses. &#xD;&#xD;After each guess a hint is given, which tells you the number of correct digits and the number of misplaced ones.&#xD;&#xD;Works by generating a list of all possible solutions and after each guess eliminating those solutions who wouldn&apos;t give the same hint. This is not the best method, but by far the simplest one and manages to solve most codes in just a few guesses.</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Mastermind Solver"><notes>Enter a secret code and press space to let the program take guesses. &#xD;&#xD;After each guess a hint is given, which tells you the number of correct digits and the number of misplaced ones.&#xD;&#xD;Works by generating a list of all possible solutions and after each guess eliminating those solutions who wouldn&apos;t give the same hint. This is not the best method, but by far the simplest one and manages to solve most codes in just a few guesses.</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="redraw" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>left</l><l>top</l></list></block><block s="doSetVar"><l>left</l><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>20</l></list></block></block><block s="doSetVar"><l>top</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>20</l></block></block><block s="clear"></block><block s="setXPosition"><block var="left"/></block><block s="setYPosition"><block var="top"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>200</l></block><block s="write"><block s="reportJoinWords"><list><l>Secret code: </l></list></block><l>12</l></block><block s="doForEach"><l>number</l><block var="code"/><script><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportListItem"><block var="number"/><block var="colors"/></block></block><block s="write"><block var="number"/><l>12</l></block></script></block><block s="changeYPosition"><l>-20</l></block><block s="doDeclareVariables"><list><l>i</l></list></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doForEach"><l>guess</l><block var="guesses"/><script><block s="setXPosition"><block var="left"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>100</l></block><block s="write"><block s="reportJoinWords"><list><block var="i"/><l>: </l></list></block><l>12</l></block><block s="doForEach"><l>number</l><block s="reportListItem"><l>1</l><block var="guess"/></block><script><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportListItem"><block var="number"/><block var="colors"/></block></block><block s="write"><block var="number"/><l>12</l></block></script></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>200</l></block><block s="write"><block s="reportJoinWords"><list><l> </l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="guess"/></block></block><l>|</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="guess"/></block></block></list></block><l>12</l></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>100</l></block><block s="write"><block s="reportJoinWords"><list><l> </l><l>(</l><block s="reportListItem"><l>3</l><block var="guess"/></block><l> possible solutions)</l></list></block><l>12</l></block><block s="changeYPosition"><l>-20</l></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="setXPosition"><block var="left"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l>200</l></block><block s="doIfElse"><block s="reportNot"><block var="solved?"/></block><script><block s="write"><l>Press space to guess</l><l>12</l></block></script><script><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block></block><block s="write"><block s="reportJoinWords"><list><l>Solved! It took </l><block s="reportListAttribute"><l><option>length</option></l><block var="guesses"/></block><l> guesses</l></list></block><l>12</l></block></script></block></script></block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="is %&apos;code&apos; a valid code?" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="code"/></block><l>4</l></list></block><block s="reportVariadicAnd"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><block s="reportIsA"><l></l><l><option>number</option></l></block><block s="reportVariadicLessThanOrEquals"><list><l>1</l><l></l><l>6</l></list></block></list></block></autolambda><list></list></block><block var="code"/></block></block></list></block></block></script></block-definition><block-definition s="take a guess" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>guess</l><l>hint</l></list></block><block s="doSetVar"><l>guess</l><block s="reportListItem"><l><option>random</option></l><block var="possible solutions"/></block></block><block s="doSetVar"><l>hint</l><custom-block s="hint for code %l guess %l"><block var="code"/><block var="guess"/></custom-block></block><block s="doSetVar"><l>possible solutions</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="hint for code %l guess %l"><l/><block var="guess"/></custom-block><block var="hint"/></list></block></autolambda><list></list></block><block var="possible solutions"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="guess"/><block var="hint"/><block s="reportListAttribute"><l><option>length</option></l><block var="possible solutions"/></block></list></block><block var="guesses"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="guess"/><block var="code"/></list></block><script><block s="doSetVar"><l>solved?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block-definition><block-definition s="hint for code %&apos;code&apos; guess %&apos;guess&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>matching</l><l>correct</l></list></block><block s="doSetVar"><l>matching</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportVariadicSum"><block s="reportVariadicMin"><list><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>distribution</option></l><block s="reportConcatenatedLists"><list><block var="code"/><block s="reportNumbers"><l>1</l><l>6</l></block></list></block></block></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>distribution</option></l><block s="reportConcatenatedLists"><list><block var="guess"/><block s="reportNumbers"><l>1</l><l>6</l></block></list></block></block></block></list></block></block></block><l>6</l></block><comment w="184" collapsed="false">calculate the number of intersections</comment></block><block s="doSetVar"><l>correct</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l></list></block><l/></block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNewList"><list><block var="code"/><block var="guess"/></list></block></block></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="correct"/><block s="reportDifference"><block var="matching"/><block var="correct"/></block></list></block></block></script><scripts><script x="97" y="281.5"><block s="reportListItem"><block s="reportNumbers"><block var="index"/><l>4</l></block><l/></block></script></scripts></block-definition><block-definition s="remove spaces from %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></script></block-definition><block-definition s="ask for code" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>code</l></list></block><block s="doAsk"><l>enter code (4 numbers, 1-6), empty for random</l></block><block s="doSetVar"><l>code</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l></l></list></block><block s="reportRandom"><l>1</l><block s="reportReshape"><l>6</l><list><l>4</l></list></block></block><block s="reportTextSplit"><custom-block s="remove spaces from %s"><block s="getLastAnswer"></block></custom-block><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l></l></list></block><script><block s="doSetVar"><l>code</l><block s="reportRandom"><l>1</l><block s="reportReshape"><l>6</l><list><l>4</l></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a valid code?"><block var="code"/></custom-block></block><script><block s="doUntil"><custom-block s="is %s a valid code?"><block var="code"/></custom-block><script><block s="doAsk"><l>invalid code</l></block><block s="doSetVar"><l>code</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l></l></list></block><block s="reportRandom"><l>1</l><block s="reportReshape"><l>6</l><list><l>4</l></list></block></block><block s="reportTextSplit"><custom-block s="remove spaces from %s"><block s="getLastAnswer"></block></custom-block><l><option>letter</option></l></block></block></block></script></block></script><list></list></block><block s="doReport"><block var="code"/></block></script></block-definition><block-definition s="duration of %&apos;script&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>time</l></list></block><block s="doSetVar"><l>time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block var="script"/><list></list></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="time"/></block><l>1000</l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="21,21,21,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="flat" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="553"><pentrails>data:image/png;base64,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QAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERgABji0i2AMBCEAAAkkQQICTCDNOQgACEIBAbAQQ4Ngigj0QgAAEIJAEAQQ4iTDjJAQgAAEIxEYAAY4tItgDAQhAAAJJEECAkwgzTkIAAhCAQGwEEODYIoI9EIAABCCQBAEEOIkw4yQEIAABCMRGAAGOLSLYAwEIQAACSRBAgJMIM05CAAIQgEBsBBDg2CKCPRCAAAQgkAQBBDiJMOMkBCAAAQjERuCfAG2jiHZM/yDAAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="554"></list></costumes><sounds><list struct="atomic" id="555"></list></sounds><variables></variables><blocks></blocks><scripts><script x="65" y="33.166666666666686"><block s="receiveGo"></block><block s="setBackgroundColor"><color>21,21,21,1</color></block></script></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-55.00000000000005" y="39.99999999999687" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,255,0,1" pen="tip" id="563"><costumes><list struct="atomic" id="564"></list></costumes><sounds><list struct="atomic" id="565"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="clear"></block><block s="hide"></block><block s="doSetVar"><l>solved?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>100</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>255</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>100</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>100</l><l>255</l></list></block></list></block></block><block s="doSetVar"><l>guesses</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>possible solutions</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block s="reportNewList"><list><l>6</l><l>6</l><l>6</l><l>6</l></list></block></block></block></block><block s="doSetVar"><l>code</l><custom-block s="ask for code"></custom-block></block><custom-block s="redraw"></custom-block></script><script x="20" y="325.5"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="doIf"><block var="solved?"/><script><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block><custom-block s="take a guess"></custom-block><custom-block s="redraw"></custom-block></script></scripts></sprite><watcher var="guesses" style="normal" x="5.333333333332384" y="5.333333333333312" color="243,118,29" hidden="true"/><watcher var="hints" style="normal" x="5.333333333332384" y="16.533334399999998" color="243,118,29" hidden="true"/><watcher var="possible solutions" style="normal" x="5.333333333332384" y="27.733335466666606" color="243,118,29" hidden="true"/><watcher var="code" style="normal" x="6.530612244897937" y="6.5306122448979735" color="243,118,29" hidden="true"/><watcher var="colors" style="normal" x="5.653710247350138" y="5.653710247349808" color="243,118,29" hidden="true"/><watcher var="solved?" style="normal" x="7.8559738134211035" y="7.855973813420642" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="guesses"><list id="673"><item><list id="674"><item><list struct="atomic" id="675">3,5,3,3</list></item><item><list struct="atomic" id="676">1,1</list></item><item><l>156</l></item></list></item><item><list id="677"><item><list struct="atomic" id="678">3,3,6,2</list></item><item><list struct="atomic" id="679">0,2</list></item><item><l>38</l></item></list></item><item><list id="680"><item><list struct="atomic" id="681">6,6,5,3</list></item><item><list struct="atomic" id="682">3,0</list></item><item><l>5</l></item></list></item><item><list id="683"><item><list struct="atomic" id="684">1,6,5,3</list></item><item><list struct="atomic" id="685">2,1</list></item><item><l>1</l></item></list></item><item><list id="686"><item><list struct="atomic" id="687">6,4,5,3</list></item><item><list struct="atomic" id="688">4,0</list></item><item><l>1</l></item></list></item></list></variable><variable name="possible solutions"><list id="689"><item><ref id="687"></ref></item></list></variable><variable name="code"><list struct="atomic" id="690">6,4,5,3</list></variable><variable name="colors"><list id="691"><item><list struct="atomic" id="692">255,100,100</list></item><item><list struct="atomic" id="693">100,255,100</list></item><item><list struct="atomic" id="694">100,100,255</list></item><item><list struct="atomic" id="695">255,255,100</list></item><item><list struct="atomic" id="696">100,255,255</list></item><item><list struct="atomic" id="697">255,100,255</list></item></list></variable><variable name="solved?"><bool>true</bool></variable></variables></scene></scenes></project><media name="Mastermind Solver" app="Snap! 10, https://snap.berkeley.edu" version="2"></media></snapdata>