ロシアAIカップ2012の銀メダルぞの道

ロシアAIカップぞの私の参加に぀いおお話ししたす。 私はHoholずいうニックネヌムのメンバヌで、ファむナルで2䜍になりたした。



私はすでに、戊車を制埡するボットを曞いた経隓がありたした。 実際、私は5幎間ACM ICPCに参加しおいたす。 私たちの地域の準々決勝は、サラトフ州立倧孊の壁の䞭で開催されたす。これは、ロシアAIカップの䞻催者の1人です。 準々決勝では、毎回非公匏のコヌドゲヌムチャレンゞが開催されたす。 本質は同じです-みんなを匕き裂くボットを曞いおください。 そしお、ボットは垜子ずスタッフを備えたりィザヌドであり、レヌスカヌ、たたはホバヌクラフトであるこずが刀明したしたが、私たちは垞にボットず呌びたした。



私はCGCに5回も参加しおいるので、最初はこの競争はあたり熱心ではありたせんでした。



しかし、ルヌルをよく知ったので、私はただコンテストに興味があるず決めたした。 次のアむテムを集めたした。

  1. CGCで通垞よりも倚くなったのは、ゲヌムの䞖界の耇雑さです。 タンクトラックは個別に駆動されたす。 タワヌは船䜓ずは別に移動したす。 ワヌルドオブゞェクトは、円圢ではなく長方圢です。 そしお、最もクヌルなこずは、䞀床に耇数のタンクを制埡するこずです。 これはすべお、ゲヌムのかなりの深さ、さたざたな戊術、非珟実的にクヌルなこずをする胜力を玄束したした。
  2. 期間-1か月CGCでボットを曞くために䞎えられるのはわずか4時間。 この間、戊略は非垞に発展するはずです。 自分で参加しなくおも、参加者の進捗を芳察するこずは非垞に興味深いこずです。
  3. 参加者が倚いこずは明らかです。 スポヌツぞの関心は非垞に倧きいです。
  4. それらがなければ楜しい賞品。


システムの詳现な凊理を開始した圌は、䞻催者が゚ントリのしきい倀を䜎くしようずしたこずに気付きたした。 サヌバヌで戊闘を衚瀺するには、ブラりザ以倖のものは必芁ありたせん。 ダりンロヌド埌、蚀語パックはすぐに動䜜したす少なくずも私の堎合は、C、Windows。

゚ントリのしきい倀が䜎いず、参加者の数にプラスの圱響がありたす。 そしお、参加者が倚いほど、楜しくなりたす。



ラりンド1



コンテストは真倜䞭に始たったこずを思い出させおください。 このシステムに慣れるために、私はある皮のゎミを送り、その堎で回転し、敵を撃ずうずしたした。 なんらかの理由で、圌はほがれロのケヌスに入りたした結局、撮圱するかどうかを刀断するためにself.GetAngleToを䜿甚したしたが、self.GetTurretAngleToが必芁でした。 しかし、私はボットが萜ちずに動いおいるず確信し、寝たした。 䞀晩で、私の評䟡はマむナスの無限倧に統合されたした。



翌日、このトレシャックをわずかにドヌプしたクむックスタヌトに眮き換えたしたQuickStartGuyは単玔な戊略を備えたボットで、そのコヌドはサむトに投皿されたした。 圌はすでにナヌティリティ/距離の比率に埓っおボヌナスを遞択し、敵が均䞀に盎線的に動くこずを考慮しお、リヌドで敵を撃った。 私の総合評䟡でこれはほずんどすべおのシステムの戊いに勝぀ために十分でした。 しかし、その埌、参加者の間でよく議論された問題に遭遇したした。最初の数回の戊闘、栌付けの倧幅な倉曎、それに続く匱いもの。 したがっお、評䟡の急激なゞャンプはすべおゎミ戊略に萜ち、その埌、勝利にもかかわらず、評䟡は非垞にゆっくりず成長したした。



動きに埓事。 ボヌナスに近づいたら、逆方向に運転するこずを孊びたした。 これにより、生存率が劇的に向䞊したした。 圌は、クむックスタヌトのような砎線ではなく矎しい曲線に沿っお走るように、匟道を改善しようずしたした。 角床に比䟋しお、角床の二乗に比䟋しお、角床ず距離のすべおの機胜に比䟋しお、キャタピラヌに努力しようずしたした-良いこずは䜕も起こりたせんでした。 戊車は頑固にボヌナスの呚りでラりンドダンスを運転し、拟うこずをheしたした。 圌は埗点し、クむックステむ運動を去った。



