3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Computer SocietyAdvent Calendar 2024

Day 1

三田祭展示物全紹介2024

Last updated at Posted at 2024-12-02

この記事はKCS Advent Calendar 2024の1日目の記事です。

この記事

2日目

三田祭展示物全紹介2024

KCSでは、三田祭にて様々なものを展示していました。
僕は三田祭担当なので、三田祭の展示物をすべて紹介しようと思います。

0. 三田祭準備編

三田祭の展示物を紹介する前に、三田祭の準備期間について書きます。

後期分科会前

三田祭の出展申し込みは非常に早く、5月17日までとなっている。

当時の案内ツイート:https://x.com/mitasai_pr/status/1784538301418045617

フォーム送信後、6月くらいには出展の可否が確定する。
その後、パンフレット原稿の提出と電力申請、電力面談はあるが、そこまで大きな動きはしばらくない。

後期分科会~消防訓練

後期分科会は9月後半におこなわれる。今後の詳しい動きを説明され、大量のフォームを提出しろと言われる。今年は9月25日だった。
提出したフォームは以下の10個。

  • 団体管理に関する誓約フォーム (全団体必須)
  • 参加者名簿 (全団体必須)
  • パネル確定フォーム (全団体必須)
  • 機材申請フォーム
  • 情報コンセント・無線LAN使用申請フォーム
  • 出展準備金に関する誓約フォーム (販売を行う場合必須)
  • 空調申請フォーム
  • 机・椅子申請フォーム
  • ポスター貼り抽選会応募フォーム
  • 配布・販売・企画場所外掲示物提出フォーム

大体のフォームは10月14日提出もしくは個別面談で回答だったが、「配布・販売・企画場所外掲示物提出フォーム」のみ10月30日提出だった。
この後個別面談が行われ、今後の詳細な動きについて伝えられる。個別面談日時はある程度自由に予約することができ、僕は10月16日にした。

その数日後、消防訓練が行われる。(区切りが消防訓練になっているのは時期的にちょうど良いため。)
ちなみに消防訓練には地元の消防士の方が来るため、三田祭の規模の大きさを実感させられる。

消防訓練~2日前

順調にいっていれば、消防訓練ごろにフォーム提出はすべて完了しているはずである。
消防訓練後、11月になると、実行委員会側から出展準備金のフォームが送られてくる。
このフォームが結構厄介で、三田祭での販売物のお釣り用の紙幣、硬貨を持っていることの確認のため、実際に写真を撮って送る必要がある。
それ以外にも参加費用の振り込みなどもこの時期におこなわれるため、会計担当と密接に連絡を取り合うことが必要。

2日前~当日

三田キャンパスでの準備期間は三田祭初日の2日前から始まる。
まずは、2日前に机・椅子移動が行われる。

準備中6.jpg

▲ これを

準備中3.jpg

▲ こうする

机・椅子移動では、三田祭実行委員会から渡される移動要綱に応じて動かすことになる。

準備中5.jpg

▲ 移動要綱

上の要綱を見てわかる通り、2人がけ机10個運搬とかやることになるため、複数人で行くことを強くお勧めする。

机・椅子移動後、細かな確認をいくつか行い、三田祭初日を迎えることになる。

三田祭展示一覧

▲ 展示物一覧
  1. 自作ゲーム展示
  2. VR体験
  3. CG映像 (未完成)
  4. 音楽アルバム販売
  5. 技術書販売
  6. はじめてのプログラミング体験
  7. 自作ブラウザ
  8. 自作OS
  9. 自己紹介サイト
  10. 競プロコンテスト
  11. ドキュメントのない自作言語でFizzBuzzチャレンジ
  12. 対話AI

1. 自作ゲーム展示

毎年恒例、ゲーム開発班による自作ゲームの展示。
今回は Launcher + 16作 + 隠し1作を展示していたので、すべて紹介します。

一覧
0. Launcher 製作者 :ともはる
初出  :七夕祭

launcher画像.png

▲ タイトル画面 本来は光り輝いている

launcher画像2.png

▲ キャラクターに話しかけることでゲームが起動できる

