{"id":1656,"date":"2025-01-08T19:40:10","date_gmt":"2025-01-08T18:40:10","guid":{"rendered":"https:\/\/palanteinc.de\/?page_id=1656"},"modified":"2026-10-29T14:32:40","modified_gmt":"2026-10-29T13:32:40","slug":"tesipoki","status":"publish","type":"page","link":"https:\/\/palanteinc.de\/en\/webgames\/tesipoki\/","title":{"rendered":"TesiPoki"},"content":{"rendered":"\n<div style=\"height:120px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<style data-wp-block-html=\"css\">\n\/* TesiPoki \u2013 Styles *\/\n#tesipoki{--lila:#4B0082;--gelb:#ffd24a;--gruen:#3a9a5b;--rot:#a33;--bg:#f4f4f2;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:15px;line-height:1.35;color:#222;background:var(--bg);max-width:1200px;margin:0 auto;padding:10px;border-radius:14px;box-sizing:border-box;-webkit-user-select:none;user-select:none}\n#tesipoki *{box-sizing:border-box}\n#tesipoki button{font:inherit;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;cursor:pointer;line-height:1.2;min-height:0;width:auto;-webkit-tap-highlight-color:transparent;text-decoration:none}\n#tesipoki ul{margin:0;padding:0;list-style:none}\n#tesipoki p{margin:0 0 8px}\n#tesipoki table{border:0;margin:0;width:100%;border-collapse:collapse;background:transparent}\n#tesipoki th,#tesipoki td{border:0;border-bottom:1px solid #e5e5e5;background:transparent;padding:6px 8px;text-align:left;font-size:14px;vertical-align:middle}\n#tesipoki .tp-bar{display:flex;align-items:center;gap:8px;background:var(--lila);border-radius:12px;padding:8px}\n#tesipoki .tp-burger{width:42px;height:36px;border:2px solid #fff;border-radius:8px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 9px;flex:none}\n#tesipoki .tp-burger span{display:block;height:3px;background:#fff;border-radius:2px}\n#tesipoki .tp-levels{flex:1;display:flex;justify-content:center;gap:5px;min-width:0}\n#tesipoki .tp-lv{background:#fff;color:#222;border-radius:18px;padding:8px 12px;font-size:13px}\n#tesipoki .tp-lv.on{background:var(--gelb);font-weight:700}\n#tesipoki .tp-new{background:#fff;color:#222;border-radius:18px;padding:8px 11px;font-size:14px;font-weight:700;flex:none}\n#tesipoki .tp-strip{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #ccc;border-radius:10px;padding:8px 12px;margin-top:8px}\n#tesipoki .tp-s-me{color:var(--lila);font-weight:700;font-size:17px}\n#tesipoki .tp-s-opp{color:var(--rot);font-weight:700;font-size:17px}\n#tesipoki .tp-s-round{color:#666;font-size:12px}\n#tesipoki .tp-main{display:flex;flex-direction:column;gap:8px;margin-top:8px}\n#tesipoki .tp-panel{background:#fff;border:1px solid #bbb;border-radius:12px;padding:12px}\n#tesipoki .tp-opp{order:1;background:#fbf3f3;border-color:#c99}\n#tesipoki .tp-me{order:2}\n#tesipoki .tp-card{order:3;padding:8px}\n#tesipoki .tp-me-head,#tesipoki .tp-opp-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}\n#tesipoki .tp-me-head strong{font-size:16px}\n#tesipoki .tp-me-round{font-size:12px;color:#666}\n#tesipoki .tp-opp-title{color:var(--rot);font-size:16px}\n#tesipoki .tp-opp-status{font-size:12px;color:var(--rot)}\n#tesipoki .tp-dice{display:flex;justify-content:space-between;gap:6px;margin:12px 0 22px;max-width:360px;margin-left:auto;margin-right:auto}\n#tesipoki .tp-die{flex:none;width:min(64px,16.5vw);height:min(64px,16.5vw);background:#fff;border:2px solid #555;border-radius:11px;position:relative;display:block;padding:0}\n#tesipoki .tp-die i{position:absolute;display:block;width:19%;height:19%;border-radius:50%;transform:translate(-50%,-50%)}\n#tesipoki .tp-die i.on{background:#222}\n#tesipoki .tp-die i:nth-child(3n+1){left:26%}#tesipoki .tp-die i:nth-child(3n+2){left:50%}#tesipoki .tp-die i:nth-child(3n){left:74%}\n#tesipoki .tp-die i:nth-child(-n+3){top:26%}#tesipoki .tp-die i:nth-child(n+4):nth-child(-n+6){top:50%}#tesipoki .tp-die i:nth-child(n+7){top:74%}\n#tesipoki .tp-die.empty{background:#ececec;border-style:dashed;border-color:#aaa}\n#tesipoki .tp-die.held{border:3px solid var(--rot);background:#fff7f7}\n#tesipoki .tp-die.held::after{content:\"gehalten\";position:absolute;left:-6px;right:-6px;bottom:-18px;text-align:center;font-size:10px;color:var(--rot)}\n#tesipoki .tp-mdice .tp-die{cursor:pointer}\n#tesipoki .tp-die.rolling{animation:tpShake .3s linear infinite}\n@keyframes tpShake{0%{transform:rotate(0)}25%{transform:rotate(-11deg) scale(.94)}50%{transform:rotate(9deg)}75%{transform:rotate(-5deg) scale(.97)}100%{transform:rotate(0)}}\n#tesipoki .tp-roll{display:block;width:100%;background:var(--gruen);color:#fff;font-weight:700;font-size:18px;padding:14px;border-radius:10px}\n#tesipoki .tp-roll:disabled{background:#a9c7b3;cursor:default}\n#tesipoki .tp-hint{font-size:12px;color:#777;margin-top:8px;text-align:center}\n#tesipoki .tp-opp-roll{text-align:center;font-weight:700;color:var(--rot);font-size:14px;margin-top:2px}\n#tesipoki .tp-sub{font-weight:700;margin-top:10px;font-size:14px}\n#tesipoki .tp-log{margin-top:4px!important;font-size:13px;color:#444}\n#tesipoki .tp-log li{padding:2px 0}\n#tesipoki .tp-muted{color:#999}\n#tesipoki .tp-last{background:#fff;border:1px solid #ddd;border-radius:9px;padding:8px 10px;margin-top:10px}\n#tesipoki .tp-last small{display:block;color:#777;font-size:11px}\n#tesipoki .tp-oppbtns{display:flex;gap:8px;margin-top:10px}\n#tesipoki .tp-speed,#tesipoki .tp-histbtn{border:1px solid #c99;border-radius:9px;padding:9px 10px;background:#fff;color:var(--rot);font-size:13px}\n#tesipoki .tp-speed{flex:1}\n#tesipoki .tp-oppline{display:none;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--rot)}\n#tesipoki .tp-oppline .tp-histbtn{border:0;padding:4px 0;background:none}\n#tesipoki .tp-hist{display:none;font-size:12px;color:#555;margin-top:8px!important;border-top:1px dashed #d8b4b4;padding-top:6px!important;max-height:220px;overflow:auto}\n#tesipoki .tp-hist.open{display:block}\n#tesipoki .tp-hist li{padding:2px 0}\n#tesipoki .tp-num{text-align:center!important;width:72px}\n#tesipoki th{font-size:12px!important;color:#555}\n#tesipoki td small{color:#999;font-size:11px;margin-left:4px}\n#tesipoki tr.tp-sum td{background:#efe9f6;font-weight:700}\n#tesipoki tr.tp-tot td{background:var(--gelb);font-weight:700;font-size:15px}\n#tesipoki td.tp-me-c.can{cursor:pointer}\n#tesipoki .tp-pv{display:inline-block;min-width:44px;padding:3px 6px;border-radius:7px;border:2px solid var(--gruen);background:#dff3e4;color:var(--gruen);font-weight:700;text-align:center}\n#tesipoki .tp-pv.zero{border-color:#ddd;background:#f7f7f7;color:#aaa;font-weight:400}\n#tesipoki td.flash{animation:tpFlash 1.6s ease-out}\n@keyframes tpFlash{0%{background:#f3b9b9}100%{background:transparent}}\n#tesipoki .tp-ov{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99998;display:none}\n#tesipoki .tp-ov.open{display:block}\n#tesipoki .tp-drawer{position:absolute;left:0;top:0;bottom:0;width:min(300px,86vw);background:#fff;padding:18px;overflow:auto;box-shadow:4px 0 20px rgba(0,0,0,.25)}\n#tesipoki .tp-close{font-size:22px;color:var(--lila);font-weight:700;padding:4px 8px;margin:-4px 0 12px -8px}\n#tesipoki .tp-back{display:block;background:var(--lila);color:#fff!important;text-decoration:none!important;padding:13px;border-radius:10px;font-weight:700;text-align:center;font-size:14px}\n#tesipoki .tp-besth{color:var(--lila);margin-top:22px;font-size:15px}\n#tesipoki .tp-best{border:2px solid #d9c8ef;background:#faf7ff;border-radius:10px;padding:14px;text-align:center;margin-top:8px}\n#tesipoki .tp-best b{display:block;font-size:26px;color:var(--lila)}\n#tesipoki .tp-best small{color:#666;font-size:12px}\n#tesipoki .tp-note{font-size:11px;color:#999;margin-top:6px}\n#tesipoki .tp-rules{margin-top:18px;font-size:13px;color:#444}\n#tesipoki .tp-rules summary{cursor:pointer;font-size:15px;color:#333;margin-bottom:8px}\n#tesipoki .tp-reset{color:var(--rot);margin-top:16px;font-size:14px;padding:6px 0}\n#tesipoki .tp-modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,90vw);background:#fff;border-radius:16px;padding:22px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.3)}\n#tesipoki .tp-end-t{font-size:24px;font-weight:800;color:var(--lila)}\n#tesipoki .tp-end-s{font-size:17px;margin:12px 0}\n#tesipoki .tp-end-b{font-size:14px;color:#b8860b;font-weight:700;min-height:20px;margin-bottom:14px}\n#tesipoki .tp-again{background:var(--gruen);color:#fff;font-weight:700;padding:13px 20px;border-radius:10px;width:100%}\n#tesipoki .tp-compact{display:none}\n@media (max-width:899px){\n#tesipoki:not(.tp-oppturn) .tp-opp .tp-full{display:none}\n#tesipoki:not(.tp-oppturn) .tp-opp .tp-compact{display:flex}\n#tesipoki:not(.tp-oppturn) .tp-opp{padding:9px 12px}\n#tesipoki.tp-oppturn .tp-me{display:none}\n}\n@media (max-width:599px){\n#tesipoki{padding:6px;border-radius:0}\n#tesipoki .tp-new span{display:none}\n#tesipoki .tp-cardhint{display:none}\n}\n@media (max-width:370px){\n#tesipoki .tp-lv{padding:8px 8px;font-size:12px}\n#tesipoki .tp-levels{gap:3px}\n#tesipoki th,#tesipoki td{padding:6px 5px}\n#tesipoki .tp-num{width:62px}\n}\n@media (min-width:900px){\n#tesipoki{padding:14px}\n#tesipoki .tp-main{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:start;gap:12px}\n#tesipoki .tp-me{order:1}\n#tesipoki .tp-card{order:2}\n#tesipoki .tp-opp{order:3}\n#tesipoki .tp-me,#tesipoki .tp-opp{position:sticky;top:12px}\n}\n\n<\/style>\n\n<div id=\"tesipoki\">\n<div class=\"tp-bar\">\n<button class=\"tp-burger\" type=\"button\" aria-label=\"Men\u00fc \u00f6ffnen\"><span><\/span><span><\/span><span><\/span><\/button>\n<div class=\"tp-levels\" role=\"group\" aria-label=\"Gegner-Stufe\">\n<button class=\"tp-lv\" type=\"button\" data-lv=\"easy\">Einfach<\/button>\n<button class=\"tp-lv on\" type=\"button\" data-lv=\"medium\">Mittel<\/button>\n<button class=\"tp-lv\" type=\"button\" data-lv=\"hard\">Schwer<\/button>\n<\/div>\n<button class=\"tp-new\" type=\"button\" aria-label=\"Neues Spiel\">\u21bb<span> Neues Spiel<\/span><\/button>\n<\/div>\n<div class=\"tp-strip\">\n<span class=\"tp-s-me\">Du 0<\/span>\n<span class=\"tp-s-round\">Runde 1\/13<\/span>\n<span class=\"tp-s-opp\">Gegner 0<\/span>\n<\/div>\n<div class=\"tp-main\">\n<section class=\"tp-panel tp-opp\">\n<div class=\"tp-compact tp-oppline\">\n<span class=\"tp-opp-sum\">Gegner wartet<\/span>\n<button class=\"tp-histbtn\" type=\"button\">Verlauf \u25be<\/button>\n<\/div>\n<div class=\"tp-full\">\n<div class=\"tp-opp-head\"><strong class=\"tp-opp-title\">Gegner (Mittel)<\/strong><span class=\"tp-opp-status\">wartet<\/span><\/div>\n<div class=\"tp-dice tp-odice\"><\/div>\n<div class=\"tp-opp-roll\">&nbsp;<\/div>\n<div class=\"tp-sub\">Was der Gegner macht:<\/div>\n<ul class=\"tp-log\"><li class=\"tp-muted\">Noch kein Zug.<\/li><\/ul>\n<div class=\"tp-last\"><small>Letzter Eintrag des Gegners:<\/small><b class=\"tp-last-v\">\u2013<\/b><\/div>\n<div class=\"tp-oppbtns\">\n<button class=\"tp-speed\" type=\"button\">\u00bb Schneller<\/button>\n<button class=\"tp-histbtn\" type=\"button\">Verlauf \u25be<\/button>\n<\/div>\n<\/div>\n<ul class=\"tp-hist\"><\/ul>\n<\/section>\n<section class=\"tp-panel tp-me\">\n<div class=\"tp-me-head\"><strong class=\"tp-me-title\">Du bist dran<\/strong><span class=\"tp-me-round\">Runde 1\/13<\/span><\/div>\n<div class=\"tp-dice tp-mdice\"><\/div>\n<button class=\"tp-roll\" type=\"button\">W\u00dcRFELN \u00b7 noch 3<\/button>\n<div class=\"tp-hint\">Tippe auf \u201eW\u00fcrfeln\u201c.<\/div>\n<\/section>\n<section class=\"tp-panel tp-card\">\n<table class=\"tp-table\">\n<thead><tr><th><\/th><th class=\"tp-num\">Du<\/th><th class=\"tp-num\">Gegner<\/th><\/tr><\/thead>\n<tbody><\/tbody>\n<\/table>\n<div class=\"tp-hint tp-cardhint\">gr\u00fcn = m\u00f6glicher Eintrag \u2013 antippen zum Eintragen<\/div>\n<\/section>\n<\/div>\n<div class=\"tp-ov tp-menu\" aria-hidden=\"true\">\n<div class=\"tp-drawer\" role=\"dialog\" aria-label=\"Men\u00fc\">\n<button class=\"tp-close\" type=\"button\" aria-label=\"Men\u00fc schlie\u00dfen\">\u2715<\/button>\n<a class=\"tp-back\" href=\"https:\/\/palanteinc.de\">\u2190 zur\u00fcck zu palanteinc.de<\/a>\n<div class=\"tp-sub tp-besth\">Deine Bestleistung<\/div>\n<div class=\"tp-best\"><b class=\"tp-best-v\">\u2013<\/b><small class=\"tp-best-d\">noch kein Spiel beendet<\/small><\/div>\n<div class=\"tp-note\">nur auf diesem Ger\u00e4t gespeichert<\/div>\n<details class=\"tp-rules\"><summary>Spielregeln<\/summary>\n<p>13 Runden. Pro Runde bis zu 3 W\u00fcrfe. Nach jedem Wurf kannst du W\u00fcrfel antippen, um sie zu halten. Danach tr\u00e4gst du dein Ergebnis in genau ein freies Feld ein. Passt nichts, streichst du ein Feld (0 Punkte).<\/p>\n<p><b>Oben:<\/b> Einser bis Sechser z\u00e4hlen nur die passenden Augen. Ab 63 Punkten oben gibt es 35 Bonuspunkte.<\/p>\n<p><b>Unten:<\/b> Dreier-\/Viererpasch = Summe aller W\u00fcrfel \u00b7 Full House (3+2 gleiche) = 25 \u00b7 Kleine Stra\u00dfe (4 in Folge) = 30 \u00b7 Gro\u00dfe Stra\u00dfe (5 in Folge) = 40 \u00b7 TesiPoki (5 gleiche) = 50 \u00b7 Chance = Summe aller W\u00fcrfel.<\/p>\n<\/details>\n<button class=\"tp-reset\" type=\"button\">Bestleistung zur\u00fccksetzen<\/button>\n<\/div>\n<\/div>\n<div class=\"tp-ov tp-end\" aria-hidden=\"true\">\n<div class=\"tp-modal\" role=\"dialog\">\n<div class=\"tp-end-t\">Spielende<\/div>\n<div class=\"tp-end-s\"><\/div>\n<div class=\"tp-end-b\"><\/div>\n<button class=\"tp-again\" type=\"button\">Nochmal spielen<\/button>\n<\/div>\n<\/div>\n<\/div>\n<link rel=\"stylesheet\" href=\"\/wp-content\/uploads\/tesipoki\/tesipoki.css\">\n<script src=\"\/wp-content\/uploads\/tesipoki\/tesipoki.js\"><\/script>\n\n\n\n<script>\n(function(){\nfunction tpInit(){\n(function(){\nvar root=document.getElementById('tesipoki');\nif(!root||root.getAttribute('data-ready'))return;\nroot.setAttribute('data-ready','1');\nfunction $(s){return root.querySelector(s);}\nfunction $$(s){return Array.prototype.slice.call(root.querySelectorAll(s));}\n\/* ===== ENGINE START ===== *\/\nvar CATS=[\n{n:'Einser',f:1},{n:'Zweier',f:2},{n:'Dreier',f:3},{n:'Vierer',f:4},{n:'F\u00fcnfer',f:5},{n:'Sechser',f:6},\n{n:'Dreierpasch'},{n:'Viererpasch'},{n:'Full House',h:'25'},{n:'Kl. Stra\u00dfe',h:'30'},{n:'Gr. Stra\u00dfe',h:'40'},{n:'TesiPoki',h:'50'},{n:'Chance'}];\nvar AVG=[2.1,5.3,8.6,12.2,15.7,19.2,21.7,13.1,22.6,29.5,32.7,16.9,22.0];\nfunction counts(d){var c=[0,0,0,0,0,0,0];for(var i=0;i<d.length;i++)c[d[i]]++;return c;}=\"\" function=\"\" scorecat(i,c){=\"\" var=\"\" sum=\"c[1]+2*c[2]+3*c[3]+4*c[4]+5*c[5]+6*c[6],mx=Math.max(c[1],c[2],c[3],c[4],c[5],c[6]);\" if(i<6)return=\"\" (i+1)*c[i+1];=\"\" if(i=\"==6)return\" mx=\"\">=3?sum:0;\nif(i===7)return mx&gt;=4?sum:0;\nif(i===8){var has3=false,has2=false;for(var f=1;f&lt;=6;f++){if(c[f]===3)has3=true;if(c[f]===2)has2=true;}return has3&amp;&amp;has2?25:0;}\nif(i===9){return (c[1]&amp;&amp;c[2]&amp;&amp;c[3]&amp;&amp;c[4])||(c[2]&amp;&amp;c[3]&amp;&amp;c[4]&amp;&amp;c[5])||(c[3]&amp;&amp;c[4]&amp;&amp;c[5]&amp;&amp;c[6])?30:0;}\nif(i===10){return (c[2]&amp;&amp;c[3]&amp;&amp;c[4]&amp;&amp;c[5]&amp;&amp;(c[1]||c[6]))?40:0;}\nif(i===11)return mx===5?50:0;\nreturn sum;}\nfunction upperSum(sc){var s=0;for(var i=0;i&lt;6;i++)if(sc[i]!==null)s+=sc[i];return s;}\nfunction lowerSum(sc){var s=0;for(var i=6;i&lt;13;i++)if(sc[i]!==null)s+=sc[i];return s;}\nfunction bonus(sc){return upperSum(sc)&gt;=63?35:0;}\nfunction total(sc){return upperSum(sc)+bonus(sc)+lowerSum(sc);}\nfunction key(c){return c[1]+6*c[2]+36*c[3]+216*c[4]+1296*c[5]+7776*c[6];}\nfunction multisets(n){var out=[];(function rec(f,left,c){if(f===6){c[6]=left;out.push(c.slice());return;}for(var k=0;k&lt;=left;k++){c[f]=k;rec(f+1,left-k,c);}})(1,n,[0,0,0,0,0,0,0]);return out;}\nvar FACT=[1,1,2,6,24,120];\nfunction prob(n,c){var p=FACT[n];for(var f=1;f&lt;=6;f++)p\/=FACT[c[f]];return p\/Math.pow(6,n);}\nvar STATES=multisets(5),SIDX={},KEEP=[],KIDX={},TRANS=[],SUBK=[],STAB=[];\nSTATES.forEach(function(c,i){SIDX[key(c)]=i;STAB.push(CATS.map(function(_,k){return scoreCat(k,c);}));});\nfor(var n=0;n&lt;=5;n++)multisets(n).forEach(function(c){KIDX[key(c)]=KEEP.length;KEEP.push({c:c,n:n});});\nvar OUTS=[];for(n=0;n&lt;=5;n++)OUTS.push(multisets(n).map(function(c){return {c:c,p:prob(n,c)};}));\nKEEP.forEach(function(k){var t=[];OUTS[5-k.n].forEach(function(o){var s=[0];for(var f=1;f&lt;=6;f++)s[f]=k.c[f]+o.c[f];t.push([SIDX[key(s)],o.p]);});TRANS.push(t);});\nSTATES.forEach(function(c){var list=[];(function rec(f,s){if(f===7){list.push(KIDX[key(s)]);return;}for(var k=0;k&lt;=c[f];k++){s[f]=k;rec(f+1,s);}})(1,[0,0,0,0,0,0,0]);SUBK.push(list);});\nfunction catValue(cat,s,sc,level){\nif(level==='medium')return s-0.3*AVG[cat];\nvar v=s-AVG[cat];\nif(cat&lt;6){var up=upperSum(sc);if(up&lt;63){var face=cat+1;v+=(s-3*face)*0.9;if(up+s&gt;=63)v+=22;}}\nreturn v;}\nfunction bestCat(c,sc,level){var best=-1,bv=-1e9,sidx=SIDX[key(c)];for(var k=0;k&lt;13;k++){if(sc[k]!==null)continue;var v=catValue(k,STAB[sidx][k],sc,level);if(v&gt;bv){bv=v;best=k;}}return best;}\nfunction buildPlan(sc,level){\nvar V0=STATES.map(function(c,i){var bv=-1e9;for(var k=0;k&lt;13;k++){if(sc[k]!==null)continue;var v=catValue(k,STAB[i][k],sc,level);if(v&gt;bv)bv=v;}return bv;});\nfunction ex(V){return TRANS.map(function(t){var e=0;for(var j=0;j<t.length;j++)e+=t[j][1]*v[t[j][0]];return e;});}=\"\" var=\"\" e1=\"ex(V0);\" v1=\"STATES.map(function(_,i){var\" m=\"-1e9,l=SUBK[i];for(var\" j=\"0;j&lt;l.length;j++)if(E1[l[j]]\">m)m=E1[l[j]];return m;});\nvar E2=ex(V1);\nreturn {E1:E1,E2:E2};}\nfunction decideKeep(c,rollsLeft,plan,level,rnd){\nvar E=rollsLeft===2?plan.E2:plan.E1,l=SUBK[SIDX[key(c)]].slice();\nl.sort(function(a,b){return E[b]-E[a];});\nvar pick=l[0];\nif(level==='medium'&amp;&amp;l.length&gt;1&amp;&amp;rnd()&lt;0.3)pick=l[1];\nreturn KEEP[pick].c;}\nfunction easyKeep(c,sc){\nvar bestF=0,bestN=0;for(var f=6;f&gt;=1;f--){if(c[f]&gt;bestN){bestN=c[f];bestF=f;}}\nvar k=[0,0,0,0,0,0,0];\nif(bestN&gt;=2){k[bestF]=bestN;return k;}\nif((sc[9]===null||sc[10]===null)){var runs=[[1,2,3,4],[2,3,4,5],[3,4,5,6]];for(var r=0;r&lt;3;r++){var ok=runs[r].every(function(x){return c[x]&gt;0;});if(ok){runs[r].forEach(function(x){k[x]=1;});return k;}}}\nif(c[6]){k[6]=1;}\nreturn k;}\nfunction easyCat(c,sc,rnd){\nvar sidx=SIDX[key(c)],list=[];for(var k=0;k&lt;13;k++)if(sc[k]===null)list.push([k,STAB[sidx][k]]);\nlist.sort(function(a,b){return b[1]-a[1];});\nif(list[0][1]===0)return list[Math.floor(rnd()*list.length)][0];\nif(list.length&gt;1&amp;&amp;list[1][1]&gt;0&amp;&amp;rnd()&lt;0.25)return list[1][0];\nreturn list[0][0];}\nfunction aim(k){\nvar n=0,mx=0,pairs=0,f;for(f=1;f&lt;=6;f++){n+=k[f];if(k[f]&gt;mx)mx=k[f];if(k[f]&gt;=2)pairs++;}\nif(n===0)return 'w\u00fcrfelt alle neu';\nvar run=0,best=0;for(f=1;f&lt;=6;f++){run=k[f]?run+1:0;if(run&gt;best)best=run;}\nif(mx===1&amp;&amp;best&gt;=3)return 'zielt auf Stra\u00dfe';\nif(mx&gt;=4)return 'zielt auf TesiPoki\/Viererpasch';\nif(mx===3&amp;&amp;pairs===2)return 'Full House';\nif(pairs===2)return 'zielt auf Full House';\nif(mx&gt;=2)return 'zielt auf Pasch';\nreturn 'zielt auf hohe Augen';}\n\/* ===== ENGINE END ===== *\/\nvar LV={easy:'Einfach',medium:'Mittel',hard:'Schwer'};\nvar PIPS={1:[4],2:[0,8],3:[0,4,8],4:[0,2,6,8],5:[0,2,4,6,8],6:[0,2,3,5,6,8]};\nvar st,gid=0,level='medium',fast=false,busy=false;\ntry{var sv=localStorage.getItem('tesipoki_fast');fast=sv==='1';var lv=localStorage.getItem('tesipoki_level');if(LV[lv])level=lv;}catch(e){}\nfunction rnd(){return Math.random();}\nfunction d6(){return 1+Math.floor(Math.random()*6);}\nfunction sleep(ms){return new Promise(function(r){setTimeout(r,ms);});}\nfunction D(ms){return fast?Math.round(ms*0.3):ms;}\nfunction mkDice(sel){var box=$(sel);box.innerHTML='';for(var i=0;i&lt;5;i++){var d=document.createElement('div');d.className='tp-die empty';d.setAttribute('data-i',i);for(var j=0;j&lt;9;j++)d.appendChild(document.createElement('i'));box.appendChild(d);}return $$(sel+' .tp-die');}\nvar mEls=mkDice('.tp-mdice'),oEls=mkDice('.tp-odice');\nfunction paint(el,v,held){el.classList.toggle('empty',!v);el.classList.toggle('held',!!held);var ps=el.children,on=v?PIPS[v]:[];for(var j=0;j&lt;9;j++)ps[j].className=on.indexOf(j)&gt;=0?'on':'';}\nfunction animate(els,idx,finals,ms){\nreturn new Promise(function(res){\nidx.forEach(function(i){els[i].classList.add('rolling');els[i].classList.remove('held');});\nvar iv=setInterval(function(){idx.forEach(function(i){paint(els[i],d6(),false);});},70);\nsetTimeout(function(){clearInterval(iv);idx.forEach(function(i){els[i].classList.remove('rolling');paint(els[i],finals[i],false);});res();},ms);});}\nvar tbody=$('.tp-table tbody'),ROWS=[0,1,2,3,4,5,'up','bo',6,7,8,9,10,11,12,'lo','tot'];\nROWS.forEach(function(r){var tr=document.createElement('tr');\nvar name=typeof r==='number'?CATS[r].n+(CATS[r].h?'<small>'+CATS[r].h+'<\/small>':''):{up:'Summe oben',bo:'Bonus <small>ab 63: +35<\/small>',lo:'Summe unten',tot:'GESAMT'}[r];\nif(typeof r!=='number')tr.className=r==='tot'?'tp-tot':'tp-sum';\ntr.innerHTML=''+name+'';\ntbody.appendChild(tr);});\nfunction cell(who,r){return $('.tp-'+who+'-c[data-r=\"'+r+'\"]');}\nfunction newGame(lvl){\ngid++;busy=false;if(lvl)level=lvl;\ntry{localStorage.setItem('tesipoki_level',level);}catch(e){}\nst={me:Array(13).fill(null),op:Array(13).fill(null),dice:[0,0,0,0,0],held:[false,false,false,false,false],rolls:3,phase:'player',od:[0,0,0,0,0],oh:[false,false,false,false,false],log:[],hist:[],last:'\u2013',oroll:''};\nroot.classList.remove('tp-oppturn');closeOv();render();}\nfunction started(){return st.phase!=='over'&amp;&amp;(st.rolls&lt;3||st.me.some(function(x){return x!==null;}));}\nfunction render(){\n$$('.tp-lv').forEach(function(b){b.classList.toggle('on',b.getAttribute('data-lv')===level);});\nvar mt=total(st.me),ot=total(st.op),done=st.me.filter(function(x){return x!==null;}).length;\nvar round=Math.min(13,done+(st.phase==='opp'?0:1));\n$('.tp-s-me').textContent='Du '+mt;$('.tp-s-opp').textContent='Gegner '+ot;\n$('.tp-s-round').textContent=st.phase==='over'?'Spielende':'Runde '+round+'\/13';\n$('.tp-me-round').textContent='Runde '+round+'\/13';\n$('.tp-me-title').textContent=st.phase==='player'?'Du bist dran':(st.phase==='over'?'Spiel beendet':'Gegner ist dran');\nmEls.forEach(function(el,i){paint(el,st.dice[i],st.held[i]);});\noEls.forEach(function(el,i){paint(el,st.od[i],st.oh[i]);});\nvar rb=$('.tp-roll');\nif(st.phase!=='player'){rb.disabled=true;rb.textContent=st.phase==='over'?'Spiel beendet':'Gegner ist dran \u2026';}\nelse if(st.rolls&gt;0){rb.disabled=busy;rb.textContent='W\u00dcRFELN \u00b7 noch '+st.rolls;}\nelse{rb.disabled=true;rb.textContent='Feld im Block w\u00e4hlen';}\n$('.tp-me .tp-hint').textContent=st.phase!=='player'?'':st.rolls===3?'Tippe auf \u201eW\u00fcrfeln\u201c.':st.rolls&gt;0?'W\u00fcrfel antippen = halten \u00b7 oder Feld im Block w\u00e4hlen':'W\u00e4hle ein Feld im Block.';\nvar c=counts(st.dice),canPick=st.phase==='player'&amp;&amp;st.rolls&lt;3&amp;&amp;!busy;\nROWS.forEach(function(r){\nvar me=cell('me',r),op=cell('op',r);\nif(typeof r==='number'){\nop.textContent=st.op[r]===null?'':st.op[r];\nme.classList.remove('can');\nif(st.me[r]!==null)me.textContent=st.me[r];\nelse if(canPick){var s=scoreCat(r,c);me.innerHTML='<span class=\"tp-pv'+(s?'':' zero')+'\">'+s+'<\/span>';me.classList.add('can');}\nelse me.textContent='';\n}else{\nvar f={up:upperSum,bo:bonus,lo:lowerSum,tot:total}[r];\nme.textContent=r==='up'?upperSum(st.me)+'\/63':f(st.me);\nop.textContent=r==='up'?upperSum(st.op)+'\/63':f(st.op);}});\n$('.tp-opp-title').textContent='Gegner ('+LV[level]+')';\n$('.tp-opp-status').textContent=st.phase==='opp'?'ist dran \u2026':'wartet';\n$('.tp-opp-roll').innerHTML=st.oroll||'&nbsp;';\nvar log=$('.tp-log');log.innerHTML=st.log.length?'':'<li class=\"tp-muted\">Noch kein Zug.<\/li>';\nst.log.forEach(function(t){var li=document.createElement('li');li.textContent=t;log.appendChild(li);});\n$('.tp-last-v').textContent=st.last;\n$('.tp-opp-sum').textContent='Gegner ('+LV[level]+'): '+(st.last==='\u2013'?'noch kein Zug':st.last);\nvar h=$('.tp-hist');h.innerHTML=st.hist.length?'':'<li class=\"tp-muted\">Noch kein Verlauf.<\/li>';\nst.hist.forEach(function(t){var li=document.createElement('li');li.textContent=t;h.appendChild(li);});\n$('.tp-speed').textContent=fast?'Normales Tempo':'\u00bb Schneller';}\nfunction mobile(){return window.matchMedia('(max-width:899px)').matches;}\nfunction show(el){if(!mobile())return;var r=el.getBoundingClientRect();if(r.top&lt;0||r.top&gt;window.innerHeight*0.6){try{el.scrollIntoView({behavior:'smooth',block:'start'});}catch(e){el.scrollIntoView();}}}\n$('.tp-roll').addEventListener('click',function(){\nif(st.phase!=='player'||st.rolls&lt;=0||busy)return;\nvar my=gid,idx=[];for(var i=0;i&lt;5;i++)if(!st.held[i])idx.push(i);\nif(!idx.length)return;\nidx.forEach(function(i){st.dice[i]=d6();});st.rolls--;busy=true;render();\nanimate(mEls,idx,st.dice,450).then(function(){if(my!==gid)return;busy=false;render();});});\nmEls.forEach(function(el,i){el.addEventListener('click',function(){\nif(st.phase!=='player'||busy||st.rolls===3||st.rolls===0)return;\nst.held[i]=!st.held[i];render();});});\ntbody.addEventListener('click',function(e){\nvar td=e.target.closest('td.tp-me-c');if(!td||!td.classList.contains('can'))return;\nvar r=+td.getAttribute('data-r'),s=scoreCat(r,counts(st.dice));\nif(s===0&amp;&amp;!window.confirm(CATS[r].n+' streichen (0 Punkte)?'))return;\nst.me[r]=s;st.phase='opp';render();oppTurn();});\nasync function oppTurn(){\nvar my=gid;busy=false;\nst.dice=[0,0,0,0,0];st.held=[false,false,false,false,false];st.rolls=3;\nst.od=[0,0,0,0,0];st.oh=[false,false,false,false,false];st.log=[];st.oroll='';\nroot.classList.add('tp-oppturn');render();show($('.tp-opp'));\nvar plan=level==='easy'?null:buildPlan(st.op,level);\nawait sleep(D(700));if(my!==gid)return;\nfor(var roll=1;roll&lt;=3;roll++){\nvar idx=[];for(var i=0;i&lt;5;i++)if(!st.oh[i])idx.push(i);\nidx.forEach(function(i){st.od[i]=d6();});\nst.oroll='Wurf '+roll+' von 3';render();\nawait animate(oEls,idx,st.od,D(500));if(my!==gid)return;\noEls.forEach(function(el,i){paint(el,st.od[i],st.oh[i]);});\nst.log.push('Wurf '+roll+': '+st.od.join('-'));render();\nawait sleep(D(800));if(my!==gid)return;\nif(roll===3)break;\nvar c=counts(st.od),k;\nif(level==='easy'){\nvar top=0;for(var q=0;q&lt;13;q++)if(st.op[q]===null&amp;&amp;STAB[SIDX[key(c)]][q]&gt;top)top=STAB[SIDX[key(c)]][q];\nif(roll===2&amp;&amp;top&gt;=20&amp;&amp;rnd()&lt;0.3){st.log.push('ist zufrieden');render();break;}\nk=easyKeep(c,st.op);}\nelse k=decideKeep(c,3-roll,plan,level,rnd);\nvar nk=0;for(var f=1;f&lt;=6;f++)nk+=k[f];\nif(nk===5){st.oh=[true,true,true,true,true];st.log.push('ist zufrieden \u2013 h\u00f6rt auf zu w\u00fcrfeln');render();await sleep(D(600));break;}\nvar rest=k.slice(),held=[];\nst.oh=st.od.map(function(v){if(rest[v]&gt;0){rest[v]--;held.push(v);return true;}return false;});\nst.log.push(nk?'h\u00e4lt '+held.join(', ')+' \u2192 '+aim(k):aim(k));render();\nawait sleep(D(900));if(my!==gid)return;}\nvar cc=counts(st.od),cat=level==='easy'?easyCat(cc,st.op,rnd):bestCat(cc,st.op,level),sc=scoreCat(cat,cc);\nst.op[cat]=sc;\nvar rnum=st.op.filter(function(x){return x!==null;}).length;\nst.last=CATS[cat].n+' \u2192 '+sc+' Punkte';\nst.log.push(sc?'tr\u00e4gt ein: '+st.last:'streicht '+CATS[cat].n);\nst.hist.unshift('Runde '+rnum+': '+st.od.join('-')+' \u2192 '+(sc?CATS[cat].n+' '+sc:CATS[cat].n+' gestrichen'));\nst.oroll='';render();\nvar oc=cell('op',cat);oc.classList.remove('flash');void oc.offsetWidth;oc.classList.add('flash');setTimeout(function(){oc.classList.remove('flash');},1700);\nawait sleep(D(1300));if(my!==gid)return;\nroot.classList.remove('tp-oppturn');\nif(st.op.every(function(x){return x!==null;})&amp;&amp;st.me.every(function(x){return x!==null;})){st.phase='over';render();endGame();return;}\nst.phase='player';render();show($('.tp-me'));}\nfunction loadBest(){try{return JSON.parse(localStorage.getItem('tesipoki_best')||'null');}catch(e){return null;}}\nfunction renderBest(){var b=loadBest();\n$('.tp-best-v').textContent=b?b.score+' Punkte':'\u2013';\n$('.tp-best-d').textContent=b?b.date+' \u00b7 gegen '+(LV[b.level]||b.level):'noch kein Spiel beendet';}\nfunction endGame(){\nvar mt=total(st.me),ot=total(st.op),b=loadBest(),isNew=!b||mt&gt;b.score;\nif(isNew){var d=new Date(),ds=('0'+d.getDate()).slice(-2)+'.'+('0'+(d.getMonth()+1)).slice(-2)+'.'+d.getFullYear();\ntry{localStorage.setItem('tesipoki_best',JSON.stringify({score:mt,date:ds,level:level}));}catch(e){}}\n$('.tp-end-t').textContent=mt&gt;ot?'Gewonnen! \ud83c\udf89':mt<\/t.length;j++)e+=t[j][1]*v[t[j][0]];return><\/d.length;i++)c[d[i]]++;return>\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Einfach Mittel Schwer \u21bb Neues Spiel Du 0 Runde 1\/13 Gegner 0 Gegner wartet Verlauf \u25be Gegner (Mittel)wartet &nbsp; Was der Gegner macht: Noch kein Zug. Letzter Eintrag des Gegners:\u2013 \u00bb Schneller Verlauf \u25be Du bist dranRunde 1\/13 W\u00dcRFELN \u00b7 noch 3 Tippe auf \u201eW\u00fcrfeln\u201c. Du Gegner gr\u00fcn = m\u00f6glicher Eintrag \u2013 antippen zum Eintragen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1032,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1656","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/pages\/1656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/comments?post=1656"}],"version-history":[{"count":2,"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/pages\/1656\/revisions"}],"predecessor-version":[{"id":1658,"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/pages\/1656\/revisions\/1658"}],"up":[{"embeddable":true,"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/pages\/1032"}],"wp:attachment":[{"href":"https:\/\/palanteinc.de\/en\/wp-json\/wp\/v2\/media?parent=1656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}