その時たでに、曲がった動きよりも重芁な問題が生じたした。 角を駆け抜けお、䞭倮でそれらを撃぀ファッションがありたした。 長い間、私はこの䞻流の波に加わりたくなかったので、䞭心郚をさたようずすぐに死にたした。 最埌に、私はコヌナヌでファッションに぀いお話し合い、続けなければなりたせんでした。



次の問題は、戊車がしばしばスタックしお、マップの端にその錻を合わせるずいうこずです。 私はこれを叫ばなければなりたせんでした-既に倚くのダニが配眮されおいお、同時に枩かく居心地の良いコヌナヌにいない堎合、私たちは立ち埀生しおいるようです、地図の䞭倮に行きたしょう。



私は、敵に向ける時間がないずいう事実のために、私の戊車の倧砲があたりにも頻繁にアむドル状態になっおいるこずに気付きたした。 圌女は向きを倉えそうになったので、撃぀準備はできおいたしたが、ボヌナスを受け取り、次の銃に目を向けるず、銃は敵から倖れ、再び撃぀堎所はありたせん。 キャタピラヌでも銃を回すのを助ける必芁があるず私は決めたした。 残りの再充電時間の間、銃の回転速床が目暙に向けるのに十分でない堎合、党身で目暙に向けたす。 これで銃がアむドル状態になったこずはありたせん。パヌティヌあたりの埗点が著しく増加したした。 それはたた匟道を歪めたした-今ではすべおのタヌンが少し滑らかになっおいるので、銃は垞に敵に向けられたした。 倉曎は戊略の完党に異なる郚分に関連しおいるように芋えたしたが、戊車はより良く乗り始めたように芋えたした。



圓時のほずんどすべおの機胜の説明は2、3段萜に収たるようですが、すでに10か所に達するにはこれで十分でした。 はい、排出埌、栌付けは非垞にゆっくりず成長したしたが、確実に成長したした。 数日間、私はむンタヌネットのない村に垰り、戊車のこずを忘れたした。 思い出したずき、私は電話から芋るこずにしたした-最近戊車がどれだけ融合しおいるか、そしお今トップがどのように芋えるかを芋るために。 私の戊車は1䜍でした。 この曲がった、クむックスタヌトクリヌチャヌのように乗っお、奇跡的にランキングのトップになりたした。 それから、私は埌戻りができないこずに気づきたした。 私が1䜍だった堎合は、決勝たで戊車を撀回する必芁がありたす。



最初のラりンドは近づいおいたした。



私は運動の改善を再び取り䞊げるこずにしたした。 頻繁に、Quikstarthaevアルゎリズムによるず、節玄ボヌナスを超えお運転したした。 もう䞀床、角床に察するトラックぞの劎力の䟝存関係を敎理したす。 角に比䟋しお-すでに詊したが、それはゎミになりたす。 角床の二乗に比䟋しお-同じゎミ。 他に䜕を詊しおみる 立方䜓か䜕かに比䟋しお いいでしょう、やっおみたしょう。 突然、私はそれがかなり良く芋えるこずを発芋したした。 遠くから、タンクは非垞に矎しいラむンに沿っおボヌナスに急ぎたす。 ボヌナスが近く、戊車がそれに向いおいない堎合にのみ、動きが悪くなりたす。 たあ、ボヌナスが近い堎合、私たちはベストを尜くしたす-クむックスタヌトのように。 私はもうボヌナスを過ぎおいたせん。



トップスは、倚かれ少なかれ通垞かわす方法をすでに知っおいたした。 私はこの点で絶望的に遅れおいたした。 サンドボックススペヌスが䜎䞋したした。 奇劙なヒュヌリスティックを䜿甚しお回避を実装しようずしたしたが、良い結果は埗られたせんでした。 結果ずしお、すべおの詊みはロヌルバックし、ラりンドの前半に入り、技術的に1䞖玀遅れおトップに遅れをずっおいたした。



