From 159f1273bbcce0399394cb39326c8498d8be583c Mon Sep 17 00:00:00 2001 From: Nils Schneider Date: Sun, 10 Jun 2012 18:54:16 +0200 Subject: [PATCH] move pacman to its own file --- html/force.js | 47 --------------------------- html/nodes2.html | 27 ++++++++++++++++ html/pacman.js | 68 +++++++++++++++++++++++++++++++++++++++ html/pacman_chomp.wav | Bin 0 -> 15892 bytes html/pacman_eatfruit.wav | Bin 0 -> 5120 bytes html/pacman_eatghost.wav | Bin 0 -> 6656 bytes 6 files changed, 95 insertions(+), 47 deletions(-) create mode 100644 html/nodes2.html create mode 100644 html/pacman.js create mode 100644 html/pacman_chomp.wav create mode 100644 html/pacman_eatfruit.wav create mode 100644 html/pacman_eatghost.wav diff --git a/html/force.js b/html/force.js index daec041..c742780 100644 --- a/html/force.js +++ b/html/force.js @@ -176,12 +176,6 @@ vis.append("g").attr("class", "links") vis.append("g").attr("class", "nodes") -var pm = vis.append("path") - .style("fill", "#ff0") - .style("stroke", "#000") - .style("stroke-width", 2.5) - .style("stroke-linejoin", "round") - var linkedByIndex var force = d3.layout.force() @@ -208,9 +202,6 @@ var force = d3.layout.force() var angle = d3.scale.linear() .domain([0, 1, 2, 3]) .range([0.01, Math.PI/4, 0.01, Math.PI/4]) -var a = 0 - -var p = {x: 0, y: 0} force.on("tick", function() { var size = force.size() @@ -239,44 +230,6 @@ force.on("tick", function() { vis.selectAll(".node").attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; }) - - a = (a + 0.10)%2 - - pm.attr("d", d3.svg.arc().innerRadius(0) - .outerRadius(24).endAngle(-angle(a) + Math.PI/2 + 2*Math.PI).startAngle(angle(a) + Math.PI/2)) - - var closest = null - var dd = Infinity; - for (i = 0; i < n; i++) { - var o = nodes[i] - if (o.dead) - continue - - var d = Math.pow((o.x - p.x),2) + Math.pow( o.y - p.y, 2) - if (d < dd) { - dd = d - closest = o - } - } - - var dx = closest.x - p.x - var dy = closest.y - p.y - - var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2)) - - dx = dx/d - dy = dy/d - - if (d>1) { - - p.x += dx - p.y += dy - } else { - closest.dead = true - } - - pm.attr("transform", "matrix(" + [dx, dy, -dy, dx, p.x, p.y].join(",") + ")") - }) var data diff --git a/html/nodes2.html b/html/nodes2.html new file mode 100644 index 0000000..9a17574 --- /dev/null +++ b/html/nodes2.html @@ -0,0 +1,27 @@ + + + + + Freifunk Lübeck - Knotengraph + + + + + + + + + + +
+

luebeck.freifunk.net

