Interactive Tower of Hanoi Demonstration
2012-05-31 13:27
This GeoGebra applet dynamically demonstrates the classic Tower of Hanoi mathematical puzzle. Users can interact with the interface or watch an automated solution to move discs from one peg to another, adhering to the rule that a larger disc cannot be placed on a smaller one. Utilizing the Sequence command to generate discs and pegs, the applet tracks the current steps and the optimal number of mo
In collections
Math Games with GeoGebra
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.0" id="f1f19fe7-b798-4974-baf1-4612bb82b658" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="768" height="654" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.32421875" orientation="1" />
</panes>
<views>
<view id="4" toolbar="0 || 2020 , 2021 , 2022 , 66 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="false" location="1,1" size="431" window="100,100,600,400" />
<view id="16" visible="false" inframe="false" stylebar="true" location="1,1" size="474" window="50,50,500,500" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="752" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="true" location="3" size="249" window="100,100,250,400" />
<view id="32" visible="false" inframe="true" stylebar="true" location="1" size="150" window="613,80,500,500" />
<view id="64" visible="false" inframe="true" stylebar="false" location="1" size="150" window="51,51,500,500" />
</views>
<toolbar show="true" items="0 39 59 || 1 501 67 , 5 19 , 72 | 2 15 45 , 18 65 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 || 16 51 64 , 70 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 || 36 46 , 38 49 50 , 71 | 30 29 54 32 31 33 | 17 26 62 73 , 14 66 68 | 25 52 60 61 || 40 41 42 , 27 28 35 , 6 | , " />
<input show="true" cmd="true" top="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="14"/>
<graphicsSettings javaLatexFonts="false"/>
<consProtColumns col0="true" col1="true" col2="false" col3="true" col4="false" col5="true" col6="true" col7="false"/>
<consProtocol useColors="true" addIcons="false" showOnlyBreakpoints="false"/>
</gui>
<euclidianView>
<size width="752" height="483"/>
<coordSystem xZero="22.100000000000136" yZero="456.899999999999" scale="50.00000000000003" yscale="49.99999999999995"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="1" rightAngleStyle="1" checkboxSize="13" gridType="0"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="1" grid="10"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0"/>
<coordStyle val="0"/>
<angleFromInvTrig val="false"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<expression label ="seqC" exp="{}"/>
<element type="list" label="seqC">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="seqB" exp="{}"/>
<element type="list" label="seqB">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="seqA" exp="{1, 2, 3, 4, 5}"/>
<element type="list" label="seqA">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="23" y="15"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="seqA=CopyFreeObject[Sequence[num]] seqB={} seqC={} tmpA={} tmpB={} tmpC={} tmp={} steps=0"/>
<caption val="Reset"/>
</element>
<element type="numeric" label="num">
<value val="5.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="12" y="6"/>
<labelMode val="2"/>
<tooltipMode val="3"/>
<slider min="2" max="13" width="3.5" x="1.8779999999999963" y="8.41799999999999" fixed="true" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<ggbscript onUpdate="seqA=CopyFreeObject[Sequence[num]] seqB={} seqC={} tmpA={} tmpB={} tmpC={} tmp={} steps=0"/>
<caption val="層數"/>
</element>
<command name="Sequence">
<input a0="Polygon[(2 - 2 * Element[seqA, i] / num, 4 * (Length[seqA] - i) / num), (2 + 2 * Element[seqA, i] / num, 4 * (Length[seqA] - i) / num), (2 + 2 * Element[seqA, i] / num, 4 * (Length[seqA] - i + 1) / num), (2 - 2 * Element[seqA, i] / num, 4 * (Length[seqA] - i + 1) / num)]" a1="i" a2="1" a3="Length[seqA]"/>
<output a0="discA"/>
</command>
<element type="list" label="discA">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Polygon[(12 - 2 * Element[seqC, i] / num, 4 * (Length[seqC] - i) / num), (12 + 2 * Element[seqC, i] / num, 4 * (Length[seqC] - i) / num), (12 + 2 * Element[seqC, i] / num, 4 * (Length[seqC] - i + 1) / num), (12 - 2 * Element[seqC, i] / num, 4 * (Length[seqC] - i + 1) / num)]" a1="i" a2="1" a3="Length[seqC]"/>
<output a0="discC"/>
</command>
<element type="list" label="discC">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Polygon[(7 - 2 * Element[seqB, i] / num, 4 * (Length[seqB] - i) / num), (7 + 2 * Element[seqB, i] / num, 4 * (Length[seqB] - i) / num), (7 + 2 * Element[seqB, i] / num, 4 * (Length[seqB] - i + 1) / num), (7 - 2 * Element[seqB, i] / num, 4 * (Length[seqB] - i + 1) / num)]" a1="i" a2="1" a3="Length[seqB]"/>
<output a0="discB"/>
</command>
<element type="list" label="discB">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="tmpA" exp="{}"/>
<element type="list" label="tmpA">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="tmpB" exp="{}"/>
<element type="list" label="tmpB">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="tmpC" exp="{}"/>
<element type="list" label="tmpC">
<show object="false" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label ="tmp" exp="{}"/>
<element type="list" label="tmp">
<objColor r="0" g="100" b="0" alpha="0.1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Polygon[(2 - 2 * Element[tmpA, i] / num, 5), (2 + 2 * Element[tmpA, i] / num, 5), (2 + 2 * Element[tmpA, i] / num, 5 + 4 / num), (2 - 2 * Element[tmpA, i] / num, 5 + 4 / num)]" a1="i" a2="1" a3="Length[tmpA]"/>
<output a0="discTA"/>
</command>
<element type="list" label="discTA">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Polygon[(7 - 2 * Element[tmpB, i] / num, 5), (7 + 2 * Element[tmpB, i] / num, 5), (7 + 2 * Element[tmpB, i] / num, 5 + 4 / num), (7 - 2 * Element[tmpB, i] / num, 5 + 4 / num)]" a1="i" a2="1" a3="Length[tmpB]"/>
<output a0="discTB"/>
</command>
<element type="list" label="discTB">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Polygon[(12 - 2 * Element[tmpC, i] / num, 5), (12 + 2 * Element[tmpC, i] / num, 5), (12 + 2 * Element[tmpC, i] / num, 5 + 4 / num), (12 - 2 * Element[tmpC, i] / num, 5 + 4 / num)]" a1="i" a2="1" a3="Length[tmpC]"/>
<output a0="discTC"/>
</command>
<element type="list" label="discTC">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.5"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="regB" exp="{Polygon[(4.7, -0.1), (9.3, -0.1), (9, 4.3), (5, 4.3)]}" />
<element type="list" label="regB">
<show object="true" label="false"/>
<condition showObject="true"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="1"/>
<labelMode val="0"/>
<tooltipMode val="3"/>
<fixed val="true"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqB]||Length[seqB]==0)&&Length[tmpB]==0,1,0] seqB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],seqB,Insert[Min[tmp],seqB,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpC,{}]] tmpB=CopyFreeObject[If[Length[tmp]!=0||Length[seqB]==0,tmpB,Insert[Min[seqB],tmpB,1]]] seqB=CopyFreeObject[If[Length[tmp]!=0||Length[seqB]==0,seqB,KeepIf[x>Min[seqB],seqB]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<lineStyle thickness="0" type="0" typeHidden="1"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqB]||Length[seqB]==0)&&Length[tmpB]==0,1,0] seqB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],seqB,Insert[Min[tmp],seqB,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqB],tmpC,{}]] tmpB=CopyFreeObject[If[Length[tmp]!=0||Length[seqB]==0,tmpB,Insert[Min[seqB],tmpB,1]]] seqB=CopyFreeObject[If[Length[tmp]!=0||Length[seqB]==0,seqB,KeepIf[x>Min[seqB],seqB]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="regA" exp="{Polygon[(-0.3, -0.1), (4.3, -0.1), (4, 4.3), (0, 4.3)]}" />
<element type="list" label="regA">
<show object="true" label="false"/>
<condition showObject="true"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="1"/>
<labelMode val="0"/>
<tooltipMode val="3"/>
<fixed val="true"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqA]||Length[seqA]==0)&&Length[tmpA]==0,1,0] seqA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],seqA,Insert[Min[tmp],seqA,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpC,{}]] tmpA=CopyFreeObject[If[Length[tmp]!=0||Length[seqA]==0,tmpA,Insert[Min[seqA],tmpA,1]]] seqA=CopyFreeObject[If[Length[tmp]!=0||Length[seqA]==0,seqA,KeepIf[x>Min[seqA],seqA]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<lineStyle thickness="0" type="0" typeHidden="1"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqA]||Length[seqA]==0)&&Length[tmpA]==0,1,0] seqA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],seqA,Insert[Min[tmp],seqA,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqA],tmpC,{}]] tmpA=CopyFreeObject[If[Length[tmp]!=0||Length[seqA]==0,tmpA,Insert[Min[seqA],tmpA,1]]] seqA=CopyFreeObject[If[Length[tmp]!=0||Length[seqA]==0,seqA,KeepIf[x>Min[seqA],seqA]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="regC" exp="{Polygon[(9.7, -0.1), (14.3, -0.1), (14, 4.3), (10, 4.3)]}" />
<element type="list" label="regC">
<show object="true" label="false"/>
<condition showObject="true"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="1"/>
<labelMode val="0"/>
<tooltipMode val="3"/>
<fixed val="true"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqC]||Length[seqC]==0)&&Length[tmpC]==0,1,0] seqC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],seqC,Insert[Min[tmp],seqC,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpC,{}]] tmpC=CopyFreeObject[If[Length[tmp]!=0||Length[seqC]==0,tmpC,Insert[Min[seqC],tmpC,1]]] seqC=CopyFreeObject[If[Length[tmp]!=0||Length[seqC]==0,seqC,KeepIf[x>Min[seqC],seqC]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<lineStyle thickness="0" type="0" typeHidden="1"/>
<ggbscript val="steps=steps+If[Length[tmp]!=0&&(Min[tmp]<Min[seqC]||Length[seqC]==0)&&Length[tmpC]==0,1,0] seqC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],seqC,Insert[Min[tmp],seqC,1]]] tmpA=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpA,{}]] tmpB=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpB,{}]] tmpC=CopyFreeObject[If[Length[tmp]==0||Min[tmp]>Min[seqC],tmpC,{}]] tmpC=CopyFreeObject[If[Length[tmp]!=0||Length[seqC]==0,tmpC,Insert[Min[seqC],tmpC,1]]] seqC=CopyFreeObject[If[Length[tmp]!=0||Length[seqC]==0,seqC,KeepIf[x>Min[seqC],seqC]]] tmp=CopyFreeObject[Join[{tmpA, tmpB, tmpC}]]"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="text1" exp=""Excellent!""/>
<element type="text" label="text1">
<show object="false" label="false"/>
<condition showObject="(seqB ≟ Sequence[num] ∨ seqC ≟ Sequence[num]) ∧ (steps > best)"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<font serif="false" size="64" style="1"/>
<startPoint x="3.059999999999998" y="5.38" z="1.0"/>
</element>
<element type="numeric" label="steps">
<value val="0.0"/>
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="0" max="10000" absoluteScreenLocation="true" width="100.0" x="30.0" y="90.0" fixed="false" horizontal="true"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
</element>
<expression label="best" exp="2^(num) - 1" />
<element type="numeric" label="best">
<value val="31.0"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
</element>
<expression label="text3" exp=""Perfect!""/>
<element type="text" label="text3">
<show object="true" label="false"/>
<condition showObject="(seqB ≟ Sequence[num] ∨ seqC ≟ Sequence[num]) ∧ steps ≟ best"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<font serif="false" size="64" style="1"/>
<startPoint x="4.064000000000008" y="5.384000000000022" z="1.0"/>
</element>
<expression label="text2" exp=""\ovalbox{已經移動 \; " + (LaTeX[steps]) + " \; 次}"" />
<element type="text" label="text2">
<show object="true" label="false"/>
<objColor r="0" g="0" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<isLaTeX val="true"/>
<font serif="true" size="0" style="1"/>
<startPoint x="6.077999999999994" y="8.957999999999991" z="1.0"/>
</element>
<expression label="text4" exp=""\ovalbox{最佳解為" + (LaTeX[best]) + "次}"" />
<element type="text" label="text4">
<show object="true" label="false"/>
<objColor r="0" g="0" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<isLaTeX val="true"/>
<font serif="true" size="0" style="1"/>
<startPoint x="10.057999999999993" y="8.937999999999992" z="1.0"/>
</element>
<expression label="plate" exp="{Polygon[(-0.3, -0.3), (14.3, -0.3), (14.3, -0.1), (-0.3, -0.1)]}" />
<element type="list" label="plate">
<show object="true" label="false"/>
<objColor r="153" g="102" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="stickA" exp="{Polygon[(1.9, 4 * Length[seqA] / num + 0.1), (2.1, 4 * Length[seqA] / num + 0.1), (2.1, 4.5), (1.9, 4.5)], If[Length[seqA] ≟ 0, Polygon[(1.9, -0.1), (2.1, -0.1), (2.1, 0.1), (1.9, 0.1)]]}" />
<element type="list" label="stickA">
<show object="true" label="false"/>
<objColor r="153" g="102" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="stickB" exp="{Polygon[(5 + 1.9, 4 * Length[seqB] / num + 0.1), (5 + 2.1, 4 * Length[seqB] / num + 0.1), (7.1, 4.5), (6.9, 4.5)], If[Length[seqB] ≟ 0, Polygon[(6.9, -0.1), (7.1, -0.1), (7.1, 0.1), (6.9, 0.1)]]}" />
<element type="list" label="stickB">
<show object="true" label="false"/>
<objColor r="153" g="102" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="stickC" exp="{Polygon[(10 + 1.9, 4 * Length[seqC] / num + 0.1), (10 + 2.1, 4 * Length[seqC] / num + 0.1), (12.1, 4.5), (11.9, 4.5)], If[Length[seqC] ≟ 0, Polygon[(11.9, -0.1), (12.1, -0.1), (12.1, 0.1), (11.9, 0.1)]]}" />
<element type="list" label="stickC">
<show object="true" label="false"/>
<objColor r="153" g="102" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<tooltipMode val="2"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
</construction>
</geogebra>