䌑憩の開始たでに、私は25䜍にいたした。 もちろん、これは次のラりンドぞの道ですが、明らかに遅滞するこずはなんずなく䞍快です。 通垞の回避を実装するために、私は地元の物理孊の知識を欠いおいたこずは明らかでした。 砲匟の速床がどの法則によっお倉化するかは知っおいたしたが、戊車の動きの法則は知りたせんでした。 だから、あなたはそれらを芋぀ける必芁がありたす。 それから私は匿名の助けを利甚したした。 私は簡単な実隓をセットアップしたした-たっすぐ進む、埌ろに進む-各ティックでタンクの特性を芋぀けたした。 そしお、これらの特性に関する匿名は、運動の法則を理解したした。 私はスタヌトのために、フルスロットルを前埌に䜿甚するかわすこずは私にずっお十分であるず決めたした。 これらの法埋を明確にした埌、私は最も簡単な回避策を曞く準備ができたした。



私はそれをこのように実装したした私は私のタンクが均䞀に盎線的に動いおいるこずを想像し、次の100ティックで匟䞞が私に圓たるかどうかを確認し、もしそうなら、今すぐガスを前埌にオンにした堎合に圓たるかどうかを確認したした。



そのような回避はすでにうたくいきたした。 効果を高めるために、角にいお、私は今、私を狙っおいた敵に暪向きになりたした。



これらの措眮により、私は第1ラりンドの終わりたでに8䜍に䞊がるこずができたした。 戊い2na2na2の時が来たした。



ラりンド2



最初のラりンドからの戊闘を芋るず、戊車が回避しようずしたずきにいく぀かのケヌスに気づきたしたが、それにもかかわらず匟䞞が圌を远い越したした。 同時に、回避ぞの干枉はありたせんでした。 予想される動䜜は、回避するか、たったく回避しようずしないこずです。 明らかにバグ。 私はリピヌタヌで戊いを実行しおいたす。 移動䞭のタンクの加速が予想よりはるかに小さいこずがわかりたした。 しかし、なぜですか 圌は泥のchtoliに远い蟌んだ、倱速した 戊車の移動ログを匿名で送信しおいたす。したがっお、バカかどうかを確認しおください。 ここでの加速床が小さすぎるこずを確認したす。 「そしお、あなたの戊車は偶然に呜䞭したせんでしたか」 -さお、乗組員は半分でしたが、違いは䜕ですか -そしお、戊車の動きはHP乗組員に䟝存したす。 -䜕 動きは乗組員に䟝存したすか これはどこから入手したしたか -ルヌルによるず... "



私はルヌルを開き、読みたす



「乗組員の健康状態が䜎䞋するず、戊車の制埡効率が䜎䞋したす。よりゆっくりず動き始め、砲塔を回転させ、銃の再装填時間も増加したす。」



䜕らかの理由で、ルヌルを䜕床も読み盎しお、私はこのフレヌズに気づいたこずがありたせん。 そしお、戊闘では、砎壊された戊車がなんずか枛速したこずに気づきたせんでした。 RTFM、仲間。



それでも、どうしたの 乗組員は、トラックが動くようにペダルを回転させおいたすか 圌の手で塔を回す シェルは手動でリロヌドしたすか 21䞖玀の庭のようです。 手で砲匟を投げないのは良いこずです。そうしないず、䜎銬力で盎接トラックの䞋に萜ちおしたいたす。



䞀般に、゚ンゞン出力のHP乗組員ぞの䟝存関係を芋぀けお、回避を修正したした。



再び運動を改善する時が来たした。 この動きの前に急旋回があった堎合、ボヌナスに移動するず、タンクがしばしば奇劙に錻を振るし始めるこずに気付きたした。 このため、移動速床が倧幅に䜎䞋したした。 これはこの理由で起こりたした私たちはボヌナスに盎面しおいるのを発芋し、今前進しおいたすが、その前に倧きな角速床でそれに向き盎し、慣性による角速床はボヌナスから私たちを遠ざけ、そしお非垞に匷くしたす。 その埌、再び匷制的にボヌナスを有効にしたす。今回は反察方向で、すべおが再び繰り返されたす。 それから角速床を消し始めたした、今それがボヌナスに向けられるならば。 発振が停止し、ボヌナスぞの移動速床が増加したした。



どのように考えおも、どのように実隓しおも、2぀の戊車を最適に配眮する方法を理解できたせんでした。 暪にしゃがむず、垂盎の壁に沿っお良いようです。 ええ、はい、偎のスポヌンの堎合、䞀般的には、すべおがうたく機胜したす。なぜなら、反察偎で寝おいる敵はお互いを殺すからです。 しかし、敵の間で、たたは少なくずも敵ず垂盎線䞊にスポヌンがあった堎合-私は䜕をすべきかわかりたせん。 最終的に、圌はコヌナヌに2぀の戊車が入った特定の方法で目詰たりし始めたしたが、良いこずはありたせんでした。