2023年の矢上祭から始まった、Launcherを使ったゲーム展示。そこで使われていたLauncherを、僕が作り替えたゲーム。
個人的に来場者の方にはいろいろなゲームをプレイしてほしかったので、あえて狙ったゲームを起動しにくい構造にしている。
ただ、起動時によくフリーズする、七夕祭、矢上祭では学祭開始時点で致命的なバグがあった、などの問題点がある。

個人的にLauncherを用いたゲーム展示は今後も引き継がれていってほしいため、来年の班長はがんばってください。僕はもう作る気はないです。
1. 10を作れ! 製作者 :きらと
初出  :三田祭

10を作れ1.png

▲ タイトル画面

10を作れ2.png

▲ ゲーム画面 この場合の正解は 9×2-7-1 など

与えられた 4 つの整数全てを用いて、制限時間内にできる限り多くの 10 を作るスコアアタックゲーム。制限時間は3分。
オンラインランキングに対応しているため、三田祭期間中には競い合っている姿をよく見た。KCSのメンバーもよく空き時間にプレイしていた。
僕自身も去年計算のゲームを作っているため、かなり刺さるゲームではあった。
現1位は28点。1問あたり6.3秒で解いている計算である。意味が分からない。
2. Avoid the Shadows 製作者 :haya
初出  :七夕祭

AtS1.png

▲ タイトル画面

AtS2.png

▲ ゲーム画面

迫りくる影をよけ続ける、弾幕よけゲーム。30秒おきに弾幕のパターンが切り替わる。
自機は常に動き続ける上に、盤面の枠に当たってもゲームオーバーとなるため、単純な操作でありながら結構難しい。
操作が単純であるという点から学祭では子供にも勧めやすく、かつやりこもうとすると結構難しいため、あらゆる年代にうけるゲームであった。
一定時間よけ続けると弾幕のパターンがループするらしいが、僕はそこまでたどり着けなかったため、ボーダーは不明。
3. Gunダッシュ 製作者 :山田枇菜太
初出  :Unity講習会 最終発表会

Gunダッシュ2.png

▲ タイトル画面

Gunダッシュ.png

▲ ゲーム画面

銃を用いたアクションでゴールを目指す、2Dアクションゲーム。
フィールド上のオブジェクトを壊すことでスコアが加算されるため、ただゴールを目指すだけでなく、スコアアタックもできる。
Spaceキーしか用いないシンプルな操作のため、子供にも勧めやすい。

また、このゲームの製作者が所属している別団体の方でもこのゲームを公開しているらしく、そちらの団体ではプレイがものすごく研究されているらしい。僕はTwitterをやっていないため確認できないが、Twitter上に数々のテクニックをまとめたものが載っているらしいので、気になる人は調べてみてほしい。

4. jellyfish 製作者 :山田枇菜太
初出  :矢上祭

JellyFish2.png

▲ タイトル画面

Jellyfish1.png

▲ ゲーム画面

自機によってくるクラゲたちを誘導し、同じ色同士でぶつけて消すパズルゲーム。
自機の現在の色によってよってくるクラゲの色が変わるので、色を変えながらうまく誘導することが重要。
音が心地よく、またクラゲのアニメーションや全体のエフェクトなどが丁寧に作られており、穏やかな気持ちでいくらでもプレイできるゲームであった。
5. KAONI 製作者 :NAOKI、ふかりょー(多摩美術大学)
初出  :ニコニコ自作ゲームフェス

image2.png

▲ ゲーム画面

今回展示している中で、唯一の複数人共同制作。マップの中から「顔」に見える部分を見つけ出して、撮影するゲーム。
ニコニコ自作ゲームフェスで出展し、それ以降改良を重ねて今に至るらしい。
暗い、少し不気味な雰囲気がゲーム性にあっており、かなり作りこまれている。
steamで販売する予定らしく、発売したら買おうと思っている。
6. My Gravity 製作者 :isu
初出  :七夕祭

MyGravityGif.gif

▲ イメージGif

MyGravity1.png

▲ ゲーム画面

MyGravity2.png

▲ 矢印に触れることで、重力の方向が変化する

重力を変化させて進む、2Dパズルアクションゲーム。七夕祭のころから同じタイトルのゲームを展示しているが、三田祭ではゲーム性が大きく変わっていた。
マップ内の各所にある矢印を踏むことで、その方向に重力が変化する。
シンプルであり、かつギミックもそこまで複雑ではないにもかかわらず、しっかり考えさせるようなパズルがつくられている。
また、BGMは心地よく、ドット絵もきれいであり、ものすごいクオリティの高さを感じる。
7. Orbit Outrun 製作者 :haya
初出  :1 week jam (ゲーム開発班)

