<snapdata remixID="10349154"><project name="it2school-RL-Pong-Vorlage" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADiElEQVR4nO3dTUuUcRSGcTdFi0IRJDQJ0kxRU3zZmFFUVpRYEIqv4UbTjaJgGoKh4KZaKH4E821RpM1XUwZxcVopQhLOmYN3f7we+C1nOA9cyD0rC379/GGASoH6AFxuBAipgmtXrxigQoCQIsAA83OzNj83a3093fJbUkOAAY73zKePM/JbUkOAAQjQjwAhRYCQIkBIEWAANqAfAQYgQD8CDECAfgQIKQKEFAEGaG1pttaWZqutqZbfkhoCDMAG9CPAAAToR4ABystKrbys1G6WlMhvSQ0BQooAIUWAAdiAfgQYgAD9CDAAAfoRIKQIEFIECCkCDMAG9CPAAAToR4ABhocGbXho0F4+75DfkhoChBQBQooAA7AB/QgwAAH6EWAAAvQjQEgRIKQIEFIEGIAN6EeAAQjQjwADEKAfAUKKACFFgAHGR0dsfHTEul6/kt+SGgIMwAb0I8AABOhHgJAiQEgRIKQIMAAb0I8AAxCgHwEGIEA/AoQUAUKKAANUVVZYVWWF3S6/Jb8lNQQYgA3oR4ABCNCPAAPU19VafV2t3a24I78lNQQIKQKEFAEGYAP6EWAAAvQjwAAE6JdzgL/39iyTyVgmk7FvX7/IXwBpyznAo6MjO372dnflL4C0ESCkCDAAG9CPAAMQoB8BBpienLDpyQl79/aN/BaF2ppqG+jvO9HU2HDuzxIg8tbV2Wmnn/GxD+f+LAEibwQotrO9ZTvbWzYzPSW/RYEAxS77jxACFCNAAoQQAUKKAPPQ2txk2Wz25J0a6uvkN6WGAJ1q7lXZWc+Ljtz+7y8bkABdTv/lO/3s7+/n9D0ESIAu/3py+R4CJECXw8PDM+M7ODiQ35YSAnTqePb0zAAHB/rlt6WEAPPwsP3ByRbMZrM2NTmZ83f09nRbb0+3PXn8SP4+Chca4Pf1ddvc2LDNjQ37vLAgf/n/ARvwAgPE3wiQACFEgJAiQEgRoBgbkAClLnuA+SDAAAToR4CQIkBIEWCA4qJCKy4qtMIb1+W3pIYAA7AB/QgwAAH6EWCA9rY2a29rs8b79fJbUkOAkCJASBFgADagHwEGIEA/AgxAgH4ECCkChBQBQooAA7AB/QgwAAH6EWCA5aVFW15atPeDA/JbUkOAkCJASBFggLXVFVtbXbGx0RH5LakhwAD8CPEjwAAE6EeAkCJASBEgpAqO9wugQICQIkBI/QHYXehA5yXIRQAAAABJRU5ErkJggg==</thumbnail><stage name="Stage" width="480" height="360" costume="1" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list id="2"><item><costume name="Hintergrund" center-x="240" center-y="180" image="data:image/png;base64,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" id="3"/></item></list></costumes><sounds><list struct="atomic" id="4"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Ball" idx="3" x="-40.44466576529794" y="-61.601324229911654" heading="188" scale="0.7" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="9"><costumes><list id="10"><item><costume name="ball" center-x="15" center-y="15" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTE4OSA1ODQgMzAgMzAiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCI+PGVsbGlwc2Ugc3Ryb2tlPSJub25lIiBmaWxsPSJyZ2IoMjU1LDI1NSwyNTUpIiBwcm90b3R5cGU9IlZlY3RvckVsbGlwc2UiIGN4PSIxMjA0IiBjeT0iNTk5IiByeD0iMTUiIHJ5PSIxNSIvPjwvc3ZnPg==" id="11"/></item></list></costumes><sounds><list struct="atomic" id="12"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="19.999999999999982"><block s="receiveGo"></block><block s="doSetVar"><l>Punkte Links</l><l>0</l></block><block s="doSetVar"><l>Punkte Rechts</l><l>0</l></block><block s="setScale"><l>70</l></block><block s="doFaceTowards"><l>Spieler Links</l></block><block s="doForever"><script><block s="forward"><l>4</l></block><block s="bounceOffEdge"></block><block s="doIf"><block s="reportLessThan"><block s="xPosition"></block><l>-220</l></block><script><block s="doChangeVar"><l>Punkte Rechts</l><l>1</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doFaceTowards"><l>Spieler Links</l></block><block s="doTellTo"><l>Spieler Rechts</l><block s="reifyScript"><script><block s="setYPosition"><l>0</l></block></script><list></list></block><list></list></block><block s="doWait"><l>1</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="xPosition"></block><l>220</l></block><script><block s="doChangeVar"><l>Punkte Links</l><l>1</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><block s="reportRandom"><l>45</l><l>125</l></block></block><block s="doTellTo"><l>Spieler Links</l><block s="reifyScript"><script><block s="setYPosition"><l>0</l></block></script><list></list></block><list></list></block><block s="doWait"><l>1</l></block></script></block><block s="doIf"><block s="reportTouchingObject"><l>Spieler Links</l></block><script><block s="doFaceTowards"><l>Spieler Links</l></block><block s="turn"><l>180</l></block></script></block><block s="doIf"><block s="reportTouchingObject"><l>Spieler Rechts</l></block><script><block s="doFaceTowards"><l>Spieler Rechts</l></block><block s="turn"><l>180</l></block></script></block></script></block></script></scripts></sprite><sprite name="Spieler Rechts" idx="1" x="195.16483174809673" y="-80" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="0,252.45,237.303,1" pen="tip" id="116"><costumes><list id="117"><item><costume name="costume2" center-x="-2" center-y="51" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTE4NiA1MzIgMTEgNjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSI2MSI+PHJlY3Qgc3Ryb2tlPSJub25lIiBmaWxsPSJyZ2IoMjU1LDI1NSwyNTUpIiBwcm90b3R5cGU9IlZlY3RvclJlY3RhbmdsZSIgd2lkdGg9IjExIiBoZWlnaHQ9IjYxIiB4PSIxMTg2IiB5PSI1MzIiLz48L3N2Zz4=" id="118"/></item></list></costumes><sounds><list struct="atomic" id="119"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20.00000000000004"><block s="receiveGo"></block><block s="doSetVar"><l>Modell</l><l></l></block><block s="doDeclareVariables"><list><l>beste Aktion</l><l>Belohnung</l><l>Zustand</l></list></block><block s="doForever"><script></script></block></script><script x="118.33333333333333" y="281.11111111111103"><custom-block s="create model learning rate: %s discount factor: %s exploration rate: %s list of available actions: %l"><l>0.75</l><l>0.9</l><l>0.05</l><l/></custom-block></script><script x="118.33333333333333" y="343.44444444444434"><custom-block s="best action state: %s model: %s"><l></l><l></l></custom-block></script><script x="123.66666666666667" y="428.11111111111103"><custom-block s="update model %l old state: %s new state: %s reward: %s action performed: %s"><l/><l></l><l></l><l></l><l></l></custom-block></script></scripts></sprite><sprite name="Spieler Links" idx="2" x="-205.95077518832022" y="-63.914086238817845" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="137.70000000000002,24.78599999999999,0,1" pen="tip" id="149"><costumes><list id="150"><item><costume name="costume2" center-x="-2" center-y="51" image="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTE4NiA1MzIgMTEgNjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSI2MSI+PHJlY3Qgc3Ryb2tlPSJub25lIiBmaWxsPSJyZ2IoMjU1LDI1NSwyNTUpIiBwcm90b3R5cGU9IlZlY3RvclJlY3RhbmdsZSIgd2lkdGg9IjExIiBoZWlnaHQ9IjYxIiB4PSIxMTg2IiB5PSI1MzIiLz48L3N2Zz4=" id="151"/></item></list></costumes><sounds><list struct="atomic" id="152"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="19.999999999999982"><block s="receiveGo"></block><block s="doForever"><script><block s="doIf"><block s="reportLessThan"><block s="yPosition"></block><block s="reportAskFor"><l>Ball</l><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><list></list></block></block><script><block s="changeYPosition"><l>10</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="yPosition"></block><block s="reportAskFor"><l>Ball</l><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><list></list></block></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script></block></script></scripts></sprite><watcher scope="Stage" s="getTimer" style="normal" x="288.92441666666764" y="24.863231473" color="4,148,220" hidden="true"/><watcher var="Punkte Links" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="Punkte Rechts" style="normal" x="304.626666666667" y="13.279997999999978" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="doNothing" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vac&amp;#237;a?&#xD;fr:_ vide?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:f&amp;#252;r _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ &amp;#224; _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations>de:f&amp;#252;r jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="create model learning rate: %&apos;learningRate&apos; discount factor: %&apos;discountFactor&apos; exploration rate: %&apos;randomize&apos; list of available actions: %&apos;availableActions&apos;" type="reporter" category="sensing"><header></header><code></code><translations>de:erzeuge Modell mit Lernrate: _ Discountfaktor: _ Explorationsrate: _ Liste verfügbarer Aktionen: _&#xD;</translations><inputs><input type="%s">0.75</input><input type="%s">0.9</input><input type="%s">0.05</input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block var="learningRate"/><block var="discountFactor"/><block var="randomize"/><block var="availableActions"/></list></block></block></script></block-definition><block-definition s="best action state: %&apos;s&apos; model: %&apos;model&apos;" type="reporter" category="sensing"><header></header><code></code><translations>de:bestes Verhalten für Zustand: _ Modell: _&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>q</l></list></block><block s="doSetVar"><l>q</l><custom-block s="get q values for state: %s model: %l"><block var="s"/><block var="Modell"/></custom-block></block><block s="doIf"><block s="reportLessThan"><block s="reportRandom"><l>0.01</l><l>1</l></block><block s="reportListItem"><l>4</l><block var="Modell"/></block></block><script><block s="doDeclareVariables"><list><l>random</l></list></block><block s="doSetVar"><l>random</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block></block></block></block><block s="doReport"><block s="reportListItem"><block var="random"/><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block></block></block></script></block><block s="doDeclareVariables"><list><l>maxValue</l><l>chosenAction</l><l>actionsZero</l></list></block><block s="doSetVar"><l>maxValue</l><block s="reportListItem"><l>2</l><block var="q"/></block></block><block s="doSetVar"><l>chosenAction</l><l>2</l></block><block s="doSetVar"><l>actionsZero</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="q"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="q"/></block><l>0</l></block><script><block s="doAddToList"><block var="i"/><block var="actionsZero"/></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><block var="i"/><block var="q"/></block><block var="maxValue"/></block><script><block s="doSetVar"><l>maxValue</l><block s="reportListItem"><block var="i"/><block var="q"/></block></block><block s="doSetVar"><l>chosenAction</l><block var="i"/></block></script></block></script></custom-block><block s="doIf"><block s="reportEquals"><block var="maxValue"/><l>0</l></block><script><block s="doDeclareVariables"><list><l>random</l></list></block><block s="doSetVar"><l>random</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="actionsZero"/></block></block></block><block s="doSetVar"><l>chosenAction</l><block s="reportListItem"><block var="random"/><block var="actionsZero"/></block></block></script></block><block s="doReport"><block s="reportListItem"><block s="reportDifference"><block var="chosenAction"/><l>1</l></block><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block></block></block></script></block></script></block-definition><block-definition s="get q values for state: %&apos;s&apos; model: %&apos;model&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>q</l></list></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block s="reportListItem"><l>1</l><block var="Modell"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="s"/></block><script><block s="doReport"><block var="item"/></block></script></block></script></custom-block><block s="doSetVar"><l>q</l><block s="reportNewList"><list><block var="s"/></list></block></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block><script><block s="doAddToList"><l>0</l><block var="q"/></block></script></custom-block><block s="doAddToList"><block var="q"/><block s="reportListItem"><l>1</l><block var="Modell"/></block></block><block s="doReport"><block var="q"/></block></script></block-definition><block-definition s="max of list %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>max</l></list></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportGreaterThan"><block var="item"/><block var="max"/></block><script><block s="doSetVar"><l>max</l><block var="item"/></block></script></block></script></custom-block><block s="doReport"><block var="max"/></block></script></block-definition><block-definition s="get index of %&apos;element&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="list"/><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block var="item"/><block var="element"/></block><script><block s="doReport"><block var="index"/></block></script></block></script></custom-block><block s="doReport"><l>-1</l></block></script></block-definition><block-definition s="moveUp" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportLessThan"><block s="yPosition"></block><l>145</l></block><script><block s="changeYPosition"><l>10</l></block></script></block></script></block-definition><block-definition s="moveDown" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportGreaterThan"><block s="yPosition"></block><l>-145</l></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script></block-definition><block-definition s="update model %&apos;model&apos; old state: %&apos;stateOld&apos; new state: %&apos;stateNew&apos; reward: %&apos;reward&apos; action performed: %&apos;act&apos;" type="command" category="sensing"><header></header><code></code><translations>de:Aktualisiere Modell: _ alter Zustand: _ neuer Zustand: _ Belohnung: _ gezeigtes Verhalten: _&#xD;</translations><inputs><input type="%l"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>q0</l><l>q1</l><l>newValue</l></list></block><block s="doSetVar"><l>q0</l><custom-block s="get q values for state: %s model: %l"><block var="stateOld"/><block var="Modell"/></custom-block></block><block s="doSetVar"><l>q1</l><custom-block s="get q values for state: %s model: %l"><block var="stateNew"/><block var="Modell"/></custom-block></block><block s="doSetVar"><l>newValue</l><block s="reportSum"><block var="reward"/><block s="reportProduct"><block s="reportListItem"><l>3</l><block var="Modell"/></block><custom-block s="max of list %l"><block s="reportCDR"><block var="q1"/></block></custom-block></block></block></block><block s="doReplaceInList"><block s="reportSum"><l>1</l><custom-block s="get index of %s in %l"><block var="act"/><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block></custom-block></block><block var="q0"/><block s="reportSum"><block s="reportProduct"><block s="reportListItem"><block s="reportSum"><l>1</l><custom-block s="get index of %s in %l"><block var="act"/><block s="reportListItem"><l><option>last</option></l><block var="Modell"/></block></custom-block></block><block var="q0"/></block><block s="reportDifference"><l>1</l><block s="reportListItem"><l>2</l><block var="Modell"/></block></block></block><block s="reportProduct"><block s="reportListItem"><l>2</l><block var="Modell"/></block><block var="newValue"/></block></block></block></script></block></script><scripts><script x="587.398435230778" y="148.41247402398096"><block var="model"/></script><script x="401.78692443941117" y="445.6570783405279"><block var="model"/></script></scripts></block-definition></blocks><variables><variable name="Punkte Links"><l>2</l></variable><variable name="Punkte Rechts"><l>0</l></variable><variable name="Modell"><list id="699"><item><list id="700"><item><list struct="atomic" id="701">2,0,0,0</list></item><item><list struct="atomic" id="702">3,0,0,0</list></item><item><list struct="atomic" id="703">1,0,6.304660690933601e-12,0</list></item><item><list struct="atomic" id="704">4,0,0,0</list></item><item><list struct="atomic" id="705">5,0,0,0</list></item><item><list struct="atomic" id="706">6,0,0,0</list></item><item><list struct="atomic" id="707">0,0,1.737552304377222e-12,0</list></item><item><list struct="atomic" id="708">-1,0,1.4948603157667283e-11,7.341723994918742e-13</list></item><item><list struct="atomic" id="709">-2,1.3227051294263457e-11,2.1984481928735786e-11,3.0309612984933157e-11</list></item><item><list struct="atomic" id="710">-3,2.5109056124218044e-11,4.8258415788866375e-11,4.3484977687022715e-11</list></item><item><list struct="atomic" id="711">-4,4.6593220864454665e-11,0.0011330028480489405,7.320254662297443e-11</list></item><item><list struct="atomic" id="712">-5,1.3501100609205647e-10,0.00216682337559686,0.002114194236411348</list></item><item><list struct="atomic" id="713">-6,0.0032786123390249927,4.467873916813722e-11,1.0873329054163727e-10</list></item><item><list struct="atomic" id="714">-7,0.004687891864382293,5.400466748222005e-11,5.048160008436609e-11</list></item><item><list struct="atomic" id="715">-8,3.3635841044378954e-11,1.4197779610345024e-11,2.3195853220546493e-11</list></item><item><list struct="atomic" id="716">-9,1.7629892327498987e-11,0,0</list></item><item><list struct="atomic" id="717">-10,1.0553057235958156e-11,0,0</list></item><item><list struct="atomic" id="718">-11,0,0,0</list></item><item><list struct="atomic" id="719">7,0,0,0</list></item><item><list struct="atomic" id="720">8,0,0,0</list></item><item><list struct="atomic" id="721">9,0,0,-365.0090478743522</list></item><item><list struct="atomic" id="722">10,0,0,0</list></item><item><list struct="atomic" id="723">11,0,0,0</list></item><item><list struct="atomic" id="724">12,0,0,0</list></item><item><list struct="atomic" id="725">13,0,0,0</list></item><item><list struct="atomic" id="726">14,0,0,0</list></item><item><list struct="atomic" id="727">15,0,0,0</list></item><item><list struct="atomic" id="728">16,0,0,0</list></item><item><list struct="atomic" id="729">17,0,0,0</list></item><item><list struct="atomic" id="730">18,0,0,0</list></item><item><list struct="atomic" id="731">19,0,0,0</list></item><item><list struct="atomic" id="732">20,0,0,0</list></item><item><list struct="atomic" id="733">21,0,0,0</list></item><item><list struct="atomic" id="734">22,0,0,0</list></item><item><list struct="atomic" id="735">23,0,0,0</list></item><item><list struct="atomic" id="736">24,0,0,0</list></item><item><list struct="atomic" id="737">25,0,0,0</list></item><item><list struct="atomic" id="738">26,0,0,0</list></item><item><list struct="atomic" id="739">27,0,0,0</list></item><item><list struct="atomic" id="740">28,0,0,0</list></item><item><list struct="atomic" id="741">29,0,0,0</list></item><item><list struct="atomic" id="742">30,0,0,0</list></item><item><list struct="atomic" id="743">31,0,0,0</list></item><item><list struct="atomic" id="744">-12,0,0,0</list></item><item><list struct="atomic" id="745">-13,0,0,0</list></item><item><list struct="atomic" id="746">-14,0,0,0</list></item><item><list struct="atomic" id="747">-15,0,0,0</list></item><item><list struct="atomic" id="748">-16,0,0,0</list></item><item><list struct="atomic" id="749">-17,0,0,0</list></item><item><list struct="atomic" id="750">-18,0,0,0</list></item><item><list struct="atomic" id="751">-19,0,0,0</list></item><item><list struct="atomic" id="752">-20,0,0,0</list></item><item><list struct="atomic" id="753">-21,0,0,0</list></item><item><list struct="atomic" id="754">-22,0,0,0</list></item><item><list struct="atomic" id="755">-23,0,0,0</list></item><item><list struct="atomic" id="756">-24,0,0,0</list></item><item><list struct="atomic" id="757">-25,0,0,0</list></item><item><list struct="atomic" id="758">-26,0,0,0</list></item><item><list struct="atomic" id="759">-27,0,0,0</list></item><item><list struct="atomic" id="760">-28,0,0,0</list></item><item><list struct="atomic" id="761">-29,0,0,0</list></item><item><list struct="atomic" id="762">-30,0,0,0</list></item><item><list struct="atomic" id="763">-31,0,0,0</list></item></list></item><item><l>0.75</l></item><item><l>0.5</l></item><item><l>0.05</l></item><item><list id="764"><item><context id="765"><inputs></inputs><variables></variables><script><custom-block s="moveUp"></custom-block></script><receiver><ref id="116"></ref></receiver><origin><ref id="116"></ref></origin><context id="769"><inputs></inputs><variables><variable name="best move"><context id="771"><inputs></inputs><variables></variables><script><custom-block s="moveDown"></custom-block></script><receiver><ref id="116"></ref></receiver><origin><ref id="116"></ref></origin></context></variable><variable name="reward"><l>0</l></variable><variable name="oldState"><l>-1</l></variable></variables><receiver><ref id="116"></ref></receiver><origin><ref id="116"></ref></origin></context></context></item><item><ref id="771"></ref></item><item><context id="775"><inputs></inputs><variables></variables><script><custom-block s="doNothing"></custom-block></script><receiver><ref id="116"></ref></receiver><origin><ref id="116"></ref></origin></context></item></list></item></list></variable></variables></project><media name="it2school-RL-Pong-Vorlage" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>