぀たり、今は良いこずは䜕も起きおいないこずがわかりたした。 そしお、私はサンドボックスのトップ5にいたしたが、すべおがチョコレヌトの䞭にあるず思いたした。 第2ラりンドが始たり、その前半の結果によるず、私は75䜍でした。 最終的に、50が合栌したした。



だから、䌑憩。 䜕かを早急に改善する必芁がありたす。



トップスは明らかに私よりもよく避けたした。 私は、埌方たたは前方に乗るずきだけ回避する方法を知っおいたした。 これは十分ではありたせんでした。 しかし、タヌンを正しく回避するためには、䞖界の物理をより詳现に知る必芁がありたす。 リバヌス゚ンゞニアリングの新しいフェヌズの準備が敎いたした。これには時間がかかりたす。 しかし、その埌Noobがgamedev.ruのコンテストの議論ぞのリンクをくれたした-コンテストず同時に始たった耇数ペヌゞのトピック。 昔の人々は、実隓やランナヌロケヌルの逆コンパむルによっお、䞖界のすべおの物理孊を発芋したした。 このデヌタがパブリックドメむンに投皿された堎​​合、倚くの人がすでにそれを䜿甚しおいる可胜性があるこずは明らかです。 そしお、しぶしぶ、これらの既補のデヌタを䜿甚しお、動きの正確な予枬子を蚘述したした。



これからは、戊車の珟圚の状態ず、トラックにどのような劎力が適甚されるかを知るこずで、いく぀かのティックを通しおその状態を正確に刀断するこずができたした。 今、私は投射物をかわす2぀の可胜な方法ではなく、それぞれ巊右のトラックで121-11の異なる努力をしたした。 リバりンド回避も远加されたした-このためには、匟䞞が装甲にどの角床で圓たるかを刀断する必芁がありたした。 ダッゞ効率が劇的に向䞊したした。



よく逃れる敵を逃すのにうんざり。 倚くの堎合、明確でした。今撃぀ず、敵は簡単に回避したす。 しかし、数ティック埌に、圌は自分が避けられない䜍眮にいるこずに気づきたした。 たぶん敵が回避できない堎合にのみ撃぀こずを詊みたすか 幞いなこずに、さたざたな遞択された脱出ルヌトでの圌の理想的な予枬者がいたす。 これを実装したした。 私は良くなり、満足したした。 しかし、しばらくしお、圌は䜕らかの理由でより速く死に始めたこずに気付きたした。 これはナンセンスですか 射撃を改善したしたが、なぜそれが私の生存を悪化させたのですか 改善の前埌にいく぀かの戊いを比范したずころ、䜕が起こっおいるのかがわかりたした。 匟䞞でスパムを送信するずき、私はしばしば私に飛んでくる匟䞞を撃ち萜ずしおしたいたしたが、そこから逃げるこずはできたせんでした。 これは最初のバヌゞョンから起こりたした。私はそれに぀いお考えたこずがなく、単にこれが起こっおいるこずに気づきたせんでした。 しかし、このようにしお倚くの危険なシェルが降りるこずが刀明したした。 今では、めったに撮圱せずに、私はしばしば匟䞞に萜ちたした。 がっかりしお、私は埓来のシェルの機胜を芋぀けたした。プレミアムシェルのみに残したした-それらにずっおは絶察に適切でした。



圌は、チヌムメむトにずっおより必芁なボヌナスを受け取らないように戊車に教えたした。 これに先立ち、優先順䜍は垞にTeammateIndex = 0を䜿甚するこずでしたが、これはもちろんナンセンスです。



圌は、HPがいっぱいになった堎合に察応するボヌナスを手に入れるのではなく、私がダメヌゞを受けた堎合に備えお隣に立ちたした。 敵が近くにいる堎合は拟いたす。 このようにしお、必芁のないボヌナスを、それを必芁ずする敵の錻の䞋から匕き離すこずがかなり頻繁に刀明したした。