OrbitOutrun.png

▲ タイトル画面

OrbitOutrun2.png

▲ ゲーム画面

宇宙船を左右に動かし、前から飛んでくる隕石をよけるゲーム。
4段階の難易度があり、そのいずれでも一定時間よけ続けるとゲームクリアとなる。
操作に用いるのは左右の矢印キーとShiftのみであり、操作しやすい。
また、最高難易度はかなり難しくなっており、相当な熟練者でない限りクリアできない。
まとめると、操作しやすい上に、やりこもうとすると難しいゲームであるため、どの年代にもすすめられるゲームだった。

ちなみに、このゲームはゲーム開発班内の 1 week jam に向けて作ったゲームらしいが、完成~発表の間に製作者のPCが壊れてしまい、修理に出されていたため、お披露目されたのは三田祭の直前になってからだった。

8. Pointer 製作者 :ともはる
初出  :Unity講習会 最終発表会

Pointer1.png

▲ タイトル画面

Pointer2.png

▲ 勝手に動くUnityちゃんを点を打って誘導する

1日で完成させて、もう1日で改良したゲーム。かつてとあるゲームジャムに別のゲームを出展したときに、「3分で作れるゲーム」とコメントがついてことがあるが、このゲームは2日で作れることが知られている。多分1日でもいける。
ちなみにこのゲームの製作過程は全て録画してあるため、もし見てみたい人がいたら直接僕に言ってください。

このゲームは上部の「Action」のボタンを押すことでUnityちゃんの動き方が見れるのだが、この仕組みが伝わりにくかった。
また、最上部の黒い線が残りの打てる点の量であることも伝わっていないことがあった。
全体的に説明不足であったため、その部分の改善が必要。

ちなみにタイトル画面などで使われている独特なフォントは「数式フォント」というフリーフォントである。使ってみてほしい。

数式フォント

9. Push Out! 製作者 :きらと
初出  :矢上祭

PushOut1.png

▲ タイトル画面

PushOut2.png

▲ ゲーム画面

相撲をテーマにした、連打で相手を押し出すゲーム。
2人対戦のモードと、1人でCPと戦うモードの2つが用意されている。
操作が直感的でわかりやすい上に、今回の三田祭で展示したゲームの中で唯一2人プレイに対応していたり、言語を英語に変更することができたりと、かなり学祭での展示のことを考えられているゲームである。
ちなみに、1人モードの最高難易度はかなり難しい。矢上祭も含めてかなり長い時間展示の場所にいたがクリアしている人を1人しか見たことがない。
10. スクリーンランナー 製作者 :ともはる
初出  :1 week jam (ゲーム開発班)

ScreenRunner1.png

▲ タイトル画面

ScreenRunner2.png

▲ ゲーム画面 ウィンドウが動く

普通の2Dオートスクロールアクションゲームであるが、ウィンドウが勝手に動く。ウィンドウの外に出てしまうとゲームオーバーとなる。
本来Unity1weekとかで使おうと思っていたアイデアだが、よくよく考えてみるとウィンドウが動くという仕組みをWeb上で表現できないことに気づいたため、アイデアを使うためにゲーム開発班で 1 week jam を開催し、ゲームを完成させた。
僕はいつもゲームを作る際に、プレイする人が操作方法をわからなくなってしまうのを防ぐために、常に画面内に表示しているが、今作ではそれが難しかった。
そのため、究極に分かりやすい操作を実現するために、大体の2Dアクションゲームで操作に使われるキー全てで操作できるようにした。操作方法に「など」の文字が含まれているゲームは今後もしばらくは出てこないと思っている。

ScreenRunner3.png

▲ 操作方法

ちなみに、このゲームを作った時のことをKCS Tipsに書いた。ウィンドウを動かす技術はこのようなゲーム以外でも利用できるとは思うので、気になる人は読んでみてほしい。
11. Soul Rush 製作者 :nox
初出  :七夕祭

SoulRush1.png

▲ ゲーム画面

