{"id":66810,"date":"2026-10-15T11:46:55","date_gmt":"2026-10-15T06:16:55","guid":{"rendered":"https:\/\/www.quickonlinetips.com\/archives\/?page_id=66810"},"modified":"2026-10-15T11:47:10","modified_gmt":"2026-10-15T06:17:10","slug":"tower-of-hanoi","status":"publish","type":"page","link":"https:\/\/www.quickonlinetips.com\/archives\/games\/tower-of-hanoi\/","title":{"rendered":"Tower of Hanoi: Play the Puzzle Online"},"content":{"rendered":"<p>Play the <strong>Tower of Hanoi<\/strong> puzzle free in your browser. Move the whole stack of disks from the left rod to the right rod, one disk at a time, without ever putting a bigger disk on a smaller one. Choose 3 to 8 disks, try to finish in the fewest moves, or watch the solver do it.<\/p>\n<style>.qt-tool{--qt-accent:var(--global-palette1,#2B6CB0);--qt-accent2:var(--global-palette2,#215387);--qt-ink:var(--global-palette3,#1A202C);--qt-muted:var(--global-palette5,#4A5568);--qt-line:var(--global-palette7,#EDF2F7);--qt-soft:var(--global-palette8,#F7FAFC);--qt-bg:var(--global-palette9,#ffffff);background:#DCE7F3;border:1px solid #AEC3DB;border-radius:12px;padding:20px;margin:0 0 1.75em;color:var(--qt-ink);box-shadow:0 1px 2px rgba(26,32,44,.06)} .qt-tool *{box-sizing:border-box} .qt-tool .qt-label{display:block;font-weight:600;margin:0 0 6px} .qt-tool textarea,.qt-tool input[type=number],.qt-tool input[type=text],.qt-tool input[type=date],.qt-tool input[type=time],.qt-tool input[type=datetime-local],.qt-tool select{width:100%;font:inherit;font-size:16px;line-height:1.5;color:var(--qt-ink);background:var(--qt-bg);border:1px solid #CBD5E0;border-radius:8px;padding:10px 12px;margin:0} .qt-tool textarea{min-height:200px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px} .qt-tool textarea.qt-prose{font-family:inherit;font-size:16px} .qt-tool textarea:focus,.qt-tool input:focus,.qt-tool select:focus{outline:2px solid var(--qt-accent);outline-offset:1px;border-color:var(--qt-accent)} .qt-tool .qt-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 0} .qt-tool .qt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-field label{display:block;font-size:14px;font-weight:600;margin:0 0 4px;color:var(--qt-muted)} .qt-tool .qt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:15px;font-weight:600;line-height:1.2;padding:10px 16px;border-radius:8px;border:1px solid var(--qt-accent);background:var(--qt-accent);color:#fff;cursor:pointer;text-decoration:none;min-height:42px} .qt-tool .qt-btn:hover{background:var(--qt-accent2);border-color:var(--qt-accent2);color:#fff} .qt-tool .qt-btn-ghost{background:var(--qt-bg);color:var(--qt-accent)} .qt-tool .qt-btn-ghost:hover{background:var(--qt-line);color:var(--qt-accent2)} .qt-tool .qt-btn-sm{font-size:14px;padding:6px 10px;min-height:34px} .qt-tool .qt-btn-big{font-size:17px;padding:12px 22px} .qt-tool .qt-check{display:flex;align-items:center;gap:8px;font-size:15px;margin:0;cursor:pointer} .qt-tool .qt-check input{width:18px;height:18px;margin:0;accent-color:var(--qt-accent)} .qt-tool .qt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:12px 0 0} .qt-tool .qt-stat{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:10px;text-align:center} .qt-tool .qt-num{display:block;font-size:24px;font-weight:700;line-height:1.2;color:var(--qt-accent2);font-variant-numeric:tabular-nums} .qt-tool .qt-lab{display:block;font-size:13px;color:var(--qt-muted);margin-top:2px} .qt-tool .qt-sub{font-weight:700;margin:16px 0 6px} .qt-tool .qt-note{font-size:13px;color:var(--qt-muted);margin:14px 0 0} .qt-tool .qt-status{min-height:1.4em;font-size:14px;color:var(--qt-accent2);margin:8px 0 0} .qt-tool .qt-error{color:#C53030} .qt-tool .qt-kw{margin:0;padding:0 0 0 1.4em;columns:2;column-gap:24px;font-size:15px} .qt-tool .qt-kw li{margin:0 0 4px;break-inside:avoid} .qt-tool .qt-kw span{color:var(--qt-muted)} .qt-tool .qt-result{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:18px;margin:12px 0 0;text-align:center;font-size:44px;font-weight:700;line-height:1.25;color:var(--qt-accent2);word-break:break-word;font-variant-numeric:tabular-nums;min-height:94px} .qt-tool .qt-result.qt-many{font-size:22px;text-align:left;line-height:1.6;white-space:pre-wrap} .qt-tool .qt-history{margin:0;padding:0;list-style:none;font-size:14px;color:var(--qt-muted)} .qt-tool .qt-history li{padding:4px 0;border-bottom:1px dashed var(--qt-line);word-break:break-word} .qt-tool .qt-presets{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0} .qt-tool .qt-dice{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:14px 0 0;min-height:76px} .qt-tool .qt-die{width:68px;height:68px;border-radius:14px;background:var(--qt-bg);border:2px solid var(--qt-accent);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--qt-ink);box-shadow:0 2px 0 var(--qt-accent2)} .qt-tool .qt-die.qt-pip{font-size:56px;font-weight:400;line-height:1} .qt-tool .qt-die-label{display:block;font-size:11px;font-weight:600;color:var(--qt-muted)} .qt-tool .qt-total{text-align:center;font-size:20px;margin:12px 0 0} .qt-tool .qt-total strong{font-size:32px;color:var(--qt-accent2)} .qt-tool .qt-roll{animation:qtroll .45s ease-out} @keyframes qtroll{0%{transform:rotate(-25deg) scale(.8)}60%{transform:rotate(12deg) scale(1.08)}100%{transform:rotate(0) scale(1)}} .qt-tool .qt-out{background:var(--qt-bg)} .qt-tool p:empty{display:none} .qt-tool p:not(.qt-note){margin:0} .qt-tool .qt-grid:has(.qt-check){grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px 16px} .qt-tool .qt-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0 18px} .qt-tool .qt-sw{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;border:1px solid rgba(0,0,0,.12);border-radius:8px;min-height:64px;padding:6px 4px;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;text-transform:uppercase;transition:transform .1s} .qt-tool .qt-sw:hover,.qt-tool .qt-sw:focus{transform:scale(1.06);outline:2px solid var(--qt-accent);outline-offset:1px} .qt-tool .qt-group{font-size:15px;font-weight:700;margin:14px 0 2px} .qt-tool .qt-seg{display:inline-flex;border:1px solid var(--qt-accent);border-radius:8px;overflow:hidden} .qt-tool .qt-seg button{font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border:0;background:var(--qt-bg);color:var(--qt-accent);cursor:pointer} .qt-tool .qt-seg button[aria-pressed=true]{background:var(--qt-accent);color:#fff} .qt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0 0 1.75em} .qt-card{display:block;background:var(--global-palette8,#F7FAFC);border:1px solid #D5E0EC;border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--global-palette3,#1A202C);transition:transform .12s,box-shadow .12s} .qt-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(26,32,44,.10);color:var(--global-palette3,#1A202C)} .qt-card strong{display:block;font-size:18px;color:var(--global-palette1,#2B6CB0);margin:0 0 4px} .qt-card span{display:block;font-size:15px;color:var(--global-palette5,#4A5568);line-height:1.5} @media (max-width:600px){.qt-tool{padding:14px}.qt-tool .qt-swatches{grid-template-columns:repeat(3,1fr)}.qt-tool .qt-kw{columns:1}.qt-tool .qt-result{font-size:36px}.qt-tool .qt-die{width:58px;height:58px;font-size:24px}.qt-tool .qt-die.qt-pip{font-size:48px}} .qt-tool .qt-two{display:grid;grid-template-columns:1fr 1fr;gap:12px} .qt-tool .qt-two textarea{min-height:180px} .qt-tool .qt-diff{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;margin:12px 0 0;max-height:560px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55} .qt-tool .qt-dl{display:grid;grid-template-columns:3.2em 3.2em 1.4em 1fr;min-width:0} .qt-tool .qt-ln{color:#A0AEC0;text-align:right;padding:0 6px;user-select:none;border-right:1px solid var(--qt-line)} .qt-tool .qt-sign{text-align:center;color:var(--qt-muted);user-select:none} .qt-tool .qt-code{white-space:pre-wrap;word-break:break-word;padding:0 8px 0 2px} .qt-tool .qt-add{background:#F0FFF4} .qt-tool .qt-add .qt-sign{color:#2F855A;font-weight:700} .qt-tool .qt-del{background:#FFF5F5} .qt-tool .qt-del .qt-sign{color:#C53030;font-weight:700} .qt-tool .qt-wadd{background:#9AE6B4;color:inherit;border-radius:2px;padding:0} .qt-tool .qt-wdel{background:#FEB2B2;color:inherit;border-radius:2px;padding:0;text-decoration:line-through} .qt-tool .qt-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;word-break:break-all;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:4px 0 0;min-height:2.4em;color:var(--qt-ink)} .qt-tool .qt-big{font-size:18px;letter-spacing:.04em} .qt-tool .qt-explain{font-size:14px;color:var(--qt-muted);text-align:center;margin:6px 0 0;min-height:1.2em} .qt-tool .qt-result.qt-roman{font-size:32px} .qt-tool .qt-dateout{font-size:24px;font-weight:700;color:var(--qt-accent2);letter-spacing:.03em} .qt-ref{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 1.5em} .qt-ref th,.qt-ref td{border:1px solid #E2E8F0;padding:6px 10px;text-align:left} .qt-ref th{background:#F7FAFC} @media (max-width:600px){.qt-tool .qt-two{grid-template-columns:1fr}.qt-tool .qt-dl{grid-template-columns:2.6em 2.6em 1.2em 1fr}} .qt-tool .qt-coinwrap{display:flex;justify-content:center;margin:8px 0 0;perspective:900px} .qt-tool .qt-coin{position:relative;width:150px;height:150px;cursor:pointer;transform-style:preserve-3d;border-radius:50%} .qt-tool .qt-coin:focus{outline:3px solid var(--qt-accent);outline-offset:4px} .qt-tool .qt-face{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:radial-gradient(circle at 35% 30%,#FFF3B0,#F6C343 45%,#C9931E 100%);border:6px solid #B7791F;box-shadow:inset 0 0 0 4px rgba(255,255,255,.35),0 6px 14px rgba(0,0,0,.18);color:#744210;font-weight:800} .qt-tool .qt-face b{font-size:56px;line-height:1} .qt-tool .qt-face small{font-size:13px;letter-spacing:.12em;margin-top:2px} .qt-tool .qt-face-t{transform:rotateY(180deg);background:radial-gradient(circle at 35% 30%,#F7FAFC,#CBD5E0 45%,#8A99AD 100%);border-color:#718096;color:#2D3748} .qt-tool .qt-coin.qt-show-t{transform:rotateY(180deg)} .qt-tool .qt-coin.qt-flip-h{animation:qtfliph 1s cubic-bezier(.2,.7,.3,1) forwards} .qt-tool .qt-coin.qt-flip-t{animation:qtflipt 1s cubic-bezier(.2,.7,.3,1) forwards} @keyframes qtfliph{0%{transform:translateY(0) rotateY(0)}45%{transform:translateY(-40px) rotateY(900deg)}100%{transform:translateY(0) rotateY(1800deg)}} @keyframes qtflipt{0%{transform:translateY(0) rotateY(0)}45%{transform:translateY(-40px) rotateY(990deg)}100%{transform:translateY(0) rotateY(1980deg)}} .qt-tool .qt-small{font-size:15px;font-weight:400;color:var(--qt-muted);text-align:center;margin:6px 0 0;word-break:break-word} .qt-tool .qt-wheelbox{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start} .qt-tool .qt-wheel{position:relative;width:100%;max-width:440px;margin:0 auto} .qt-tool .qt-wheel canvas{display:block;width:100%;height:auto;aspect-ratio:1\/1;cursor:pointer;border-radius:50%} .qt-tool .qt-wheel canvas:focus{outline:3px solid var(--qt-accent);outline-offset:3px} .qt-tool .qt-pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid #1A202C;filter:drop-shadow(0 2px 1px rgba(0,0,0,.3));z-index:2} .qt-tool .qt-wheelbox textarea{min-height:240px} .qt-tool .qt-result.qt-pop{animation:qtpop .4s ease-out} @keyframes qtpop{0%{transform:scale(.8)}60%{transform:scale(1.06)}100%{transform:scale(1)}} .qt-tool .qt-btn[disabled]{opacity:.6;cursor:wait} .qt-tool .qt-lamp{width:46px;height:46px;border-radius:50%;background:#CBD5E0;border:3px solid #A0AEC0;flex:0 0 auto} .qt-tool .qt-lamp.qt-on{background:#F6E05E;border-color:#D69E2E;box-shadow:0 0 18px 6px rgba(246,224,94,.8)} .qt-tool .qt-result.qt-letters{font-size:72px} .qt-tool .qt-clock{font-size:56px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;color:var(--qt-ink);background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:14px;margin:12px 0 0;letter-spacing:.02em} .qt-tool .qt-clock.qt-done{color:#C53030;animation:qtpop .4s ease-out} .qt-tool .qt-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px} .qt-tool .qt-tabs button{font:inherit;font-size:15px;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid var(--qt-accent);background:var(--qt-bg);color:var(--qt-accent);cursor:pointer} .qt-tool .qt-tabs button[aria-selected=true]{background:var(--qt-accent);color:#fff} .qt-tool .qt-sent{font-size:17px;line-height:2.4} .qt-tool .qt-sent input{display:inline-block;width:7em;padding:6px 8px;margin:0 4px} .qt-tool .qt-ans{font-weight:700;color:var(--qt-accent2);font-size:20px;margin-left:6px} .qt-tool .qt-table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0 0;background:var(--qt-bg)} .qt-tool .qt-table th,.qt-tool .qt-table td{border:1px solid #D5E0EC;padding:6px 8px;text-align:left;word-break:break-all;vertical-align:top} .qt-tool .qt-table th{background:#F1F5FA;font-weight:700;word-break:normal} .qt-tool .qt-ok{color:#2F855A;font-weight:700} .qt-tool .qt-ip{font-size:38px;font-weight:700;text-align:center;color:var(--qt-accent2);word-break:break-all;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:16px;margin:0} @media (prefers-reduced-motion:reduce){.qt-tool .qt-coin.qt-flip-h,.qt-tool .qt-coin.qt-flip-t{animation:none}.qt-tool .qt-coin.qt-flip-t{transform:rotateY(180deg)}} @media (max-width:700px){.qt-tool .qt-wheelbox{grid-template-columns:1fr}} @media (max-width:600px){.qt-tool .qt-clock{font-size:40px}.qt-tool .qt-ip{font-size:26px}} .qt-tool .qt-srow{display:flex;gap:10px;align-items:center;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:8px 0 0} .qt-tool .qt-sname{font-size:12px;color:var(--qt-muted);flex:0 0 120px} .qt-tool .qt-sval{flex:1 1 auto;font-size:20px;line-height:1.4;word-break:break-word;min-width:0} @media (max-width:600px){.qt-tool .qt-srow{flex-wrap:wrap}.qt-tool .qt-sname{flex-basis:100%}} .qt-tool .qt-meter{height:22px;background:#CBD5E0;border-radius:11px;overflow:hidden;margin:12px 0 0} .qt-tool .qt-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,#38A169 0,#38A169 60%,#D69E2E 80%,#C53030 100%);transition:width .06s linear} .qt-tool video,.qt-tool canvas.qt-snap{display:block;width:100%;max-height:420px;background:#1A202C;border-radius:10px;margin:12px 0 0;object-fit:contain} .qt-tool video.qt-mirror{transform:scaleX(-1)} .qt-tool .qt-kb{display:flex;flex-direction:column;gap:4px;margin:12px 0 0;padding:10px;background:#2D3748;border-radius:10px;outline:none;overflow-x:auto} .qt-tool .qt-kb:focus{box-shadow:0 0 0 3px var(--qt-accent)} .qt-tool .qt-krow{display:flex;gap:4px;min-width:640px} .qt-tool .qt-key{flex:1 1 0;height:36px;border-radius:5px;background:#4A5568;color:#E2E8F0;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;user-select:none;white-space:nowrap;overflow:hidden} .qt-tool .qt-key.qt-kok{background:#2F855A;color:#fff} .qt-tool .qt-key.qt-kon{background:#F6E05E;color:#1A202C} .qt-tool .qt-click{display:flex;align-items:center;justify-content:center;min-height:240px;margin:12px 0 0;border-radius:12px;background:var(--qt-accent);color:#fff;font-size:26px;font-weight:700;text-align:center;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;padding:16px} .qt-tool .qt-click.qt-wait{background:#C53030} .qt-tool .qt-click.qt-go{background:#2F855A} .qt-tool .qt-click.qt-off{background:#718096;cursor:default} .qt-full{position:fixed;inset:0;z-index:999999;cursor:none} .qt-full-tip{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1000000;background:rgba(0,0,0,.7);color:#fff;font:14px\/1.4 sans-serif;padding:8px 14px;border-radius:8px} .qt-tool .qt-gparow{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) auto;align-items:end} @media (max-width:600px){.qt-tool .qt-gparow{grid-template-columns:1fr 1fr;padding-bottom:10px;border-bottom:1px dashed var(--qt-line)}} .qt-tool .qt-hrrow{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:6px} @media (max-width:600px){.qt-tool .qt-hrrow{grid-template-columns:repeat(2,minmax(0,1fr))}} .qt-tool .qt-tally{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:12px;text-align:center} .qt-tool .qt-tally input{text-align:center;font-weight:600;border-color:transparent;background:transparent} .qt-tool .qt-tally .qt-tnum{font-size:56px;font-weight:700;line-height:1.1;color:var(--qt-accent2);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none} .qt-tool .qt-tallies{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-team{background:var(--qt-bg);border:1px solid var(--qt-line);border-top:4px solid var(--qt-accent);border-radius:10px;padding:10px 12px} .qt-tool .qt-team h3{font-size:16px;margin:0 0 6px} .qt-tool .qt-team ol{margin:0;padding-left:1.3em;font-size:15px} .qt-tool .qt-words{font-size:22px;line-height:1.75;height:5.6em;overflow:hidden;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:8px 14px;margin:12px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace} .qt-tool .qt-words span{padding:1px 3px;border-radius:4px} .qt-tool .qt-words .qt-cur{background:#FEFCBF} .qt-tool .qt-words .qt-wok{color:#2F855A} .qt-tool .qt-words .qt-wbad{color:#C53030;text-decoration:underline} .qt-tool .qt-words .qt-cur.qt-wtyping{background:#FED7D7} .qt-tool .qt-wlist{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px} .qt-tool .qt-wlist span{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:6px;padding:3px 8px;font-size:15px;font-weight:600} .qt-tool .qt-wlist sub{font-size:10px;color:var(--qt-muted);margin-left:2px} .qt-tool h3.qt-wh{font-size:17px;margin:14px 0 2px} .qt-tool input[type=range]{width:100%;accent-color:var(--qt-accent)} .qt-tool .qt-pw{display:flex;gap:8px;align-items:center;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:8px 0 0} .qt-tool .qt-pw code{flex:1 1 auto;font-size:17px;word-break:break-all;background:none;padding:0;min-width:0} .qt-tool .qt-strength{height:10px;border-radius:5px;background:#CBD5E0;overflow:hidden;margin:10px 0 0} .qt-tool .qt-strength span{display:block;height:100%;width:0;transition:width .2s} .qt-tool input[type=color]{width:100%;height:48px;padding:2px;border:1px solid #CBD5E0;border-radius:8px;background:var(--qt-bg);cursor:pointer} .qt-tool .qt-swatch{height:110px;border-radius:10px;border:1px solid rgba(0,0,0,.15);margin:12px 0 0;display:flex;align-items:center;justify-content:center;gap:24px;font-size:20px;font-weight:700} .qt-tool .qt-over{color:#C53030;font-weight:700} .qt-tool .qt-drop{border:2px dashed var(--qt-accent);border-radius:10px;padding:28px 12px;text-align:center;cursor:pointer;background:var(--qt-bg);margin:0 0 12px} .qt-tool .qt-drop.qt-hover{background:#E3EEFF} .qt-tool .qt-prev{display:block;max-width:100%;max-height:380px;margin:12px auto 0;border:1px solid var(--qt-line);border-radius:8px;background:repeating-conic-gradient(#E2E8F0 0 25%,#fff 0 50%) 0 0\/16px 16px} .qt-tool .qt-lb{display:inline-flex;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;font-weight:700;font-size:17px;background:#fff;color:#1A202C;border:2px solid var(--qt-accent);margin:3px} .qt-tool .qt-lb.qt-bonus{background:#E53E3E;color:#fff;border-color:#E53E3E} .qt-tool .qt-8{width:230px;height:230px;border-radius:50%;margin:16px auto;background:radial-gradient(circle at 35% 30%,#666,#000 62%);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.35)} .qt-tool .qt-8 span{width:116px;height:116px;border-radius:50%;background:radial-gradient(circle,#2747a8,#0b1a4a);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:700;padding:16px;box-sizing:border-box;line-height:1.25;transition:opacity .3s} .qt-tool .qt-shake{animation:qt-shake .7s} @keyframes qt-shake{0%,100%{transform:translate(0)}20%{transform:translate(-12px,4px) rotate(-6deg)}40%{transform:translate(10px,-6px) rotate(5deg)}60%{transform:translate(-8px,6px) rotate(-4deg)}80%{transform:translate(6px,-3px) rotate(3deg)}} .qt-tool .qt-grid>.qt-field{display:flex;flex-direction:column;justify-content:flex-end} .qt-tool .qt-field input[type=range]{height:46px;padding:0 10px} .qt-tool .qt-field input[type=color]{height:46px} .qt-tool .qt-drop .qt-sub{font-weight:400;font-size:14px;margin:4px 0 0} .qt-tool .qt-board{display:grid;gap:5px;margin:14px auto 0;max-width:100%;user-select:none;-webkit-user-select:none;touch-action:manipulation} .qt-tool .qt-cell{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #AEC3DB;border-radius:6px;font-weight:700;cursor:pointer;aspect-ratio:1;font-size:clamp(14px,4vw,26px);color:#1A202C;padding:0;min-width:0;font-family:inherit;line-height:1} .qt-tool .qt-cell:disabled{cursor:default} .qt-tool .qt-win{background:#C6F6D5;border-color:#38A169} .qt-tool .qt-sel{background:#BEE3F8;border-color:#3182CE} .qt-tool .qt-bad{background:#FED7D7;border-color:#E53E3E} .qt-tool select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;cursor:pointer;border:2px solid #90B4DA;font-weight:600;background-color:#fff;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5' fill='none' stroke='%232B6CB0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 14px center;background-size:14px 9px} .qt-tool select:hover{border-color:var(--qt-accent);background-color:#F4F8FD} .qt-tool select::-ms-expand{display:none} .qt-next{margin:0 0 1.75em} .qt-next .qt-next-h{font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#4A5568;margin:0 0 8px} .qt-next-g{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .qt-next-g a{display:flex;align-items:center;min-height:46px;padding:9px 12px;border:1px solid #AEC3DB;border-radius:8px;background:#F4F8FD;color:#215387;font-weight:600;font-size:15px;line-height:1.3;text-decoration:none} .qt-next-g a:hover,.qt-next-g a:focus{background:#E3EEFF;border-color:#2B6CB0;text-decoration:none} @media (max-width:600px){.qt-next-g{grid-template-columns:repeat(2,1fr)}}<\/style>\n<div class=\"qt-tool\" id=\"qt-th\">\n<div class=\"qt-grid\">\n<div class=\"qt-field\"><label for=\"qt-th-n\">Disks<\/label><select id=\"qt-th-n\"><option value=\"3\">3 disks (easy)<\/option><option value=\"4\" selected>4 disks<\/option><option value=\"5\">5 disks<\/option><option value=\"6\">6 disks<\/option><option value=\"7\">7 disks<\/option><option value=\"8\">8 disks (expert)<\/option><\/select><\/div>\n<\/div>\n<div class=\"qt-stats\">\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-th-m\">0<\/span><span class=\"qt-lab\">Moves<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-th-min\">15<\/span><span class=\"qt-lab\">Minimum moves<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-th-t\">0:00<\/span><span class=\"qt-lab\">Time<\/span><\/div>\n<\/div>\n<div id=\"qt-th-b\" style=\"display:flex;gap:10px;align-items:flex-end;margin:14px 0\"><\/div>\n<div class=\"qt-status\" id=\"qt-th-msg\" aria-live=\"polite\" style=\"text-align:center\"><\/div>\n<div class=\"qt-row\" style=\"justify-content:center\"><button type=\"button\" class=\"qt-btn\" id=\"qt-th-new\">New game<\/button><button type=\"button\" class=\"qt-btn qt-btn-ghost\" id=\"qt-th-solve\">Show the solution<\/button><\/div>\n<\/div>\n<p><script>(function () { function qtReady(fn) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); } else { fn(); } } function qtCopy(text, statusEl, okMsg) { function done(ok) { if (statusEl) { statusEl.textContent = ok ? (okMsg || 'Copied to clipboard.') : 'Press Ctrl+C (or Cmd+C) to copy.'; } } function fallback() { var ta = document.createElement('textarea'); ta.value = text; ta.setAttribute('readonly', ''); ta.style.position = 'fixed'; ta.style.top = '-1000px'; document.body.appendChild(ta); ta.select(); var ok = false; try { ok = document.execCommand('copy'); } catch (e) { ok = false; } document.body.removeChild(ta); done(ok); } if (navigator.clipboard) { if (window.isSecureContext) { navigator.clipboard.writeText(text).then(function () { done(true); }, fallback); return; } } fallback(); } function qtRand32() { var c = window.crypto || window.msCrypto; if (c) { if (c.getRandomValues) { var a = new Uint32Array(1); c.getRandomValues(a); return a[0]; } } return Math.floor(Math.random() * 4294967296); } function qtRandInt(range) { if (range === 4294967296) { return qtRand32(); } var limit = Math.floor(4294967296 \/ range) * range; var x = qtRand32(); while (x >= limit) { x = qtRand32(); } return x % range; }  qtReady(function () { var B = document.getElementById('qt-th-b'); if (!B) { return; } function $(x) { return document.getElementById('qt-th-' + x); } var COLS = ['#E53E3E', '#DD6B20', '#D69E2E', '#38A169', '#319795', '#3182CE', '#5A67D8', '#805AD5']; var n, pegs, held, moves, solving = null, t0 = 0, tick = null; function draw() { B.textContent = ''; pegs.forEach(function (p, i) { var col = document.createElement('div'); col.style.cssText = 'flex:1;position:relative;height:' + (n * 26 + 50) + 'px;display:flex;flex-direction:column-reverse;align-items:center;cursor:pointer;border-radius:10px;padding-bottom:8px'; col.style.background = held === i ? 'rgba(246,224,94,.35)' : 'rgba(255,255,255,.35)'; var rod = document.createElement('div'); rod.style.cssText = 'position:absolute;bottom:8px;left:50%;width:8px;margin-left:-4px;border-radius:4px;background:#5C3A21;height:' + (n * 26 + 30) + 'px'; col.appendChild(rod); var base = document.createElement('div'); base.style.cssText = 'position:absolute;bottom:0;left:6%;right:6%;height:8px;border-radius:4px;background:#5C3A21'; col.appendChild(base); p.forEach(function (d, k) { var disk = document.createElement('div'); var w = 24 + d * (66 \/ n); disk.style.cssText = 'position:relative;z-index:1;height:22px;margin-bottom:4px;border-radius:11px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)'; disk.style.width = w + '%'; disk.style.background = COLS[(d - 1) % COLS.length]; if (held === i) { if (k === p.length - 1) { disk.style.transform = 'translateY(-14px)'; disk.style.boxShadow = '0 6px 10px rgba(0,0,0,.3)'; } } col.appendChild(disk); }); col.addEventListener('click', function () { clickPeg(i); }); B.appendChild(col); }); $('m').textContent = moves; $('min').textContent = Math.pow(2, n) - 1; } function fmt(s) { return Math.floor(s \/ 60) + ':' + (s % 60 > 9 ? '' : '0') + (s % 60); } function startClock() { if (tick) { return; } t0 = Date.now(); tick = setInterval(function () { $('t').textContent = fmt(Math.floor((Date.now() - t0) \/ 1000)); }, 500); } function won() { return pegs[2].length === n; } function moveDisk(a, b) { var d = pegs[a][pegs[a].length - 1]; var top = pegs[b][pegs[b].length - 1]; if (d === undefined) { return false; } if (top !== undefined) { if (d > top) { return false; } } pegs[a].pop(); pegs[b].push(d); moves++; return true; } function finish() { clearInterval(tick); tick = null; var min = Math.pow(2, n) - 1; $('msg').textContent = moves === min ? 'Solved in the minimum ' + min + ' moves! Perfect. \ud83c\udfc6' : 'Solved in ' + moves + ' moves (the minimum is ' + min + '). Try for a perfect game!'; } function clickPeg(i) { if (solving) { return; } if (won()) { return; } if (held === null) { if (pegs[i].length) { held = i; $('msg').textContent = 'Now click the rod to move it to.'; } draw(); return; } if (held === i) { held = null; draw(); return; } startClock(); if (moveDisk(held, i)) { held = null; $('msg').textContent = ''; draw(); if (won()) { finish(); } return; } $('msg').textContent = 'A bigger disk cannot go on a smaller one.'; held = null; draw(); } function reset() { clearInterval(solving); solving = null; clearInterval(tick); tick = null; n = +$('n').value; pegs = [[], [], []]; held = null; moves = 0; for (var d = n; d >= 1; d--) { pegs[0].push(d); } $('t').textContent = '0:00'; $('msg').textContent = 'Move the whole tower to the rod on the right.'; draw(); } function plan(k, a, b, c, out) { if (0 === k) { return; } plan(k - 1, a, c, b, out); out.push([a, c]); plan(k - 1, b, a, c, out); } $('solve').addEventListener('click', function () { reset(); var steps = []; plan(n, 0, 1, 2, steps); var i = 0; $('msg').textContent = 'Watch the solution...'; solving = setInterval(function () { if (i >= steps.length) { clearInterval(solving); solving = null; $('msg').textContent = 'Done: ' + steps.length + ' moves. Press New game to try it yourself.'; return; } moveDisk(steps[i][0], steps[i][1]); i++; draw(); }, Math.max(120, 900 \/ n)); }); $('new').addEventListener('click', reset); $('n').addEventListener('change', reset); document.addEventListener('keydown', function (e) { if (e.target.tagName === 'SELECT') { return; } var k = +e.key; if (k > 0) { if (4 > k) { clickPeg(k - 1); } } }); reset(); }); })();<\/script><\/p>\n<div class=\"qt-next\">\n<p class=\"qt-next-h\">Play next<\/p>\n<div class=\"qt-next-g\"><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/tic-tac-toe\/\">Tic Tac Toe<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/hangman\/\">Hangman<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/word-search\/\">Word Search<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/rock-paper-scissors\/\">Rock Paper Scissors<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/truth-or-dare\/\">Truth or Dare Generator<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/halloween-word-search\/\">Halloween Word Search<\/a><\/div>\n<\/div>\n<p><strong>Quick answer:<\/strong> Click a rod to pick up its top disk, then click another rod to drop it there (or press keys 1, 2 and 3). Only one disk moves at a time, and a disk can never sit on a smaller one. Move the full tower to the right-hand rod to win. The smallest possible number of moves is 2<sup>n<\/sup> \u2212 1, where n is the number of disks.<\/p>\n<h2>How to solve the Tower of Hanoi<\/h2>\n<ol>\n<li>To move a tower of n disks, first move the top n \u2212 1 disks out of the way onto the spare rod.<\/li>\n<li>Move the biggest disk to the target rod.<\/li>\n<li>Move the n \u2212 1 disks from the spare rod on top of it.<\/li>\n<li>Each smaller tower is solved the same way, which is why the puzzle is a classic example of recursion.<\/li>\n<\/ol>\n<p>A handy pattern: move the smallest disk every other turn, always in the same direction (to the right with an odd number of disks, to the left with an even number, wrapping around), and in between make the only other legal move.<\/p>\n<h2>Minimum moves for each Tower of Hanoi size<\/h2>\n<table class=\"qt-ref\">\n<thead>\n<tr>\n<th>Disks<\/th>\n<th>Minimum moves<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>3<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>31<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>63<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>127<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>255<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The puzzle was invented by the French mathematician \u00c9douard Lucas in 1883. A legend he told says monks are moving 64 golden disks; at one move per second, that would take about 585 billion years.<\/p>\n<p>More brain games: <a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/sliding-puzzle\/\">sliding puzzle<\/a>, <a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/peg-solitaire\/\">peg solitaire<\/a> and <a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/dots-and-boxes\/\">dots and boxes<\/a>.<\/p>\n<h2>FAQ<\/h2>\n<h3>Is the Tower of Hanoi good for kids?<\/h3>\n<p>Yes. Start with 3 disks, which takes just 7 moves, then add a disk once it feels easy. It builds planning and step-by-step thinking.<\/p>\n<h3>Why is the puzzle used in computer science?<\/h3>\n<p>Its solution breaks a big problem into the same problem at a smaller size, which makes it a favorite first example of recursive algorithms.<\/p>\n<h2>More free games and tools<\/h2>\n<div class=\"qt-cards\"><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/tic-tac-toe\/\"><strong>Tic Tac Toe<\/strong><span>Play X and O against the computer or a friend.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/hangman\/\"><strong>Hangman<\/strong><span>Guess the word one letter at a time.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/word-search\/\"><strong>Word Search<\/strong><span>Find hidden words in themed puzzles.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/rock-paper-scissors\/\"><strong>Rock Paper Scissors<\/strong><span>Play rock paper scissors against the computer.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/truth-or-dare\/\"><strong>Truth or Dare Generator<\/strong><span>Random truth questions and dares for parties.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/halloween-word-search\/\"><strong>Halloween Word Search<\/strong><span>Spooky themed word search puzzles.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/christmas-word-search\/\"><strong>Christmas Word Search<\/strong><span>Holiday word search puzzles for all ages.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/christmas-trivia\/\"><strong>Christmas Trivia Quiz<\/strong><span>Ten festive questions with answers.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/charades-generator\/\"><strong>Charades Generator<\/strong><span>Random words to act out, with timer and scores.<\/span><\/a><\/div>\n<p>See all of them on the <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/\">QuickOnlineTips free online tools<\/a> page and the <a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/\">free online games<\/a> page.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Play the Tower of Hanoi puzzle free in your browser. Move the whole stack of disks from the left rod to the right rod, one disk at a time, without ever putting a bigger disk on a smaller one. Choose 3 to 8 disks, try to finish in the fewest moves, or watch the solver&#8230;<\/p>\n","protected":false},"author":4,"featured_media":66830,"parent":66148,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-66810","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/66810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/comments?post=66810"}],"version-history":[{"count":1,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/66810\/revisions"}],"predecessor-version":[{"id":66820,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/66810\/revisions\/66820"}],"up":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/66148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media\/66830"}],"wp:attachment":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media?parent=66810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}