22
赤と青-Pixel Team Battlebots
このコンテストは正式に終了しました。ブルーチームが勝ちました! 私は50回の戦闘で2 セットを自動実行しましたが、驚いたことに、Blueは100回すべてに勝ちました。統計を見ると、PhiNotPiとSp3000の協力的なエントリーが本当のヒーローだったことは明らかです。お疲れ様でした!実際、Blue Teamの他のすべてのメンバーを失格させた場合、Sphibotsは依然として非常に良い戦いをしました。レッドチームの一部の人々は、Sphibotを倒すことを計画していましたが、この努力は衰えたようです。申し訳ありませんがレッドチーム。 コンテストは正式に終了しましたが、それはあなたがもはや答えられないということではなく、私が公式の勝者を再宣言しないことを意味するだけです。どちらのチームも、楽しみのためだけにボットを送信し続けることができます。コントローラーは、今後のエントリーが中断しない限り、稼働したまま機能し続けます。 これはキングオブザヒルコンテストですが、全員が互いに戦う代わりに、赤と青の2つのチームが競います。勝者は1人だけです。 所属チームは、PPCGユーザーID番号によって異なります。これを見つけるには、画面上部のアバターをクリックして(ログインする必要があります)、開いたページのURLを確認します。後の番号users/はID番号です。 https://codegolf.stackexchange.com/users/[id number]/[display name] たとえば、PPCGユーザーID番号は26997です。 https://codegolf.stackexchange.com/users/26997/calvins-hobbies この数値は、Stack Exchangeサイトごとに異なることに注意してください。 あなたのIDが偶数なら、あなたはレッドチームにいます。 あなたのIDが奇数なら、あなたはブルーチームにいます。 チームを変更する方法はありません。 チームと協力して、すべてのユーザーが戦場である128×128グリッドでチームの色の「ピクセル」を制御するようなバトルロイヤルのような他のチームを倒そうとする必要があります。ピクセルは動き回り、チームメイトと通信し、他のチームのピクセルを取り出します。誰でも任意の数のピクセルを作成できると手に負えなくなるため、すべてのユーザーがこの質問に対して1つの回答しか送信できません。 このスタックスニペット(このフィドル [ フルスクリーン ]の縮小版)は、コンテスト全体のコントローラーです。自動的に提出物を読み取り、それらが有効であることを確認し、チーム間の戦いをステージングします。JavaScriptを使用して、必要なときにいつでもブラウザでこれを実行します。JavaScriptはほとんどのブラウザがサポートする唯一のクライアント側スクリプト言語であるため、すべての提出物もJavaScriptで記述する必要があります。 function toggleDebug(){debug=$("#debug").is(":checked")}function rnd(e){return Math.floor(Math.random()*e)}function shuffle(e){for(var t,a,r=e.length;r;t=rnd(r),a=e[--r],e[r]=e[t],e[t]=a);return e}function maskedEval(e,t){var a={};for(i in this)a[i]=void 0;for(i in t)t.hasOwnProperty(i)&&(a[i]=t[i]);return new Function("with(this) { "+e+";}").call(a)}function createBattle(e,t,a,r){function n(){var e=rnd(i.length),t=i[e];return i.splice(e,1),t}var l={};l.width=l.height=128,l.totalMoves=2048,l.radius=16,l.msgMaxLength=64,l.timeLimit=15,l.move=0,l.redToMove=a,l.animated=r,l.running=!1,l.over=!1;for(var o=0,i=new Array(l.width*l.height),d=0;d<l.height;d++)for(var s=0;s<l.width;s++)i[o++]={x:s,y:d};l.redTeam=shuffle(e.slice()),l.redMsgs={},l.redKills={};for(var o=0;o<l.redTeam.length;o++){var u=n();l.redTeam[o].x=u.x,l.redTeam[o].y=u.y,l.redMsgs[l.redTeam[o].id]="",l.redKills[l.redTeam[o].id]=0}l.blueTeam=shuffle(t.slice()),l.blueMsgs={},l.blueKills={};for(var …