3Dのマップに自動でわいてくる敵を倒す、3Dアクションゲーム。
剣を振って敵を倒すが、連続攻撃でモーションが変わったりと細かい部分がつくりこまれている。
また、展示していた3Dゲームの中では最も操作しやすく、またゲーム性もシンプルであったと感じるため、誰にでもすすめやすかった。
本人曰く製作途中とのことで、最終的に敵を倒すことで魂を集め、集めた魂を消費することで自分を強化するゲーム性にしたいらしい。今後も完成を目指すのなら、完成が楽しみです。
12. SPS ~セカンド・パーソン・シューティング~ 製作者 :ともはる
初出  :Unity1week「かわる」

SPS_1.png

▲ タイトル画面

SPS_2.png

▲ ゲーム画面

敵の視点で自分を操作し、敵を倒す3Dアクションゲーム。Unity1weekに出展したもののデザインを全体的に変更して出展した。

Unity1week版:https://unityroom.com/games/sps-secondpersonshooting

個人的に、今年自分がつくったゲームの中では一番気に入っている。また、はじめて制作にBlenderを用いたゲームでもある。
BGMがないなど、まだ全然改良の余地があるため、今後も改良を進めていきたい。
なお、Unityroomではじめて公開したゲームでもある。Unity1weekでプレイしてくれる人たちは優しい上に、建設的な今後につながる意見をくれるので、とてもありがたい。(例のコメントがついたゲームとはクオリティが違うのもあるが。)

13. the Box 製作者 :ともはる
初出  :矢上祭

theBox2.png

▲ タイトル画面

theBox.png

▲ 例題

3Dの謎解き脱出ゲーム。
上の例題のような謎が複数出題されるので、規則性を見つけ出し、最後の謎を解いて脱出することが目的。
難易度はEasyとHardの2段階ある。
矢上祭ではあまりプレイされているところを見なかったが、三田祭では結構多くの人がHardをクリアしてくれてうれしい。三田祭の方が来場者が少なく、長時間考える環境が整っていたのもありそう。
ちなみに、製作途中ではもう一難易度作る予定だったが、製作期間の関係で断念した。ネタもないので、今後作る気はない。
14. Ultimate Pitch Battle 製作者 :さくらたいむ
初出  :矢上祭(2023)?

Ultimate_Pitch_Battle02.png

▲ タイトル画面

Ultimate_Pitch_Battle03.png

▲ ゲーム画面

音程を使って戦うカラオケのようなリズムゲーム。僕が入学後はじめて参加した学祭から展示されていたため、いつの学祭から展示しているのかは不明。このゲームのみUnreal Engineで作られている。
上の画像のように、敵が音程バーを出して攻撃してくるため、プレイヤーも同じ音程を出すことで戦うゲーム。三田祭では高難度譜面が追加された。
去年三田祭に来たゲーム会社の人がこのゲームのことを覚えていたり、このゲームをプレイするために今年の三田祭にも来た人がいることには驚いた。
マイクありでプレイしてみるとかなりプレイしやすかったため、今後も展示するのであればマイクが複数あったほうが良さそう。
15. vetere 製作者 :nox
初出  :1 week jam (ゲーム開発班)

vertere2.png

▲ タイトル画面

vertere1.png

▲ ゲーム画面

ジャンプごとに切り替わる足場を通って、ゴールを目指す2Dアクションゲーム。上の画像の茶色い足場が切り替わる足場。
残機制になっており、中間地点も存在するが、非常に難しく、クリアするためにはかなりの2Dアクション力と試行回数が必要。
ただ、操作は分かりやすい上に、操作方法が常に画面内に表示されているため、かなり操作は理解しやすく、どんな年代の人にもすすめられるゲームだった。

ちなみにタイトルの「vertere」は、ラテン語で「変化する」という意味らしい。

16. はなび 製作者 :山田枇菜太
初出  :1 week jam (ゲーム開発班)

はなび3.png

▲ タイトル画面

はなび1.png

▲ ゲーム画面 エフェクトがきれい

自機の球を引っ張って飛ばし、たくさんの花火を打ち上げるゲーム。連鎖してあてるとHit回数が増える。
操作はマウスで引っ張るだけであり、かなりシンプルで直感的なものであった。
終わりや目標はなくため、いくらでもプレイできるゲームであった。
また、全体的にエフェクト、音が美しく、その点にこだわりを感じた。
Ex. 素因数分解 製作者 :ともはる
初出  :矢上祭(2023)
七夕祭のころからLauncherのどっかしらに隠している隠し要素のゲーム。