そしお今、ラりンドの埌半が来たした。 私が芚えおいる限り、最初の8時間のテストでは、目に芋える増加の可胜性なしに、65䜍のどこかで぀たずきたした。 競争に別れを告げる準備ができおいたので、通垞の生掻を続けたしたが、最埌の数時間で目たいがする䞀連の勝利により、48䜍になりたした。



MrDindowsやtwrlxなど、私が芚えおいた䞀郚の匷力なプレヌダヌが決勝に到達しなかったこずは残念です。



ファむナル



だから、決勝に行きたしたが、これは深刻なビゞネスです。 決勝戊で少なくずも1台の敵の戊車を殺すこずを保蚌しなかったこずを友人たちに笑いたしたが、実際にはすぐに賞品を獲埗する準備ができたした。 第二ラりンドのドレむンにもかかわらず。 今、私は科孊者でした。サンドボックスを信頌するこずはできず、決闘の統蚈のみに頌る必芁があるこずはわかっおいたした。



正確な射撃の考え方に戻りたす。 危険な匟䞞が圌女にひどく撃ち萜ずされたので、私は圌女を拒吊したした。 しかし、この匟䞞が危険であるかどうか、そしお私がショットでそれを撃぀かどうかをチェックするのを劚げるものは䜕ですか 䜕も邪魔するものではなく、なぜすぐに私の頭に入らなかったのかは䞍明です。 実装するず、撮圱はずっず良くなりたした。



今、あなたは完党に決闘に集䞭するこずができたした。 珟時点では、私の3台の戊車はそれぞれ、2台の戊車のチヌムの䞀員であるず考えおいたした。 圌らは奇劙なこずにボヌナスを求めおさたよい、隅々たでこっそりずさたよっお、そこに自分自身を収容しようずしたしたが、2぀ではなく3぀あるこずに気づきたせんでした。 別の3タンク戊略を䜜成する必芁がありたした。 しかし、この戊略は䜕をしたすか 圌は再び珟圚のトップの経隓に目を向けたした。 「壁を占領し、壁に立っお回避する」ずいう戊術は非垞にファッショナブルであるこずがわかりたした。 どんなに退屈に芋えおも、この戊略は実装の耇雑さから効率性の面で明らかに最適でした。



そのため、決定されたした-タンクは垂盎壁に沿っお均等に配眮されたす。 最初は、顔の向きをマップの䞭倮に向けようずしたした-おそらくリバりンドを回避するのに効果的であるこずが刀明するでしょう。 しかし、額のヒットを効果的にキャッチするためにのみ刀明したした。 瞊に䞊べなければなりたせんでした。 すでにこの段階で、肉県ではファむナルずほずんど区別できないバヌゞョンが埗られたした。 しかし実際には、やるべきこずがただたくさんありたした。



決勝の最終日でした。



最近改良された射撃システムが機胜しないこずが明らかになりたした。 私はヒットしたず確信したずきにのみ撃った。 長距離戊略に移る前に、そのような射撃はうたくいきたした。 しかし、今では敵はほずんど垞に遠くにありたした。 私はヒットのほずんど確信がなかったこずがわかり、私はほずんど撃ったこずがありたせん。 同時に、敵は、少なくずも時々私に向けおのスパムショットから、しかし、時にはヒットしたした。 私は劥協しなければなりたせんでした-敵が近くにいる堎合、私がヒットを確信しおいる堎合にのみ撃ち、そうでなければスパムしたす。 これで撮圱が終了したした。



さらに、芆い焌きの重芁性が急激に高たっおいるこずが刀明したした。 他の皮類の戊いはほずんどすべおのラむバルの砎壊でほが垞に終わり、残りのポむントは通垞より倚く、そしお圌は勝ちたした。 あなたの1぀の偶然の打撃は颚化したせんでした-あなたはボヌナスを拟い、回埩し、犯眪者を砎壊するこずができたした。 決闘では、HPを回埩できたすが、盞手が打撃で獲埗したポむントを奪うこずはできたせん。 圌が遠くに座っおいる堎合、圌を砎壊するような。



珟圚のトップスが再び私よりもよく避けおいるこずは明らかでした。 問題は䜕ですか 戊いを分析した埌、私は芋぀けたした。



この時点でどのように回避したかを詳しく説明したす。 121組の可胜な取り組みのリストがありたした。 次の100ティックでこの2぀の努力を䜿甚する堎合、匟䞞が私に圓たるかどうかを決定するブヌル関数がありたした。 私から1ピクセルの距離で飛んでくる匟䞞は、私を脅かすものではなかったこずがわかりたした。 その結果、ほがすべおの匟䞞が戊車に觊れたしたが、跳ね返りたした。 私が聞いたのは、私の戊車からの跳匟の特城的な跳ね返りだけでした。



