UNPKG

@andreabiagini5/applicazioni-e-servizi-web-project

Version:
2 lines (1 loc) 8.36 kB
import{G as $,c as d,o as u,h as re,d as C,v as ee,x as j,z as f,a as n,u as t,V as ae,w as r,O as se,e as v,m as y,N as le,D as oe,E as Q,C as te,K as M,H as x,L as ce,M as m,F as S,B as ie,n as ue,P as ne,j as g,y as _,A as b,b as h,i as me,Q as de}from"./index-DBK_HSPz.js";import{u as A}from"./userStore-B6qoS3VK.js";const ge={};function pe(s,e){return u(),d("img",{src:re,alt:"Landing Icon",class:"position-absolute top-0 start-0 m-3",onClick:e[0]||(e[0]=a=>s.$router.push("/"))})}const fe=$(ge,[["render",pe],["__scopeId","data-v-e46d8398"]]),_e="/assets/user-placeholder-Dn4yOYxt.jpg",k=C({__name:"PlayerInMatch",props:{username:{},ratingChange:{}},setup(s){const e=s,a=ee(0);return j(()=>{e.username!="bot"&&f.emit("getRating",e.username,i=>{a.value=i,console.log(i)})}),(i,l)=>(u(),d("div",null,[n(t(ae),{text:"center"},{default:r(()=>[n(t(se),null,{default:r(()=>[v(y(s.username),1)]),_:1}),n(t(le),{src:t(_e),top:"",alt:"..."},null,8,["src"]),n(t(oe),null,{default:r(()=>[n(t(Q),null,{default:r(()=>[v("Rating: "+y(a.value),1)]),_:1}),n(t(Q),null,{default:r(()=>[v("Prize: "+y(e.ratingChange),1)]),_:1}),n(t(te),{tag:"a",href:"#!",color:"primary"},{default:r(()=>[...l[0]||(l[0]=[v("Profile",-1)])]),_:1})]),_:1})]),_:1})]))}}),ye="/assets/1-Bb_MLIzb.png",he="/assets/2-ChU5ojxC.png",ve="/assets/3-BrR9HeJg.png",be="/assets/4-BBn_e9q2.png",Ce="/assets/5-DcTe6OtT.png",we={class:"grains-container"},Me={key:0,src:ye},ke={key:1,src:he},$e={key:2,src:ve},xe={key:3,src:be},Re={key:4,src:Ce},je=C({__name:"Pile",props:["numberOfGrains"],setup(s){return(e,a)=>(u(),d("div",we,[s.numberOfGrains==1?(u(),d("img",Me)):M("",!0),s.numberOfGrains==2?(u(),d("img",ke)):M("",!0),s.numberOfGrains==3?(u(),d("img",$e)):M("",!0),s.numberOfGrains==4?(u(),d("img",xe)):M("",!0),s.numberOfGrains==5?(u(),d("img",Re)):M("",!0)]))}}),Se=$(je,[["__scopeId","data-v-0c98efa3"]]),Ae=["id","onClick"],Z=C({__name:"Grid",setup(s){const e=x(),a=A();function i(l,o){var c;if(!e.moveInProgress){console.log(`Pressed cell ${l}, ${o}. Cell:`,e.currentState[l][o]);const p=a.username==e.player1?"player1":a.username==e.player2?"player2":"";(c=document.getElementById(`${l}-${o}`))!=null&&c.classList.contains(p)&&(console.log("Emitting move"),f.emit("addMove",e.id,a.username,l,o))}}return(l,o)=>(u(),d("div",{class:"grid d-grid",style:ce([`grid-template-columns: repeat(${t(m)}, 1fr);`,"border: 0.8vw solid","border-radius: 20px",t(e).turn==t(a).username?"border-color: green":"border-color: gray","padding: 4%","aspect-ratio: 1","height: 80%","box-sizing: unset"])},[(u(!0),d(S,null,ie(t(m)*t(m),c=>{var p,w,B,I,O,P,E,G,W,T,U,V,z,D,L,N,F,Y,H,K,q,J;return u(),d("button",{key:c,id:`${Math.floor((c-1)/t(m))}-${(c-1)%t(m)}`,onClick:Te=>i(Math.floor((c-1)/t(m)),(c-1)%t(m)),class:ue(["grid-button d-flex justify-content-center align-items-center",[(((O=(I=(B=(w=(p=t(e))==null?void 0:p.currentState)==null?void 0:w[Math.floor((c-1)/t(m))])==null?void 0:B[(c-1)%t(m)])==null?void 0:I.pile)==null?void 0:O.owner)??null)==((P=t(e))==null?void 0:P.player1)?"player1":(((U=(T=(W=(G=(E=t(e))==null?void 0:E.currentState)==null?void 0:G[Math.floor((c-1)/t(m))])==null?void 0:W[(c-1)%t(m)])==null?void 0:T.pile)==null?void 0:U.owner)??null)==((V=t(e))==null?void 0:V.player2)?"player2":"",(((F=(N=(L=(D=(z=t(e))==null?void 0:z.currentState)==null?void 0:D[Math.floor((c-1)/t(m))])==null?void 0:L[(c-1)%t(m)])==null?void 0:N.pile)==null?void 0:F.owner)??null)!=t(e).turn?"inactive":""]])},[n(Se,{"number-of-grains":((J=(q=(K=(H=(Y=t(e))==null?void 0:Y.currentState)==null?void 0:H[Math.floor((c-1)/t(m))])==null?void 0:K[(c-1)%t(m)])==null?void 0:q.pile)==null?void 0:J.numberOfGrains)??0},null,8,["number-of-grains"])],10,Ae)}),128))],4))}});function Be(s,e){const a=Math.pow(10,e);return Math.round(s*a)/a}var R=(s=>(s.WinA="WinA",s.WinB="WinB",s))(R||{});const Ie=32,X=(s,e,a)=>{const i=Oe(s,e);let l;switch(a){case"WinA":l=1;break;case"WinB":l=0;break}const o=Ie*(l-i);return Be(o,1)},Oe=(s,e)=>1/(1+Math.pow(10,(e-s)/400)),Pe=C({__name:"Match",setup(s){const e=x(),a=A();return j(()=>{let i=Promise.resolve();f.on("move",(l,o,c)=>{i=i.then(async()=>{console.log("Move received from server"),await e.applyMove(l,o,c)}).catch(p=>{console.error("Error processing move:",p)})}),f.on("over",l=>{e.winner=l,console.log(`The winner is ${l}!`)}),f.emit("getMatch",e.id,(l,o,c)=>{l?console.error("Error getting match",l):(e.currentState=o.initialState.state,e.player1=o.player1,e.player2=o.player2,e.turn=e.player1,e.whichPlayerAmI=c,a.username=e.whichPlayerAmI==1?e.player1:e.player2),f.emit("getRating",e.player1,p=>{e.player2!="bot"?f.emit("getRating",e.player2,w=>{e.player1RatingChange=X(p,w,R.WinA),e.player2RatingChange=X(w,p,R.WinA)}):(e.player1RatingChange=0,e.player2RatingChange=0)})})}),ne(()=>{f.off("move"),f.off("over")}),(i,l)=>(u(),d(S,null,[n(t(g),{class:"d-xl-none mx-5 my-1",center:""},{default:r(()=>[n(Z)]),_:1}),n(t(g),{class:"d-xl-none my-5",center:""},{default:r(()=>[n(t(_),{md:"6",class:"d-flex justify-content-center align-items-center"},{default:r(()=>[n(k,{class:"player-in-match",username:t(e).player1,"rating-change":t(e).player1RatingChange},null,8,["username","rating-change"])]),_:1}),n(t(_),{md:"6",class:"d-flex justify-content-center align-items-center"},{default:r(()=>[n(k,{class:"player-in-match",username:t(e).player2,"rating-change":t(e).player2RatingChange},null,8,["username","rating-change"])]),_:1})]),_:1}),n(t(g),{class:"d-none d-xl-flex",center:""},{default:r(()=>[n(t(_),{md:"3",class:"d-flex justify-content-center align-items-center"},{default:r(()=>[n(k,{class:"player-in-match",username:t(e).player1,"rating-change":t(e).player1RatingChange},null,8,["username","rating-change"])]),_:1}),n(t(_),{md:"6",class:"d-flex justify-content-center",style:{"aspect-ratio":"1"}},{default:r(()=>[n(Z)]),_:1}),n(t(_),{md:"3",class:"d-flex justify-content-center align-items-center"},{default:r(()=>[n(k,{class:"player-in-match",username:t(e).player2,"rating-change":t(e).player2RatingChange},null,8,["username","rating-change"])]),_:1})]),_:1})],64))}}),Ee=$(Pe,[["__scopeId","data-v-3cd3edd3"]]),Ge=C({__name:"MatchOver",setup(s){const e=x(),a=A(),i=ee(0);return j(()=>{e.winner==e.player1?i.value=e.player1RatingChange:e.winner==e.player2&&(i.value=e.player2RatingChange),e.winner!=a.username&&(i.value=-i.value)}),ne(()=>{e.$reset()}),(l,o)=>(u(),b(t(me),{class:"vh-75 d-flex justify-content-center"},{default:r(()=>[n(t(_),{style:{height:"fit-content",width:"fit-content"}},{default:r(()=>[n(t(g),{class:"justify-content-center align-items-center text-center",style:{"min-height":"17vh"}},{default:r(()=>[...o[1]||(o[1]=[h("h1",null,"Match is over",-1)])]),_:1}),n(t(g),{class:"d-flex flex-column align-content-center",style:{"min-height":"35vh"}},{default:r(()=>[t(e).player2!="bot"&&t(e).winner==t(a).username?(u(),b(t(g),{key:0,class:"justify-content-center align-items-center sub-element",style:{"border-color":"green",color:"green"}},{default:r(()=>[...o[2]||(o[2]=[h("p",null,"You won!",-1)])]),_:1})):t(e).player2!="bot"&&t(e).winner!=t(a).username?(u(),b(t(g),{key:1,class:"justify-content-center align-items-center sub-element",style:{"border-color":"red",color:"red"}},{default:r(()=>[h("p",null,y(t(e).winner)+" won",1)]),_:1})):(u(),b(t(g),{key:2,class:"justify-content-center align-items-center sub-element",style:{"border-color":"red",color:"red"}},{default:r(()=>[...o[3]||(o[3]=[h("p",null,"You lost!",-1)])]),_:1})),n(t(g),{class:"justify-content-center align-items-center sub-element",style:{"border-color":"darkorange",color:"darkorange"}},{default:r(()=>[h("p",null,[v(y(t(a).eloPoints)+" ",1),h("strong",null,y(i.value>0?"+":"")+y(i.value),1)])]),_:1})]),_:1}),n(t(g),{class:"justify-content-center align-items-center text-center",style:{"min-height":"10vh"}},{default:r(()=>[n(t(te),{color:"primary",class:"w-25 py-3",onClick:o[0]||(o[0]=c=>l.$router.push("/play"))},{default:r(()=>[...o[4]||(o[4]=[v("Back",-1)])]),_:1})]),_:1})]),_:1})]),_:1}))}}),We=$(Ge,[["__scopeId","data-v-8b4fdaee"]]),ze=C({__name:"MatchView",setup(s){const e=de(()=>a.winner!=null&&!a.moveInProgress),a=x();return(i,l)=>(u(),d(S,null,[n(t(g),{style:{"min-height":"10vh"}},{default:r(()=>[n(fe)]),_:1}),n(t(g),null,{default:r(()=>[n(t(_),null,{default:r(()=>[e.value?(u(),b(We,{key:1})):(u(),b(Ee,{key:0}))]),_:1})]),_:1})],64))}});export{ze as default};