Launcher隠し要素1.png

▲ 実は壁の裏が通れる

Launcher隠し要素2.png

▲ 少し進むと隠し部屋がある

素早く素因数分解するだけのゲームで、僕が入学してから最初につくったゲームでもある。2023年の三田祭で展示して以来、まったく手を加えていない。 ニコニコ自作ゲームフェスにも出しているため、以下のリンクからダウンロード可能。

ダウンロードリンク:https://freegame-mugen.jp/puzzle/game_11938.html

スクリーンショット (223).png

▲ タイトル画面

スクリーンショット (179).png

▲ ゲーム画面 流れてくる自然数を画面外に出るまでに素因数分解する

去年の矢上祭にて「来年もこのゲームをプレイするために来ます!」と言われたため、一応出展している。ちなみに来なかった(多分)。

2. VR体験

毎年恒例、VR体験会。
今回は、去年同様、日吉にあるKCS部室をVR Chat上で再現したワールドを体験してもらった。

VR_NoName.jpg

▲ VR体験の様子 (ではない)

Aokisan_NoName.jpg

▲ ワールドの様子

ただ、VR ChatでのVR体験では、ネット環境が必要であるという問題点がある。このような問題点を解決するために、いつかはVRゲームを自作して展示してみたい。

3. CG映像 (未完成)

KCS各班の活動内容をテーマに、各班モチーフで1体のキャラクターを作り、映像にしてつなげる、という計画だった。
しかし、三田祭までに間に合わせることができなかった。
最終日には完成していたゲーム開発班パートの映像のみを放映していたため、一応記載。

今後はコミケにて冊子を販売する予定のため、それまでには完成させる必要がある。

完成してYouTubeにアップロードしたら、ここにリンクを追記します。

4. 音楽アルバム販売

M3で販売していた、音楽班メンバーで1人1曲作曲して作ったアルバムを販売 & 会場で放送していた。販売額は500円。
今回のアルバムのタイトルは「Astrithm」であり、テーマは「星」。
収録されている楽曲と製作者の一覧は以下の通り。

  1. White hole / haya
  2. 夢見た機械 / 1010mark
  3. Acid Rain / Ikkaku
  4. Road to ... / danball
  5. A Distant Universe / ともはる
  6. starry prototype / formalhaut

クロスフェード:https://www.youtube.com/watch?v=DVMuDuIpPQM

個人的に自分が作った曲のクオリティーを気に入っておらず、つらい。

5. 技術書販売

技術書典で販売したKCS Tipsを三田祭でも販売した。販売額は800円。
なお、三田祭担当の申請ミスにより秋の分のKCS Tipsしか販売していない。ごめんなさい。

今回のKCS Tipsのテーマと著者の一覧は以下の通り。

  1. 歌が下手だから俺が合成音声になる / mark1010
  2. UnityでWindowを動かす方法 / ともはる
  3. OpenSearchでKNN検索を試してみよう! / ストーンチョコ
  4. VoiceVoxを使ったローカル環境音声対話AI / BastelColor
    (表紙:BastelColor)

来年も書きたい。

6. はじめてのプログラミング体験

はじめてのプログラミング.jpg

▲ はじめてのプログラミング体験コーナー

プログラミングをしたことない人向けのプログラミング体験を実施した。
Pythonを用い、"Hello,World!"を出力するまでを行った。

7. 自作ブラウザ

System班メンバーの一人が自作したブラウザを展示していた。
後日、本人に詳細を聞いて追記します。

(追記)
本人から説明ページのリンクを受け取ったため、貼っておきます。
https://latte72r.github.io/LSB/

また、製作者のポートフォリオも受け取ったので、リンクを貼っておきます。
https://latte72r.github.io/

8. 自作OS

System班メンバーの一人が自作したOSを展示していた。
後日、本人に詳細を聞いて追記します。

9. 自己紹介サイト

web班のメンバーが個別で製作した自己紹介サイトを展示していた。
後日web班に確認を取り、リンクを貼って良いとのことであればリンクを追記します。

10. 競プロコンテスト

競プロ展示1.jpg