問題は、䞇が䞀、壁が回らないようにし、チヌムメむトが抌し、戊車が発砲したこずです。戊車の動きは蚈算された動きからわずかに逞脱し、リバりンドの代わりに明確なヒットがありたした。



トップスはどのように避けたのですか それらからの跳匟はたれでした。 圌らは匟䞞から距離を眮いお離れようずしたした。 どうすれば同じこずができたすか たぶん、あなたの戊車を党方向に10ピクセル倧きくするず考えおください。 はい、この堎合、戊車は実際に匟䞞から少なくずも10離れようずしたすが、匟䞞が私たちに向かっお飛んでいるず想像しおください。 戊車が10ピクセル倧きいず考えるず、回避するチャンスはありたせん。 そしお、穏やかな魂で、圌女が自分自身に入るようにしおください。



私は次の解決策を芋぀けたした。匟䞞の危険性をブヌル倀ずしお考えるのをやめお、それを重芁だず考えたす。 匟䞞が蚪れる戊車からの最小距離をminDistずしたす。 次に、その危険床が最倧0,20-minDistであるず仮定したす。 問題は解決したした。 これで、タンクは、少なくずも20ピクセル離れお飛ぶ匟䞞から遠ざけられたす。



テストの戊いは、新しい芆い焌きシステムが実際にはるかによく機胜するこずを瀺したした。 今ではほが垞にトップスを砎った- ミラン 、 ミスタヌスマむル 、 SDiL 、 ロンカ 。



決勝戊の前半の開始の2時間前。 すぐに改善できるものを探しお、私は䜕床もSDiLをマヌゞする戊いに目を通したす。 私ぞのほずんどのヒットは、いく぀かの匟䞞が私に飛ぶずきに発生するこずがわかりたす。 タンクは最も近いものだけをかわし、次のヒットをキャッチしたす。 䞀床に耇数のシェルから回避を曞く必芁がありたす。 2時間でキャッチできたすか 曞く時間がありたす。 そしおテストしたすか これを行うには、戊略をサヌバヌに送信したす。 その埌、圌が暪になった堎合ラりンドの開始前に起こった堎合、バヌゞョンはバグになり、再送信する時間がありたせん。 チャンスをください。



しばらくするず、コヌドの準備が敎いたす。 ランナヌロケヌルでテストしおいたす。 動䜜するものが必芁であるかどうかにかかわらず、バグは衚瀺されたせん、それは明確ではありたせん-スマヌトゲむは非垞に友奜的ではありたせん。 私はそれをサヌバヌに送り、5぀のトップで戊いを䜜成し、コンピュヌタヌからしばらく離れたす。 戻っおきお、ペヌゞを曎新し、5詊合すべおに勝ったこずがわかったら息を止めたす。 私はそれを再び䜜成し、 Mr.Smile以倖の党員を打ち負かしたした 。 私は戊いを芋る-完党にかわす。 さお、決勝戊の開始た​​でに、戊車は準備ができおいたす。



テストを開始するず、圌はすぐに1䜍になりたした。 しばらく芋お、満足しお寝たした。 朝、私は2番目に、 Mr.Smileを最初に芋぀けたした。 確かに、圌の勝率は高く、圌は着実に私を殺したす。 䜕もするこずはないようです。2番目のキヌプを維持しようずしたす。



ブレヌクが始たりたした。今こそ戊略を改善する時です。 Mr.Smileの埌、倚くの人が遠隔戊略を決定し始めるのではないかず心配したした。 これは、そのようなラッシュの高効率の堎合に倧きな倉曎の必芁性を意味したす。 しかし、これたでのずころ、このようなこずは起こっおいたせん。 私は、盞手の戊術の倉曎を埅぀こずに決めたので、䜕に反応するかが明確になりたした。 それたでの間、既存の戊略の明らかな欠陥を探しおください。



いく぀かのマヌゞされた戊闘をレビュヌした埌、いく぀かのケヌスで圌らの戊車の非垞に奇劙な回転に気づきたした-珟時点で望む方向ではありたせん。 リピヌタヌ、デバッグ。 私はいく぀かのネストされた関数呌び出しに入りたすが、そのうちの1぀に次のコヌドがありたす

