Buckets:

download
raw
8.32 kB
import{s as dt,n as ot,o as rt}from"../chunks/scheduler.2b22cead.js";import{S as ct,i as pt,e as d,s as l,c as o,h as mt,a as r,d as n,b as a,f as at,g as c,j as A,k as it,l as yt,m as s,n as p,t as m,o as y,p as M}from"../chunks/index.1a0e8013.js";import{C as Mt,H as k,E as ht}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.f5f19e58.js";import{C as ut}from"../chunks/CodeBlock.640a2a71.js";function bt(P){let i,S,B,N,h,W,u,I,b,O="A classic Connect Four board game environment for training agents on turn-based strategy with a 6×7 grid. Players alternate dropping pieces into columns, aiming to connect four in a row horizontally, vertically, or diagonally.",H,f,x,$,L,w,Y,j,tt="<thead><tr><th>Field</th> <th>Type</th> <th>Description</th></tr></thead> <tbody><tr><td><code>column</code></td> <td><code>int</code></td> <td>Column index (0–6) where the piece will be dropped</td></tr></tbody>",G,C,et="Invalid moves (out-of-range or full column) result in a reward of <code>-1</code> and end the episode.",Z,U,z,T,nt="<thead><tr><th>Field</th> <th>Type</th> <th>Description</th></tr></thead> <tbody><tr><td><code>board</code></td> <td><code>list[list[int]]</code></td> <td>6×7 grid — <code>1</code> = current player, <code>-1</code> = opponent, <code>0</code> = empty</td></tr> <tr><td><code>legal_actions</code></td> <td><code>list[int]</code></td> <td>Column indices that are valid moves</td></tr></tbody>",D,g,q,v,st="<thead><tr><th>Outcome</th> <th>Reward</th></tr></thead> <tbody><tr><td>Win (4 in a row)</td> <td><code>+1.0</code></td></tr> <tr><td>Draw (board full)</td> <td><code>0.0</code></td></tr> <tr><td>Invalid move</td> <td><code>-1.0</code></td></tr> <tr><td>Otherwise</td> <td><code>0.0</code></td></tr></tbody>",F,J,K,E,lt="<thead><tr><th>Field</th> <th>Type</th> <th>Description</th></tr></thead> <tbody><tr><td><code>episode_id</code></td> <td><code>str</code></td> <td>Unique ID for the current game</td></tr> <tr><td><code>board</code></td> <td><code>list[list[int]]</code></td> <td>Current board state</td></tr> <tr><td><code>next_player</code></td> <td><code>int</code></td> <td>Whose turn it is (<code>1</code> or <code>-1</code>)</td></tr> <tr><td><code>step_count</code></td> <td><code>int</code></td> <td>Number of steps taken</td></tr></tbody>",R,_,X,Q,V;return h=new Mt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),u=new k({props:{title:"Connect4 Environment",local:"connect4-environment",headingTag:"h1"}}),f=new k({props:{title:"Quick Start",local:"quick-start",headingTag:"h2"}}),$=new ut({props:{code:"aW1wb3J0JTIwYXN5bmNpbyUwQWZyb20lMjBjb25uZWN0NF9lbnYlMjBpbXBvcnQlMjBDb25uZWN0NEFjdGlvbiUyQyUyMENvbm5lY3Q0RW52JTBBJTBBYXN5bmMlMjBkZWYlMjBtYWluKCklM0ElMEElMjAlMjAlMjAlMjBhc3luYyUyMHdpdGglMjBDb25uZWN0NEVudihiYXNlX3VybCUzRCUyMmh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDAwJTIyKSUyMGFzJTIwY2xpZW50JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb2JzJTIwJTNEJTIwYXdhaXQlMjBjbGllbnQucmVzZXQoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50KGYlMjJCb2FyZCUzQSUyMCU3Qm9icy5ib2FyZCU3RCUyMiklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludChmJTIyTGVnYWwlMjBtb3ZlcyUzQSUyMCU3Qm9icy5sZWdhbF9hY3Rpb25zJTdEJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMERyb3AlMjBhJTIwcGllY2UlMjBpbiUyMGNvbHVtbiUyMDMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXN1bHQlMjAlM0QlMjBhd2FpdCUyMGNsaWVudC5zdGVwKENvbm5lY3Q0QWN0aW9uKGNvbHVtbiUzRDMpKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50KGYlMjJSZXdhcmQlM0ElMjAlN0JyZXN1bHQucmV3YXJkJTdEJTJDJTIwRG9uZSUzQSUyMCU3QnJlc3VsdC5kb25lJTdEJTIyKSUwQSUwQWFzeW5jaW8ucnVuKG1haW4oKSk=",highlighted:`<span class="hljs-keyword">import</span> asyncio
<span class="hljs-keyword">from</span> connect4_env <span class="hljs-keyword">import</span> Connect4Action, Connect4Env
<span class="hljs-keyword">async</span> <span class="hljs-keyword">def</span> <span class="hljs-title function_">main</span>():
<span class="hljs-keyword">async</span> <span class="hljs-keyword">with</span> Connect4Env(base_url=<span class="hljs-string">&quot;http://localhost:8000&quot;</span>) <span class="hljs-keyword">as</span> client:
obs = <span class="hljs-keyword">await</span> client.reset()
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Board: <span class="hljs-subst">{obs.board}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Legal moves: <span class="hljs-subst">{obs.legal_actions}</span>&quot;</span>)
<span class="hljs-comment"># Drop a piece in column 3</span>
result = <span class="hljs-keyword">await</span> client.step(Connect4Action(column=<span class="hljs-number">3</span>))
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reward: <span class="hljs-subst">{result.reward}</span>, Done: <span class="hljs-subst">{result.done}</span>&quot;</span>)
asyncio.run(main())`,lang:"python",wrap:!1}}),w=new k({props:{title:"Action Space",local:"action-space",headingTag:"h2"}}),U=new k({props:{title:"Observation Space",local:"observation-space",headingTag:"h2"}}),g=new k({props:{title:"Rewards",local:"rewards",headingTag:"h2"}}),J=new k({props:{title:"State",local:"state",headingTag:"h2"}}),_=new ht({props:{source:"https://github.com/huggingface/openenv/blob/main/docs/source/environments/connect4.md"}}),{c(){i=d("meta"),S=l(),B=d("p"),N=l(),o(h.$$.fragment),W=l(),o(u.$$.fragment),I=l(),b=d("p"),b.textContent=O,H=l(),o(f.$$.fragment),x=l(),o($.$$.fragment),L=l(),o(w.$$.fragment),Y=l(),j=d("table"),j.innerHTML=tt,G=l(),C=d("p"),C.innerHTML=et,Z=l(),o(U.$$.fragment),z=l(),T=d("table"),T.innerHTML=nt,D=l(),o(g.$$.fragment),q=l(),v=d("table"),v.innerHTML=st,F=l(),o(J.$$.fragment),K=l(),E=d("table"),E.innerHTML=lt,R=l(),o(_.$$.fragment),X=l(),Q=d("p"),this.h()},l(t){const e=mt("svelte-u9bgzb",document.head);i=r(e,"META",{name:!0,content:!0}),e.forEach(n),S=a(t),B=r(t,"P",{}),at(B).forEach(n),N=a(t),c(h.$$.fragment,t),W=a(t),c(u.$$.fragment,t),I=a(t),b=r(t,"P",{"data-svelte-h":!0}),A(b)!=="svelte-1mkh8vv"&&(b.textContent=O),H=a(t),c(f.$$.fragment,t),x=a(t),c($.$$.fragment,t),L=a(t),c(w.$$.fragment,t),Y=a(t),j=r(t,"TABLE",{"data-svelte-h":!0}),A(j)!=="svelte-1ije59e"&&(j.innerHTML=tt),G=a(t),C=r(t,"P",{"data-svelte-h":!0}),A(C)!=="svelte-16kbkv0"&&(C.innerHTML=et),Z=a(t),c(U.$$.fragment,t),z=a(t),T=r(t,"TABLE",{"data-svelte-h":!0}),A(T)!=="svelte-jtgdse"&&(T.innerHTML=nt),D=a(t),c(g.$$.fragment,t),q=a(t),v=r(t,"TABLE",{"data-svelte-h":!0}),A(v)!=="svelte-9yy0et"&&(v.innerHTML=st),F=a(t),c(J.$$.fragment,t),K=a(t),E=r(t,"TABLE",{"data-svelte-h":!0}),A(E)!=="svelte-1kjfne6"&&(E.innerHTML=lt),R=a(t),c(_.$$.fragment,t),X=a(t),Q=r(t,"P",{}),at(Q).forEach(n),this.h()},h(){it(i,"name","hf:doc:metadata"),it(i,"content",ft)},m(t,e){yt(document.head,i),s(t,S,e),s(t,B,e),s(t,N,e),p(h,t,e),s(t,W,e),p(u,t,e),s(t,I,e),s(t,b,e),s(t,H,e),p(f,t,e),s(t,x,e),p($,t,e),s(t,L,e),p(w,t,e),s(t,Y,e),s(t,j,e),s(t,G,e),s(t,C,e),s(t,Z,e),p(U,t,e),s(t,z,e),s(t,T,e),s(t,D,e),p(g,t,e),s(t,q,e),s(t,v,e),s(t,F,e),p(J,t,e),s(t,K,e),s(t,E,e),s(t,R,e),p(_,t,e),s(t,X,e),s(t,Q,e),V=!0},p:ot,i(t){V||(m(h.$$.fragment,t),m(u.$$.fragment,t),m(f.$$.fragment,t),m($.$$.fragment,t),m(w.$$.fragment,t),m(U.$$.fragment,t),m(g.$$.fragment,t),m(J.$$.fragment,t),m(_.$$.fragment,t),V=!0)},o(t){y(h.$$.fragment,t),y(u.$$.fragment,t),y(f.$$.fragment,t),y($.$$.fragment,t),y(w.$$.fragment,t),y(U.$$.fragment,t),y(g.$$.fragment,t),y(J.$$.fragment,t),y(_.$$.fragment,t),V=!1},d(t){t&&(n(S),n(B),n(N),n(W),n(I),n(b),n(H),n(x),n(L),n(Y),n(j),n(G),n(C),n(Z),n(z),n(T),n(D),n(q),n(v),n(F),n(K),n(E),n(R),n(X),n(Q)),n(i),M(h,t),M(u,t),M(f,t),M($,t),M(w,t),M(U,t),M(g,t),M(J,t),M(_,t)}}}const ft='{"title":"Connect4 Environment","local":"connect4-environment","sections":[{"title":"Quick Start","local":"quick-start","sections":[],"depth":2},{"title":"Action Space","local":"action-space","sections":[],"depth":2},{"title":"Observation Space","local":"observation-space","sections":[],"depth":2},{"title":"Rewards","local":"rewards","sections":[],"depth":2},{"title":"State","local":"state","sections":[],"depth":2}],"depth":1}';function $t(P){return rt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Tt extends ct{constructor(i){super(),pt(this,i,$t,bt,dt,{})}}export{Tt as component};

Xet Storage Details

Size:
8.32 kB
·
Xet hash:
23560694b142b622ba9ddc547503bcbd9377e7db60be94a7dfd65404d9b99010

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.