▲ 展示の様子

競プロ展示2.jpg

▲ 解かれている様子 (本人から許可はとっている)

競プロ正解者数.jpg

▲ 正解者数

今年(多分)初の試みである、競プロ自作問題コンテスト。MojaCoder上で開催した。
2種類の難易度のコンテストを用意し、会場に挑戦用のPCの設置 & オンラインでの一般公開をしていた。
なお、作問時にAICの競プロ講習会の講師の方々に問題を見てもらっている。協力してくださった皆さん、本当にありがとうございました!

はじめての競技プログラミング:https://mojacoder.app/users/Tomo271828/contests/KCS2024Easy
KCSからの挑戦状:https://mojacoder.app/users/Tomo271828/contests/KCS2024Hard

はじめての競技プログラミング 競プロ未経験者向けの簡単コンテスト。全7問構成。
体感全部灰diffである。
A1 - Welcome to KCS! 問題案:ストーンチョコ
writer:ともはる

A1 - Welcome to KCS!

日吉駅でたむろしているときにストーンチョコが考え付いた問題。1問目に良さそうだったためそのまま採用した。
端の値の処理など、少し厄介なところがあるが、if文1回で解けるため結構簡単である。

A2 - I Love PC 問題案:yasu
writer:ともはる

A2 - I Love PC

yasuがAtCoderのA問題から持ってきたものを、問題の内容を一部変えて出題した。
文字列の掛け算が行えるため、Pythonだと非常に楽に解ける。

A3 - K Count 問題案:yasu
writer:ともはる

A3 - K Count

yasuがAtCoderのA問題から持ってきたものを、問題の内容を一部変えて出題した。
ちなみに友人に今回のコンテストをテストしてもらったところ、A2よりも簡単だといわれたが、結局この順序のまま出題した。

B1 - Mul Sum writer:ともはる

B1 - Mul Sum

個人的に簡単コンテストの中で一番気に入っている問題。
初心者向けコンテストに一問ぐらいは計算量の理解が必要な問題を入れたかったため、採用した。

B2 - C##### writer:ともはる

B2 - C#####

はじめて作った問題。夏合宿LTの資料にもリンクが載っている。
ちなみに与えられる文字列の長さが1であるケースがテストケースに含まれていないため、そこの場合分けをしなくてもACできたりする。

B3 - INFINITE PILLAR writer:ともはる

B3 - INFINITE PILLAR

「2頂点間距離の最大値を求めよ」を究極に分かりにくく言い換えただけの問題。
実はCG班テーマの没問題だったりする。

C1 - Cumulative writer:ともはる

C1 - Cumulative

2次元累積和をするだけの問題。
簡単コンテストに1問は典型アルゴリズムを入れたかったため、比較的思いつくことができそうな累積和を採用した。
ちなみに問題タイトルの「Cumulative」は「累積」という意味。

KCSからの挑戦状 競プロ経験者向けの非常に難しいコンテスト。KCS各班の活動内容をテーマにした、全7問構成。
茶緑水水水青青くらいの難易度。
Music - New Album! writer:ともはる

Music - New Album!

音楽班をテーマにした問題。
初期の案ではbit DPの予定だったが、結構難しい問題が多く集まったため、順列全探索やるだけの問題に変更した。
今回のコンテストの中では一番簡単な問題で、正解者は簡単コンテストも含めて全体で2番目に多かった。

Web - Where to advertise writer:yasu

Web - Where to advertise

Web班をテーマにした問題。
各Webサイトの名前が 1 から順番になっていない点や、与えられる情報が$N$個である点に引っ掛かりやすい。
Union-FindやDFSによって解くことができるが、全体的に実装が重めになりやすく、難しい。なお、本人の想定解はUnion-Findらしい。僕はDFSで解いた。
実は初期の問題文では少し条件が異なっていたが、余りにもテストケースを作るのが難しかったため、改題している。

AI - Normal Float writer:てみず

AI - Normal Float

AI班をテーマにした問題。
AI班の問題が全く思いつかなくて悩んでいたところに、てみず君が作ってきてくれた問題。本当に感謝しています。
問題文がシンプルにまとまっている上に、班の活動内容をうまく含められていて、本当にうまい問題だと感じた。
なお、僕がまだ解けておらず、解法について書くことができないので、後日、本人に聞いて追記します。