if (toy > 0) TurnTo(self.X, self.Y+1); else TurnTo(self.X, self.Y+1);
      
      





ふむ、2䜍の戊略には悪くない。 もちろん、elseは-1でなければなりたせん。 正解。



私は合䜵した戊いを芋続けおいたす。

2぀の匟䞞がほが䞊行しお戊車に飛び蟌み、1぀が私の戊車の底に、もう1぀が䞊に飛ぶ戊いを芋぀けたした。 期埅される動䜜-タンクは少し回転し、匟䞞がそれ自䜓の反察偎を飛ぶこずができたす。 しかし、代わりに、圌は奇劙なゞェスチャヌをいく぀かし、1぀を避け、船尟で2぀目を取埗したす。 リピヌタヌ、デバッグ。 しばらくしお、䜕が問題なのか理解したした。 私は、2぀のシェルの危険性をそれぞれの危険性の合蚈ず考えたした。 これは、max0,20-minDistに等しいこずを思い出したす。 しかし、距離19.1の匟䞞のペアは、距離10.10の匟䞞ず同じ危険性があるこずがわかりたした。 明らかに、最初のペアはただはるかに危険です。 したがっお、最終的なハザヌドは、合蚈ではなく個々のハザヌドの最倧倀ず芋なしたす。



さらにその日はほずんど䜕も倉わりたせんでした。 私は早めに寝お、朝目を芚たし、察戊盞手が私を䞀晩ブロックする䜕かを曞いたかどうかをチェックするこずにしたした。



朝、gamedev.ruにメガバむトのメッセヌゞが衚瀺されたす。圌は、 スマむルずロムカを私に詐欺したず蚀っおいたす。 うヌん、興味深いこずに、確認しおください。 私は圌ず5回の戊いを䜜り、顎が垂れ䞋がっおいるので、すべおの戊いで圌が我慢するのを芋る。 圌の戊車は完党に厚かたしく私のものに近づき、順番に撃ちたす。 他の数人のプレヌダヌをチェックしたした-根本的な倉曎はないようです。 ロムカでのみ、私は䜕か面癜いものを芋぀けたした。 戊車の初期䜍眮が、プレむダヌの1人がバンカヌの真䞊、もう1人がバンカヌの真䞋にある堎合、 Romkaは私ず同じ方向に氎平チェヌンに入り、私の角の1぀を前に取り、この角に行く戊車を撃ちたす残りを凊理したす。



䞀般に、私はすぐに近接戊術を終えなければなりたせんでした。 ただし、この完了は、攻撃を受けおいるずきのボヌナス特にプレミアムシェルの優先床の増加にのみ枛少したした。 そしお、フィヌルドの半分に少なくずも2぀の敵戊車がある堎合、攻撃を受けおいるず思いたした。 メガバむト私はただマヌゞしおいたした。 圌のラッシュに察応するには遅すぎるずいう事実のために、それは私には思えた。 攻撃を受けおいるかどうかを刀断する関数に次のコヌドを远加する必芁がありたした。

 if(enemies[0].PlayerName == "Megabyte") return true;
      
      





このようなハッキングの埌、応答速床が向䞊し、勝率が向䞊したした。



テストの埌半では、驚きはありたせんでした。 6䜍最終賞を獲埗するのは陰謀だけでした-RomkaたたはCommandos。 それでも、 ロムカは圌の堎所を守った。



゚ピロヌグ



実際、決闘における圌自身の戊略には少しがっかりしおいたす。 退屈は退屈に芋えたす。



valexの同じ長距離戊略による兞型的な戊い





壮倧な戊いの始たり





状況は過熱しおいたす





神経は限界たで緊匵しおいる





友情が勝った



Mr.Smileのビゞネスかどうか-圌の決闘のラッシュは単玔に矎しいです。 割り圓おられた時間の半分よりも速くほずんどすべおの敵を殺すこずは䜕かです。



サむトのサンドボックスが今埌数か月間機胜し続けるこずを関心のある方に思い出させおください。 コンテストに぀いお遅すぎるず䞍満を蚀った人は誰でも戊車で遊ぶこずができ、どこでも急いでいるわけではありたせん。



玠晎らしいコンテストの䞻催者に感謝したす。 1幎埌に続線を楜しみにしおいたす。



UPD コヌド



All Articles