プログラミングは芸術だ!

web系エンジニアの備忘録 「プログラミングは芸術」を座右の銘として日々勉強中 最近Androidもやってます

CODE RUNNER 2015 予選B に出場しました

CODE RUNNERとは

キャリフル、チームラボ、Atcoderで協賛、運営している
短時間マラソンマッチのプログラミングコンテストです

2014年に第1回がございまして、今年は第2回目の開催となっております
基本の対象者は学生なのですが、社会人も予選は出場することができます!
ということで10月31日に開催された予選Bに出場しました!

coderunner.jp


予選Bはこんな問題

魔法の力を、ためて戦え!「Charge And Hit」

制限時間 3 時間

1. ゲーム概要
「Charge And Hit」は3人1部屋でゲームを行います。ユーザーは入室/攻撃APIをリクエストするとシステムにより各部屋に割り振られます。部屋には10匹の敵が並んでいて、ユーザーは任意のタイミングで一番前の敵を魔法で攻撃します。攻撃によって敵に与えるダメージは「魔法をためた時間」に応じて高くなります。ただし敵の体力を超えるダメージは切り捨てられて体力と等しい値になります。部屋内で与えたダメージの合計値が大きい順に室内順位がつけられ、その室内順位に応じてスコアを得ます。ユーザーは他のユーザーより多くのダメージを与えて、スコアを多く得ることを目指します。

問題の詳細は参加登録するとみることができますので、興味があるかたはぜひに!(※キャリフルの登録はしなくても問題は見れます)

去年と同様に、
予選Aは完全な個人戦、予選Bは他の参加者とのバトルという感じでした!


私の結果

f:id:gamu1012:20151101144958p:plain
name:gamu1012
rank:92
max score:30090

なんとなく目標にしていた100番以内も達成できて、満足です!
最後の10分でsocreを2000くらい伸ばせたので、大興奮でしたwww


最終的な方針

CODE RUNNER 2015 予選Bで使用したソース · GitHub

  1. 残りのモンスターの中で一番初期HPが高いやつなら、とりあえずアタック(他の2人への牽制と嫌がらせのため)
  2. ある程度HPがある的を倒せるなら倒す
  3. 倒しきれなくても、ある程度damageが与えられるなら、アタック

アタックするべきHPの値は手動でちょこちょこ変更しながら、
別コードで入った10部屋ごとの合計得点を出して、判断、調整をしていました


最後に3位だったらとりあえずアタック という ロジックを外したのと
ログを眺めながら、手動で調整用にアタックするようにしたらスコアがぐんっと伸びて、いい感じでした!
手動、最強説!

終了してから気づいたのですが、
最後まで、すべての敵を倒しきっても部屋に残るようなプログラムを書いてしまっていて、とても時間を無駄にしてまったのが悔やまれます。




所感

去年も思ったのですが、本当にCODE RUNNERは楽しい!
短時間マラソンマッチがもっと増えてくれたら嬉しいなと!
なぜか2年連続、予選Aには都合がつかず、出場できていないのが悔やまれます・・・

今回スコアを伸ばすには、他の参加者に対しての牽制・嫌がらせが大事だったみたいです。
1位のyosupoさんが他の2人がアタックしそうなちょっと手前でアタックする方針だったというお話をしており、
このロジックを実装すること自体は難しくないと思うのですが、
そういう発想が素早く思いつくのが上位なんだなーとしみじみ感じました

地頭の問題もあるかもしれませんが、そこをウダウダ言っていてもしょうがないので、
もっと経験を積んで、小さなノウハウ、テクニックを習得していきます!

運営の皆様、ありがとうございました!
来年も是非、開催よろしくお願いします!

漫画、アニメ、声優ラジオに目覚めた1冊

今週のお題「人生に影響を与えた1冊」

先週に続き、今週のお題でブログを書きます

今週のお題は「人生に影響を与えた1冊」とのことで、
投稿された記事をいくつか見ていると、とても高尚な記事が多かったので、
プログラミングを始めたきっかけとか、そういうことを書こうかと思ったのですが!
このお題はべつにそんな真面目なことばっかじゃないよなーと思ったので、今回はこちら


自分が漫画、アニメ、声優ラジオに目覚めた1冊

ケンコー全裸系水泳部 ウミショー

2005年から2008年にマガジンで連載されていた、はっとりみつるさんの漫画www.amazon.co.jp



普段はジャンプを読んでいたので、マガジンの漫画については知らなかったのですが、
2chまとめで深夜アニメにエロいのがあるという噂を目にして、
見て、すぐにはまり、アニメを見るし、漫画も全巻買うという流れに


生天目さんと豊崎さんのウミショーのラジオを聞くようになり、ラジオにもはまっていきました
この時はまさかこの後けいおん!で豊崎さんがあんなに有名になるなんて思っておらず、
いや実は俺こんな時から知っているだぜと鼻を高くしていた恥ずかしい思い出もあります


そして、そこからハルヒなども見るようになり、そのアニメのラジオを聞くようになり
音泉、超!A&G、ラジオ関西の声優ラジオも聞くようになりどっぷりはまっていきました

その後も漫画は色んなのを買い続けて、結構な数を読みました(1000冊くらい?


今はアニメは全く見なくなってしまいましたが、今でも漫画とラジオは趣味として続いております

以上

前回の今週のお題charlie1012.hatenablog.jp

学びたいことがいっぱい!

今週のお題「いま学んでみたいこと」

初めての今週のお題
学びたいことを5つほど書きました
上からモチベーション順!

アルゴリズム,競技プログラミング

大学生時代は趣味レベル競技プログラマーだったわけですが、
最近はめっきりやりらなくなってしまいました

ときどきやると実力が明らかに落ちてるのがわかるのが、ショックでしょうがない・・・!
アリ本も大昔に買っただけになってしまっているので、やろうかなと!

競技プログラミング系以外のアルゴリズムもやりたい!今週のお題「いま学んでみたいこと」
アルゴリズム強化月間を設けるぞー!


PHP

普段の仕事はPHPが中心なので、平日はほぼ毎日触っているわけなので、基本的には使えるわけです
ただもうちょっと深く身につけたいかなと、
PHPであんまり普段使っていない標準ライブラリとかから、
メモリ管理やどうやって実装されているかなどの根本を学びたいなと思っております

他のwebでよく使われる言語をやるよりは、
今はPHPを深くやろうかなという心境です


Androidアプリ

これは完全に業務の影響なのですが、
Androidアプリの運用開発に携わることにもなったので、
1つ2つくらいプライベートでアプリ作ってリリースまでやりたいなー的な!


Scala

上記で PHPを深くやろう と書いておきながら、ここでScala

Javaがそこそこ書けるので、Scalaもやっておこうかなぐらいの感じですけどね!
Scalaで関数型の書き方や考え方を身につけようかなと!
(あとはPHPだけで大丈夫なのという心配もあるよね)


コーヒー

ちょっと別の趣向でwww.excite.co.jp
これに行きたい


以上!