-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
1 lines (1 loc) · 2.5 KB
/
index.js
1
var e=(e,a)=>{var t=["#5E9967"],r=[["#994749","X"],["#2B719A","O"]],n=[[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]],s=$(".top-wrapper");t=$("<div/>").addClass("board").appendTo(document.body);anime.set(t[0],{translateX:"-50%",translateY:"-50%"});var i=new Array(9).fill(!0).map((e,a)=>{var r=$("<div/>").addClass("board-square").appendTo(t).on("click",()=>p(a));return a%3==2&&a<8&&$("<br/>").appendTo(t),r}),o=new Array(9).fill(!1),l=[],d=()=>{var e=[2*s.outerHeight()+20,20,20,20],a=$(window),r=Math.min((a.width()-(e[1]+e[3]))/t.width(),(a.height()-(e[0]+e[2]))/t.height());anime.set(t[0],{scale:r})};d(),setTimeout(()=>d(),200),$(window).on("resize",()=>d());var u=!0,m=(a,n)=>{var s=r[n],o=i[a].addClass("disabled"),d=$("<div/>").addClass("board-piece").html(s[1]).css({color:s[0]}).appendTo(o);l[a]=d,anime.set(d[0],{translateX:"-50%",translateY:"-50%"}),anime({targets:d[0],scale:[0,1],duration:1e3,easing:"easeOutElastic"}),t[(u=n!=e)?"removeClass":"addClass"]("disabled"),g(!u)},v=a=>(u=!1,t.addClass("disabled"),"tie"==a.r?h("It’s a tie!","#FFFFFF"):(h(a.w==e?"You win!":"Opponent wins!",r[a.w][0]),a.i.forEach(e=>{var t=r[a.w][0];i[e].css({backgroundColor:"".concat(t,4==t.length?"3":"33")});var n=l[e];anime({targets:n[0],scale:1.2,easing:"easeInOutQuart",duration:400,complete:()=>{var e=()=>{anime({targets:n[0],scale:1.1,easing:"easeInQuart",duration:400,complete:()=>{anime({targets:n[0],scale:1.2,easing:"easeOutQuart",duration:400,complete:()=>e()})}})};e()}})})),!0),c=()=>{var t=e=>n.some(a=>a.every(a=>o[a]===e)),r=t(e)?e:t(a)?a:null;return null!=r?v({r:"win",w:r,i:n.find(e=>e.every(e=>o[e]===r))}):o.some(e=>!1===e)?void 0:v({r:"tie"})},p=t=>{if(u&&!1===o[t]){m(t,e),o[t]=e;c()||setTimeout(()=>{var t=n.some(a=>{var t=a.some(a=>o[a]===e);if(t){var r=a.filter(a=>o[a]===e).length;return r>1&&r}return t}),r=new Array(9).fill(!0).map((e,a)=>a).filter(e=>!1===o[e]);if(t){var s=n.filter(t=>{if(t.some(a=>o[a]===e)){if(t.some(e=>o[e]===a))return!1;var r=t.filter(a=>o[a]===e).length;if(r>1)return r}return!1});s.length&&(r=s[Math.floor(Math.random()*s.length)])}var i=r.filter(e=>!1===o[e]),l=i[Math.floor(Math.random()*i.length)];m(l,a),o[l]=a,c()},400)}},h=(e,a)=>{var t=$(".top-text");anime({targets:t[0],translateY:"-150%",duration:200,easing:"easeInQuart",complete:()=>{anime({targets:t.html(e).css({color:a})[0],translateY:"0%",duration:200,easing:"easeOutQuart",complete:()=>d()}),d()}})},g=t=>{h(t?"It’s your opponent’s turn!":"It’s your turn!",r[t?a:e][0])};g()},a=Math.floor(2*Math.random());e(a,a?0:1);