栄冠の行方は!?夏のセカチャレ結果発表!

初めて複数のタイトルに対応する形での開催となった本イベント。カードゲーム×ITの学びの機会として、また腕試しの場として、数多くのご応募をいただきました。誠にありがとうございます。
※各課題の詳細はこちら
たくさんのご参加の中から、特に優れた作品をお寄せいただいた5名の方に、カードラッシュ様で1ポイント=1円としてご利用いただけるポイントを進呈いたします。また、数名の方に弊社より採用のオファーを、ご応募くださった方全員に参加賞となるスリーブをお送りいたします。
なお、Sekappyでは今後もプログラミングチャレンジを実施予定です。最新情報は弊社の公式Twitterアカウント @SekappyOfficial から発信いたしますので、ぜひフォローして続報をお待ちください。
それでは以下、優秀作品の発表です!

部門(1) 優秀作品(2名)

実務未経験の方を対象とした部門(1)のお題は、コンボが初手に揃う確率の計算ツールでした。
「初手にパーツが揃うかどうか」という、あらゆるゲームに共通する(?)コンボデッキの命題に挑むこちらの課題。デッキ内のコンボパーツや土地枚数を指定し、それらが初手に揃う確率を求めるプログラムを製作いただきました。
3部門の中でももっとも多くのご応募を頂戴した本部門。今回は、特に素晴らしい作品をお寄せくださった3名の方に、カードラッシュポイント10000ポイントを進呈いたします。

制作者:28歳 男性

アピールポイント
インターネット上で容易に手に入る形式のデッキリストのインポートが可能な点
デッキリストの書式があえば多くのカードゲームに対応
関数の型明記や、コメントを充実させ、読みやすいコードを意識したReadmeを含むこと
講評
GUIで実行可能となっており、実行結果はモンテカルロ法を使用して計算されています。品質の優れた作品という印象を受けました。実行時にプログレスバーを表示し、進捗の分かりやすいUIも加点ポイントです。
MTGアリーナのデッキリストを元に実行できる仕様が、プレイヤー視点でも親切ですね。
入力値を空欄にした場合、プログラムが落ちるようです。保守性の向上が目指せるとより良いでしょう。

制作者:33歳 男性

部門1:コンボが初手に揃う確率の計算ツール(カードラッシュポイント10000ptプレゼント)
アピールポイント
全くのプログラミング初心者からRuby on Rails Tutorialで学習を始めました。学習したことを用いてWebアプリケーションを作ってみたいと思っていたところ、貴社のプログラミングチャレンジの募集が目に止まり参加を決めました。
エクスポートされたデッキリストを正規表現を用いてハッシュ化し、セレクトボックスでカード名を指定できるように工夫しました。また、コンボパーツが2種類ある場合に対応できるように準コンボパーツのカラムを追加しました。
講評
過不足のない手堅い内容となっていました。フレームワークはRuby on Rails、CSSはBootstrapを採用し、保守性の向上が見られます。
デッキリストはMTGアリーナのエクスポートに対応している点・準コンボパーツを設定することで同じ役割のパーツを纏めて計算できる点もプレイヤー視点で便利でした。
入力値のバリデーション処理が設定されているのも高評価です。総じて優れた作品と言えます。

制作者:23歳 男性

部門1:コンボが初手に揃う確率の計算ツール(カードラッシュポイント10000ptプレゼント)
アピールポイント
0. 特定のゲームに特化している
前提として、課題例に挙げられている複数のTCG対応ではなく、1つのタイトルに特化したツールとした。
該当ゲームにおけるキーカードが必要なターンは、初手だけでなく進化前後(4-5ターン)や7ターン目など、デッキタイプによって異なる。そこで、初手だけでなく各ターンまでに揃う確率を出力し、より実際のゲームプレイに役立つ仕様とした。
1. デッキリストのテキスト化が必要なく、URL1つで入力できる
該当ゲームではデッキの公開はテキストではなくスクリーンショットまたはデッキコードで行われるのが一般的である。本ツールはこのうちデッキコードから確認できるURLでの入力とすることで、よりユーザーが手軽に使用しやすいよう設計した。
2. マリガンとそのキープ基準の設定に対応している
該当ゲームではサーチカードが少なく、マリガンが占めるドローの比重は大きい。そこで、ゲーム内のマリガン方式に対応し、より実戦に近いケースで確率が計算できる。
複数のキーカードや、キーカードではないもののマリガンでキープするカードも設定できるようにし、出力を見て、マリガン基準の検討も同時に行うことができる仕様とした。
3. Mac/Win両対応
本ツールはMac OSで開発したが、Windowsでも動作するよう互換性を持って設計した。
講評
初手だけにとどまらず、各ターンに引く確率も表示されるため、確率計算としてたいへん優秀であると感じました。GUIで作られており、操作方法も簡便です。
用途に合わせてファイルを分割したり、コメントが付けられていたりする点も、保守性の観点から優れています。
10万回の試行回数をもとに実行されているため、計算完了までに時間がかかるのが難点でしょうか。より効率化が図れると良いですね。また、カードが複数設定できると利便性が高まるでしょう。