+ +
+
+ + + + diff --git a/html/pacman.js b/html/pacman.js new file mode 100644 index 0000000..fec907d --- /dev/null +++ b/html/pacman.js @@ -0,0 +1,68 @@ +d3.timer(pacman) +var a = 0 + +var p = {x: 0, y: 0} +var pm = vis.append("path") + .style("fill", "#ff0") + .style("stroke", "#000") + .style("stroke-width", 2.5) + .style("stroke-linejoin", "round") + +function pacman() { + var size = force.size() + var nodes = force.nodes() + var n = nodes.length + if (n == 0) + return + + a = (a + 0.10)%2 + + pm.attr("d", d3.svg.arc().innerRadius(0) + .outerRadius(24).endAngle(-angle(a) + Math.PI/2 + 2*Math.PI).startAngle(angle(a) + Math.PI/2)) + + var closest = null + var dd = Infinity; + for (i = 0; i < n; i++) { + var o = nodes[i] + + var d = Math.pow((o.x - p.x),2) + Math.pow( o.y - p.y, 2) + if (d < dd) { + dd = d + closest = o + } + } + + var dx = closest.x - p.x + var dy = closest.y - p.y + + var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2)) + + dx = dx/d + dy = dy/d + + if (d>1) { + + p.x += dx + p.y += dy + } else { + var snd; + if (closest.flags.client) { + snd = new Audio("pacman_eatfruit.wav") + } else { + snd = new Audio("pacman_eatghost.wav") + } + snd.play() + + data.nodes = data.nodes.filter(function (d) { + return d.id != closest.id + }) + + data.links = data.links.filter(function (d) { + return d.target.id != closest.id && d.source.id != closest.id + }) + update() + } + + pm.attr("transform", "matrix(" + [dx, dy, -dy, dx, p.x, p.y].join(",") + ")") +} + diff --git a/html/pacman_chomp.wav b/html/pacman_chomp.wav new file mode 100644 index 0000000000000000000000000000000000000000..993b08ead95aa8b78dc270aefdca7edb26cf26b8 GIT binary patch literal 15892 zcmYkDM|Yd)mFKH>vzWzvfLZv=YF2aFZo8eT%E}T&NfdJi6LKUX0T4N75CB1t1ekLW zB`T{_Rd!X6PfvCDPV>7DSaze2``F?eo^YRg|KYv^Jr5rI_piVBV)XXN{U<$xL;w4W zFTUt`_Moq4@WIgk{G4uIARJHUi#Jm#mAF?eM72^XFrg@8^Lkv|Ww-Gzo6TmoFS@*e zXezH(Odc=ql2`GbVm_OSg}KG;l=;}z$Ycc>-O_R_EjO{sD=XZ0^Q)8#+_UU+*{v3f z#cE?*vfN&utaTz&tkfFKW^;A5QLC1VEOI83NhjmsfY)ian2biVmGQVevW?MLg4wf^ zEA_@IH`Lk6LN1d|CF5+%lE>+=noTB?+`+U%QLfJYysm0g@&a}w9^vBdesuRlEfZU) zu4lu$KiLr3Lb=}OW?31zM2gyR6)3V7vYg!|y4lEVS_aSFbyvqFgXijSERoK1Lqy#n z(UH&PB&gT}uUi(A)s#0#6cV#so@1|Nvw1<8>*eZXEFARvJZk;9_~z+^lEeiU%SQ8T zt|am#$k|?x#GB8zBx|UakYLO6cK-8Up6PY-G#RWv5DbPQj5kNv@Ln!vTheJcv?`d{ zeOV2s+v}GLlk#pAlDuDDo@Y|=XgEliunso%T{h9{XG`RnRS6G?UoKYHMweyth(8HG z$D)hFA?J_~ik)bu4bKWKuVeRTs;_W4to`pr3`6Gh}mcdemTL{@q2D z5lBF*gx3hVB`ZbvO2jZD znNat-Xew7)X*AcGt91!1Ect*-Grb#6#l`5ed0d-FKCjy>lTBy;5zj!XBnbhn%2BJ15fj$G*WN|Gp4 z>hiosty1i6H|w|LcCvix*vj+BbE#aJ*S6GkoW7eSQIoyNRAhqg=$h)Xl}fQ2WpOoG ztJ%zM5IPc$q_cdbzP7%x-de3!OKdRP#%Xh@!KtNFp^(TFs*Salyj32TNyS1-EFAfP z)6Uc6jayoEx1Te`qMPBep zI7(2+Ntb0$WQ*0B%4YJi9Pg6E&t7vDRI%vhZw^8?tE!C0fVvNo^ef@Oz9h2*VXZFp zO|qO+164uPL#R

Y4)AFdW8HyvhDjF{A)?_d_02trL4(3f1zG%WgL4bUK6C?ot&>wsfQ2*=((@a0O?<>$DnmTCKXmOASlQ6`P%{ z_Qo19o=-;nE}KcWFh8%=n{7_-5>ZyDu5N7Y>}|YpW|<5pdg#+F6ZeW?pBqyQJjF zNITm*+iD!ebW~lzOBVDd)=a{wR9o9*E;|gQQOPGmKBvX7(7nR$_D5tUt*6QigGyQ}+^){4!@|hTYUQIu0BM7vtKH?O zdz^N&QLi^z7Cq{GuCTc>@p_r~@$p9kVX8OT-GOLY-P&PUTeV^;;&(eN2HnEkyw+f4 zPuO+#th2qxCItj5>&XK}YePFRU7YtbztDE#Id4)4>4yVKIC*DC{Qip0a z!hpr_3u+Nm;q>?w2&{0l$q%xUU^tbpq>B4U*V%%UWllZIsNhZ)jz}(#Ce?$<8z5&k zkX&e&@=HnOq$WTq3YR2P89}qE{!=PJUioa2g5+cXlnxLJ^CWC!o|4qEMCJDW;o<&v zn`1%X!3JWSNCocdl)hYA&a`1}a=8E5(`U~IhR3Jpjf;MErq*h2@9yq&HkvgcgaWjj zUV&*Ia$y)O1Wr=CA)U*mS%1l3R;Qqq5Ez+N>7p~Idnuf*w6>4VuU@^nI^W-@rb9kA zX*mJ~U@i*wmP`3`Ea*1RPxL=|^x*!3hmW2NPHJub)XL`m@!93&`N@8}N%-X`U11*? zW?^1$Uy7HSo&Cduy{(OUG0mA+G-$?#1_p*E7HnQAqAV1cy<4KdJ_c4hPM#oLb` z-(Q~}Zmn_BQcxMF0|{Cc=$J4j4zFFW8I_Sd=y^IcrE^Bho5!y{eE#;+>(i}Twi}5C zBkOE+29o9Vz0=dfb~WzOX~u?!hDRr74R#-MUftZ@-P_;aKR7%-KHA^es2Ab^r)hp- z==t-(39TcT%y&03n*}WqRJBSz5%T*b?Usolk`!fAYMn(tGd9rod}P+*Pf%QlAHl3r zfRf2{uF}}pIXu0*x_WVT*lA?^=IMb)cm8ziZqM_vIkPubYVDo9diVbAi-Wbyl4X8+ za%x7);gj55Xlxz7cy+nInshIW^z}Y|IxwcuniqYMTx09t^z8I_e@99~IhPc=C+MF7 zZMB000?<0pw1X%Mr^;*FhfI+5B(8y^utG^sR);s7E)+8nuT?iMx!wg2lnQTm2T54v zTC=^+$Ub~{_v&nStq^f8jP%~WbH8_J#_CU1*{3&eU!86@@-hFSc|kKdIi;ChAT(o{ zLb;d+*`uzF*)qW$jWL=mZ9qjKP7#`E;2$5oQ`{c!|moHBD zJI!h?9`r6!CKpKh9uP(%7V=v4^JER9%^ge>8=d2;x1TfHp%l@>d=gFYP z$9o$qxnyM7 z>o91Bdhg%9+cP+8kCfY|uRneJ?Z?+=JF5kmoOWhnWO!`Gz_Ck$%mNT*VY?And@@t4 zZ|)tR9B!?WAIS<1uAZ8hUa)v0nX=mW^Rtuv&T1(cbQ)(y`}+pQ7woK2PSQ^(6zNhC z5NV-YU#C8`s+lO1!Q*n6DPLNPCz2M-U8se(oYUN=_UGRiPxN< zCn2{AXc6mDtIgW!@zKczN4V5JA&tB^KiXLS|+CMxx*ltyGa@p9(_>9rD98YHp)#gSQ_AACL@Xcz{&rgpI4Nn<7(R^e3^!mf6 zPwy^w8<~J@cJR@yFTZ{;r1K@K>wA|U{`}()pI_}ak{5=D5X?WHiF05`HUB3D7@!i#7E92Jme);QP{r2|L33IT}+B?7g z`2C;1eRtk2c;}wq`_t`*0~&TVRb1UZef9pEZ@+nax}I@O%Pqh8R>Gwv`qEg`}(WfPo`a&)*f3dn{~S1Zsa2_?P%}q zKmPW&U-e8_mkaC1Z-4l=|NOUq`EXnh8Af_;{qd{&1GDyEdZlyn^39v;7iZLogj+Y> z_vp^8JC6n?wf5!G_RG)z^4A}~z22`yZJL4Jo@XPoCf9PRvL+~?)7}u^CuP8CgG6-k zG|5v?NIaDx!-5wi#_Q!w*lpzSPRyFw)>eCS4Sqp^69O#d6h`K<>F1`WG&;v}er^B! z#pUVlS~2bigQJz$7Ey9Q^Mbo1Q#S<2moibGjZC7qdL+tnz^o8#murOS2=)SKgsAEc zp=F|*AfibzPUQ(mz*D`H4!JE0nyKkIqjNb4s@@PtywO|{Q0-l`2)Nf%aF)WUQe$Il zcXxYJ5*lPwReZRE!kGm$0^!nV57|@{me(a7pg_cil;8-ZGpM&yr~Uo_xqJx`4>m3u zUpzr-rWOgv1!W411WPFHD*w)8ftUbXq6H=A1YxD1=AEDc4dYU1_#=_V)L7I_vd9 za@lRw%}z~BOlsy$i%a38EFv(nv$?JiUC?FG&ai)TIA7Ch^7vQj1V7grKY=n6SlpA`2F$6Sm255Y3Xq_dhuObzC_=s6)7(ym1!dKu1oH{v`uwH|9 z9@e2}$%FyOnS@M&ez(}PVk+#DaG4d#swOP_qP)7fBfwe(MM2F)KR=_<%+AZAfq9dK zT8kQVc(A**4hP8)(GVDRj;%A3XW2R?3@KC;hOkv!!vj3g>m~4*PH$SJUct}H7;ipa?-OLRGq(ifGqmjp3WN4v6~3m|=?6hU^Vzj`pUnj2T@o;u$#I_Q)ojQyH~8q@!#=?Na<;ayfARYL`|Gov zMt0euo0*)Ln$=quy}@{4wY{^oR*Wppj}E{#9N?zSz0)h^e6qC?cg_z#d-7~>Qtu3< z5Z~5FHQO7t9H2=vJ*&6*qPdmz-II&+l=#NOG<>#LK_O2VZb z9~qloFuUNW*~%J+j2UJF7R}Jp$4^IeoyxTp*z3%$A9{=XH@T!!`x^eUcMIG zbFiBBnPxTfM!Pat{L8Uiy?uCgaemY;1+@Klzx?B^M?-TEqGDs~JbvTek0nRmv@t?hl- z_gXmTTA~al2tLRBWHW|L%Js59@`HZTji$-~aXxw|j?Yt-*Zj-~s}0 zd3w-ULnf|36n&yAq5sTGLx@JF3F1txb9ljtzC77mFUOqPvHs@+<8x+D1k$&6bbPqC z)mq6XW1x#nGVHM#4F;Yed+!=1RtI8h`rW{-eHey(eBKJ8V%J_I5jK zm26y0N4KzAGq0w?ATi`t_pZMA;jce_bG5UQT(aqBHPh46Ko!8GKbA_zgHFTD#Du6U zDt$oQU%h_&_6@XBM6LieLMI_SGdm|btKRB`X6+vx?XgM}t4L71(^M)Yg5YYSl3FrO zLb{$0!9*Q_xM;1Lr~zjudzCS8Rn5ZtxkWUgsgG-;>G2Qm)EafT^zP+*|5i|pB*3Ud(zwc zahFD}LMm6b9W)uVKJ1QOtHGNnqA+=**} zf(FP}I-;0}nXa@bRt8?Z`US8iMcz@FNURuX7Lb(^=7^Kwa)Z@?gKL5ql`{s}5LHs7 z=O92pkXR%Z>zb4B5A_oRg?}Y@F`x01Q_4&gM^pTD#rdHI0)UsgzO{57Ag}&xL4k&S z%G|`?Ro06%F@QRu70S4k{((H~G!_Z-hcIl1l%%X41Zk_BPXkm&2(B;^h9^A|Ff}w; zuy1!F7@+*bS>-7qd|e+qK_b@c6o_R2!DZnxsdSnp6)wfJVKw3{3HX+l0`Y<|IlERf zex47fm)A+Z1DqP?o}ai!Ib=VKy>7RI_@Z4prJPLM;bjH=%1Q)Lb`z81eOT=nc!Idd zQ%Kribj6UwzQRIr{7v0m{hLeP?OpiUTk^3ZNej$#3XXF#$cLESy~A~z7va;#PJ0$D=EzcO;=Lfis`2{M=b zM4k{K|3-LMCb{zFg*U{ZGB*k!2Sw#NPPEb2y(efW-IgQKRv@+_OQ;S82|sl< zZVZ2pyBt87Kf1AUUnG6XaHZKo+IeV;5c^$qPl)>(VF9Flq1%t628-sUHbGiKRL75S zD!M1w1L^wV$FvmtlExI;4bYh7gb7I(ojH{)qMeX1Ibp&~Ib%3Pl4hjAO4_JUVI=!< zY+M+F64ykw>dO(^7;Q${tI(Px>4MXtrkiLHIHgYf6+p1$A{Ca!Tq5W)QKkhbnUKc` zDfzMB-Ji<$Y#V`4!Qt^4oy{A8Idpap zj*gEGm8*fP)T$%{4*m4#F#4*&LGemv6#_XpqNrs<3}kX*a(ZSKZY|y$hfV?qJtzr( z>l~b2A(_57-P>GUsfb2_hOtsox)bK8fyxUC5*bDk4~+;W96FaW03?da z0VedCQdV!m6%S9&M44|l3UQxRDe7b6=r5cgl}j=xbWV$IZU%e-Kv|aFK8AsHx3vqE-l&2< zb+h~xPX}s`2CC$f&05N%8|&+Rf_y#Km3V@2Y@{``h&}k<8P3n){!XXG%6iSSV}tzz zBhw2w@#5K`YT)G~vk||<%CZDIa+hctPELoAV220XzIAf-=H0uu*H%!#lz~HDxYef4Hg;m+2835Vw*~P`hIXt1B zUNX;)j|}0lO=#vZ*w|I5&lvHKPLu$Mdyy+_|@JU&7uC ziICSpEDrY%jLuqou?+qy#{{x2+Tv=7IMRy(>~PU9WHwnnsPc$VqKRUk18A4*y6K6@ zS(7`GLw=C%z!lO=0ZH61s7914H)|Pmh>^a> zJ=h;sAKU$o zmK_yj8~5WFh5><&`Jf_C9zJ-~H(~I`3;0vlpa1gbZ>|p;2u6MP@7(L@!)5i+4uU{& z@j@KcT4vcrI@fc;mS}eMBfmFki4mPDVAtYHPHMDPz<%`AvmxF`;dm;yVUCbk&j_tYep zv-bHF)tVtQ$DWv-GdRQfnlzF~cM*&W;|Gc{In)P-9M?g(S302s z-Rm7S_^?LX`=axp7OZ55;hE9ry$|j^d_E};Tt9jH-4B2H_U&mawK((q{;j)D#*N+> z($N0N=?R;*j+hn_Sz9{?Ei==gKu?Y8!sCF_S(>Ci60soYTq3Y&gn=3zfpon?71?e{ zdlMyH+A#qrOJZJOEVu*l()z*q)r*tuTEcA*D;9=r^U*X?5miS3J*O>#wrj-Qn;4%a zh^3nV#p7h35MAayGYCZn5o@ViBKdCb?9vR?tfZG0p^^Rl!;`r5X^I}gq<9BifR8bO ze&6+s12M@gs{g535xOXSGbWLdkT|=Z22Cm*)!x!=8B)H1*&U)iKm@m43=Q&Z)JG47 zMr!384pJmXMJ5v;AF|reZlY<5&VmsX4PUC(5k2F@*#UCqvJ-ZxA)O#6I7EzVQ=Td0 zn+;JfP4k$hqmy$cdD|N2=ip!u6)6{mrO%=;P&MqRo23R5XWp$^fz>xHP%y~B_#%>> zgf&WzUL4rf=?7`j0eMBq~0 zXC}J`k5cRcX>h{_LlQ8|GYBcim_-~0$(kFhbc z-G^kczOl2vx4ltU)#%0^!g>;;*vfimYj1$<5{6jhKePPW{jY&X?z z6p?02;a^y8Qc-Bvr0Yuhn~;s9DI2sYt!(@|y-ihY3HgKcsmKi|vbbDSK^d%9n(#Pi z%p%U3NblOFgs}8c;mI&0{-FGcE&d=I2GWp;^9R&-y6FT4G|Hj|cTbWDT|Fy49Lw86 zs}wbIZbq6kD0H;Pt<%ZXR%p#7t#_hrxq_0~S*Trfyqxqx0A^;jCI{jN4yXw6EP94_ zt7bgj?G2{{fhhgDmDvfMg_z~nJ% zYFzFnHDTBx-$%0*$pZvpB@_0tp)yVj@-7nB0_Xgjcd=tD5rLjd}wDns6An2JIJXD_I&zrc|F)6jWNKR}c4|Sfahuq!4%= zl2ixFuhok6p%)z&W}?_=p}S#lcw)}v3?#~U2=70+qH%V5hHfQ%smcoBDjkpI zbV!uq(Q#4mTifJkmPA_MvNYQ{RY%nHf^{j8%i}kx81G=|gk{rdQUHvrc0}cxOM)sV z{npu`#}6JopE3tBG?U7&MT_J{vlR1~X2!>+jh<+_0JA8FDvPqezqOk6X$K$t>GmV~ zmV(l(+1fg!*KK>PoCLB1r_g!H@tDo!99_)QVZ*!|!A(?8$t*9MB~obC=qlfKTPGH}7_60ZnI z2$zLMhcQUy37JP9{_%HTJ{q@1N~?5Aqv3#eMLeP1Sy-EvE+hxcCruOB@%cG7HM8Ei zr(gX>-m{dcitVr>xl($IDZ|LetT_B)Y{ukGtZd0WG`6)@QatTapeMR#KW&@$S*6i!f!wyxz!XAAkCffB);}m%G)Fq5sxzeksjC)3#7?O_(aaB&G z?{5F)r@#F0{Rg_M3Q@Oi_`x53^Se8J8Y^J@;MJ$^zoT8TQ;xW-CX>kgQ}Y&2hz3XG zWxDWe5ZQEn=S(mz$u}F3mY8vk!NJx@E5>R=n0S;HGAJKLLk>Cv*>jlYM*Dgm3s#Jj z7^0YK>NO$LXz#td_rcGcNNOp~*3`e9PMf7|<4oFh#PZNU-;<$Gv?cGe)N*KJxk2;l=fvmnZFtI13o?(hyF!i4^fpXT1_% z1hn5$PM}A1qrJk3`0(}$H?m9{xy!OJJw7r#G&BSXl2*3X@tbdd_~E;^ryYV(C0T&n z+`N+T(-=tRdCd$^B|ud|5+*E^(F6Jk%ah{saOYuoCO6Y;DBz-0gp2&my51$N8OXnXRH9cSN zuu-;fp;R(P@<0f}T%;(~$p-=J+{Ea}7}140Q%45c6$b&vCAtl$$uI*ediwNP{}7I; zbt%(4y#Dt8{`BuZ{rK*vPRGE9tqKUROY~7_&D2Ffdw~5#25=e;hE@i(3K8YiwMdPt$k9l?!siF7z_yXRz%BS+_i;_*Mf;IL< z+90*aM-%ivv6;aor%7&l_^_vMTIiDm8sGyr%Ee~G`!av;8efE zs9=n=z<8HLvu6bAqsgdz4j|pX-42oh)8ZpZ>9SIv1W}a*2|(=uAbb#@zGzY(AYs?3 z)}fnLbTzrPy7UEgzf}}9-6Gv>Bty6@C*;3$7V(it_nQL)HD5GC`a<%ILnH!0)&d8m zD+?{nDq8*`X*el;xL9JUvqycMp-`;gTMR?DSDL2?1I0xEZ-kkGtT%XCl*up+H57HG zBA=Sj#!qE1LLy)h24JTs)qKt*=mWUY?N8}Sq^h$_RDM}gkqtq=P*R$t@Xh!_0SMG> zgpt0Ur205Xx`%G;JHVD+q#n2huaPz<^#uk?E}d4=vn2GiPh%Yjk`%yqBc6 zF^WLud!-%UTW{+x#@+Xr<@l2Af)>Q?KXUT0mzfy zEorNg#Z!8?dXD<@R5W1G}a-XvdO0r(iTTwrt~=~k4%gu9w^^J z@YxWXEq!g^jcy;4bgCmvBiqYV#eHKA@}aG=B5uBU#ElUN<7XQ}W-D`*PtlZa%}b@p SN`!`PgIY_3Ty~1brT#zE2F<D8y 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 N;5$?ewEF*ve+S!7gIWLp literal 0 HcmV?d00001 diff --git a/html/pacman_eatghost.wav b/html/pacman_eatghost.wav new file mode 100644 index 0000000000000000000000000000000000000000..7ba6b2d0ee0dfff688b7294874df66a5ac1070d7 GIT binary patch literal 6656 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