1import{_ as X,r as v,b as G,aE as w,e as o,f as l,aJ as t,aR as I,aL as f,aS as L,aU as P,aI as k,aX as V,aY as z}from"./B7W8xUR6.js";const B={class:"ttt-container"},x={class:"score-board"},Y={class:"score-item player"},F={class:"score-value"},H={class:"score-item computer"},J={class:"score-value"},Z={class:"game-options"},$={class:"difficulty"},j={class:"game-status"},q={key:0},K={key:0},Q={key:1},ee={key:1},te={key:0},se={key:1},ae={key:2},oe={key:3},le={key:4},ne={key:0,class:"victory-animation"},re=["onClick"],N="X",E="O",O=10,ue={__name:"GameTicTacToe",setup(ie){const a=v(Array(9).fill("")),i=v(!1),d=v(!1),m=v("medium"),_=v(0),y=v(0),c=v(!1),r=v(null),b=[[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]];G([_,y],([s,e])=>{s>=O?(r.value="player",c.value=!0):e>=O&&(r.value="computer",c.value=!0)});const p=w(()=>{for(const s of b){const[e,n,u]=s;if(a.value[e]&&a.value[e]===a.value[n]&&a.value[e]===a.value[u])return i.value=!0,a.value[e]}return null}),g=w(()=>!p.value&&a.value.every(s=>s!=="")),D=s=>{if(!(a.value[s]!==""||i.value||d.value||c.value)){if(a.value[s]=N,p.value){i.value=!0,r.value||_.value++;return}else if(g.value){i.value=!0;return}R()}},R=()=>{d.value=!0,setTimeout(()=>{const s=U();s!==-1&&(a.value[s]=E,p.value?(i.value=!0,r.value||y.value++):g.value&&(i.value=!0)),d.value=!1},700)},U=()=>{if(m.value==="easy")return T();const s=C(E);if(s!==-1)return s;const e=C(N);if(e!==-1)return e;if(m.value==="hard"){if(a.value[4]==="")return 4;const u=[0,2,6,8].filter(h=>a.value[h]==="");if(u.length>0)return u[Math.floor(Math.random()*u.length)]}return T()},C=s=>{for(let e=0;e<9;e++){if(a.value[e]!=="")continue;a.value[e]=s;let n=!1;for(const u of b){const[h,W,A]=u;if(a.value[h]===s&&a.value[W]===s&&a.value[A]===s){n=!0;break}}if(a.value[e]="",n)return e}return-1},T=()=>{const s=[];for(let e=0;e<9;e++)a.value[e]===""&&s.push(e);return s.length===0?-1:s[Math.floor(Math.random()*s.length)]},M=()=>{a.value=Array(9).fill(""),i.value=!1,d.value=!1},S=()=>{_.value=0,y.value=0,r.value=null,c.value=!1,M()};return(s,e)=>(l(),o("div",B,[e[8]||(e[8]=t("h2",null,"Tic Tac Toe",-1)),t("div",x,[t("div",Y,[e[1]||(e[1]=t("span",{class:"score-label"},"Spieler",-1)),t("span",F,f(_.value),1)]),e[3]||(e[3]=t("div",{class:"score-item vs"},"vs",-1)),t("div",H,[e[2]||(e[2]=t("span",{class:"score-label"},"Computer",-1)),t("span",J,f(y.value),1)])]),t("div",Z,[e[6]||(e[6]=t("div",{class:"player-selection"},[t("span",null,"Spieler: X"),t("span",null,"Computer: O")],-1)),t("div",$,[e[5]||(e[5]=t("label",null,"Schwierigkeit: ",-1)),L(t("select",{"onUpdate:modelValue":e[0]||(e[0]=n=>m.value=n)},e[4]||(e[4]=[t("option",{value:"easy"},"Leicht",-1),t("option",{value:"medium"},"Mittel",-1),t("option",{value:"hard"},"Schwer",-1)]),512),[[P,m.value]])])]),t("div",j,[r.value?(l(),o("p",q,[r.value==="player"?(l(),o("span",K,"Turniersieg! ð")):(l(),o("span",Q,"Computer gewinnt das Turnier! ð¤"))])):p.value?(l(),o("p",ee,[p.value==="X"?(l(),o("span",te,"Du hast gewonnen! ð")):(l(),o("span",se,"Computer hat gewonnen! ð»"))])
1):g.value?(l(),o("p",ae,"Unentschieden! ð¤")):d.value?(l(),o("p",oe,"Computer denkt nach... ð¤")):(l(),o("p",le,"Du bist am Zug"))]),c.value?(l(),o("div",ne,[t("div",{class:k(["victory-content",{"player-victory":r.value==="player","computer-victory":r.value==="computer"}])},[t("h3",null,f(r.value==="player"?"DU HAST GEWONNEN!":"COMPUTER GEWINNT!"),1),e[7]||(e[7]=t("div",{class:"trophy"},"ð",-1)),t("p",null,f(r.value==="player"?"10 Siege erreicht!":"Der Computer hat 10 Siege erreicht!"),1),t("button",{onClick:S,class:"reset-score-button"},"Neues Turnier")],2)])):I("",!0),t("div",{class:k(["game-board",{blur:c.value}])},[(l(!0),o(V,null,z(a.value,(n,u)=>(l(),o("div",{key:u,class:k(["cell",{x:n==="X",o:n==="O",disabled:n!==""||i.value||d.value||c.value}]),onClick:h=>D(u)},f(n),11,re))),128))],2),t("div",{class:"button-container"},[t("button",{class:"reset-button",onClick:M},"Neues Spiel"),t("button",{class:"reset-score-button secondary",onClick:S},"Score zurücksetzen")])]))}},ce=X(ue,[["__scopeId","data-v-573e4e97"]]);export{ce as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.