部門(2) 最優秀作品(1名)

実務経験3年未満の方を対象とした部門(2)の課題は、デッキシャッフルツール
ただランダムにカードを並べるだけでなく、シャッフル方法による結果の違いまで実装するという変わったお題となった本部門。
今回は、高い独自性と視覚化された結果表示が印象的だったこちらの作品を最優秀賞とさせていただきました。今回は実務経験ギリギリ1年未満でのご参加ということで、ぜひ次回は部門3に挑んでいただければと思います。製作者様には、賞品としてカードラッシュポイント50000ポイントを進呈いたします!

制作者:30歳 男性

部門2:デッキシャッフルツール(カードラッシュポイント50000ptプレゼント)
アピールポイント
業務経験ギリギリ1年未満です!スリーブだけでもほしいです!
◇アピールポイント
  • 特にヒンズーとファローは人間の実行結果に近くなるようランダム性を作り込んでいます。
  • 最後の実行結果を✕ボタンで取り消すことができます。
  • 実行結果を視覚的に表現することで、どれくらいランダムに混ざったか分かりやすくしています。
  • 使い勝手を良くしようとした結果、課題の内容(「デッキはテキストファイルから読み込むなどで情報を取得しておく」「続行の可否を問いかける場合」)からズレてしまっています。しかし使いやすいはずです。
講評
実行結果は問題なく、GUIを用いて操作も簡潔にされていました。
異なる4種類のシャッフルが、きちんと差別化して採用しています。さらにシャッフル前後の変化を散布図のような形式で見やすくしている点が素晴らしい。お見事でした。
結果が下に追加されていく仕様は、回数が増えた際のスクロールのが煩わしいため改善の余地がありそうです。

部門(3) 最優秀作品(1名)

部門(3)は実務経験の有無を問わないぶん、難問となっています。質問への解答を繰り返してカードを絞る遊びが楽しめる、カードゲーム版アキネイターを作成いただくテーマでした。
カード名で本家アキネイターと同じ遊びを楽しめちゃう、高度なツールを製作する必要があったこちらの課題。完成させること自体が難関となりました。今回は応募できなかった方も、ぜひ次回以降の開催で挑んでみてくださいね!
今回は、限られた応募期間で見事に完成させてくださった、こちらの作品を最優秀賞に選出いたします!製作者様には、カードラッシュポイント50000ポイントを進呈いたします!

制作者:22歳 男性

部門3:カードゲームアキネイター(カードラッシュポイント50000ptプレゼント)
アピールポイント
【設計について】
まず設計段階で、カードゲームアキネイターが通常のアキネイターと違う点として数値情報の重要性がある考察した。人物を連想する際に、その人物の身長、体重などを事細かに思い出すことは少ないだろう。実際には何をしたか、何に所属しているかなどを考えることが多いと思う。しかしカードゲームにおいて数値情報とは最も重要な要素の1つである。パワーやコストなどが無ければカードゲームは面白みに欠けると思う。そのためデータベースの設計では数値情報を丁寧に扱うことを心掛けた。
【アルゴリズムについて】
この課題の一番重要な点は質問数の削減だと考えた。全てのカードを考慮し、平均値が最小になるようにするならば、50:50に分かれるような質問を並べればよいのだが、人気のカードに手早くアクセスできる方法はそうではない。速攻を持つ?などのクリティカルな質問をある程度考慮しなければならない。そのために過去の問題の解答頻度からある程度問題を絞り込めるようなアルゴリズムを意識した。
講評
大きな処理はファイル分割され、DB処理は機能ごとに関数で分割されています。保守性の向上が見られるとともに、動作を軽くしており優秀です。製作者様の若さでこれだけの作品を完成まで導く能力もお見事。今後のスキルアップにも期待が膨らみます。
テストデータが少ないため、結果についてはさらなる改善が見込めそうです。ユーザーによるデータ登録ではなく、AI学習が可能な形になれば理想ですね。
ご紹介は以上となりますが、惜しくも選外とさせていただいた作品も素晴らしいものばかりでした。改めて、ご応募くださった皆様に御礼申し上げます。賞品も順次発送しておりますので、到着をお待ちいただければ幸いです。
Sekappyでは、これからもカードゲーム×ITを盛り上げるべく、プログラミングチャレンジを継続開催してまいります。本記事で企画を知られた方、自分のスキルを試してみたいという方、賞品獲得を狙っちゃおう!という方、ぜひ次回の開催を楽しみにお待ちください。
この度は多数のご参加、誠にありがとうございました。