CG - Neighborhood Search writer:てみず

CG - Neighborhood Search

CG班をテーマにした問題。
「INFINITE PILLAR」よりも断然良い問題だったので、こちらを採用した。
作問過程において、愚直(異常な高速化)によって通ってしまったりで一番問題文が変化した問題でもある。
KD木を使うことで解くことができる。

System - XOR hash writer:ストーンチョコ

System - XOR hash

System班をテーマにした問題。System班班長が作問した。
実はSystem班テーマで他に作っていた問題もあったが、あまり実際の活動内容に即していなかったため、没にした。
配列の総和と総XORを同時に扱い、かつ存在する組み合わせの数を求めるとかいう、初見では本当にどうやって解くのかわからない問題になっている。
実はDPで解ける。

Movie - Bridge tour writer:Lazz

Movie - Bridge tour

これ以降の問題は非常に難しく、ともに作問者しか正解できていない。
と思っていたが、今確認してみたらともに謎の橙Coderによって正解されていた。11月27日の出来事らしい。
映像制作班をテーマにした問題。もとは競プロ班テーマの問題にしようと思っていたが、問題文を変更して映像制作班の問題にした。
制約をみるにbit DPのようだが、シンプルにbit DPをするだけでは解けず、さらに工夫が必要そう。
とても難しく、三田祭期間中は1人も正解者があらわれなかった。

Game - Can you solve this maze? writer:ともはる

Game - Can you solve this maze?

ゲーム開発班をテーマにした問題。ゲーム開発班班長が作問した。
作問期間中、僕しか解けていなかったため、正直あっているのかはわからない。
迷路の中にあるサイクルを意識することで解くことができる。実は必要なアルゴリズムの知識はBFSだけだったりする。
テストケースを作るのがかなり面倒だった。

11. ドキュメントのない自作言語でFizzBuzzチャレンジ

System班.jpg

▲ ランキングなど

KCSメンバーの一人が自作した言語"NyaZy"で、まったく情報がない状態でFizzBuzzのコードを書いてもらう、という企画。タイムアタック形式。

FizzBuzzとは? 1から順に自然数を数え、数字が15の倍数であれば"FizzBuzz"、3の倍数であれば"Fizz"、5の倍数であれば"Buzz"、上記のいずれでもなければ自然数をそのまま出力する、というゲーム。
Pythonで記述すると以下のようになる。
for i in range(1,100):
    if i % 15 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

すばやく言語仕様を理解し、そのうえで高速に実装することが上位をとるカギ。
最速は15分。

攻略法 言語仕様の理解は案外早くいけるため、いかに早くFizzBuzzを書けるかが重要。
FizzBuzzを書く上で重要になってくるのが、制御構文がwhileしかないことと、余り演算子が存在しないこと。
FizzBuzzにはif文と余り演算子が必要なため、これらをどのようにwhileだけを用いて書くかを考え、素早く実装することで最速が取れる。
ちなみに、全体的な構文の雰囲気はRustに似ている。
解答例
let num = 30;
let i = 1;
while(i <= num){
    let n = 0;
    let memo = i;
    while(memo > 0){
        memo = memo - 3;
    }
    while(memo == 0){
        n = n + 1;
        memo = 1;
    }
    let memo2 = i;
    while(memo2 > 0){
        memo2 = memo2 - 5;
    }
    while(memo2 == 0){
        n = n + 2;
        memo2 = 1;
    }
    while(n == 3){
        print("FizzBuzz");
        n = 4;
    }
    while(n == 2){
        print("Buzz");
        n = 4;
    }
    while(n == 1){
        print("Fizz");
        n = 4;
    }
    while(n == 0){
        print(i);
        n = 4;
    }
    i = i + 1;
}
0

12. 対話AI

対話AI.jpg

▲ 対話AI

KCSメンバーの一人が自作した対話AIを展示していた。
後日、本人に詳細を聞いて追記します。

(追記)
本人に聞きました。
サーバーにつないで自由に対話できるようにしようとしていたが、wi-fiが弱かったことやノイズがひどかったことなどにより、動かなかった。人が少ない朝であれば動くこともあった。
詳細はKCS Tipsに書いてあるので読んでください(自由に使える研究室サーバーがあることが条件)。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?