Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
脱出ゲームのすゝめ
Search
kokuyouwind
April 11, 2016
Programming
0
31
脱出ゲームのすゝめ
脱出ゲームを作ったので、それをPRするLTスライドです。
https://github.com/kokuyouwind/escape-from-the-repository
kokuyouwind
April 11, 2016
Tweet
Share
More Decks by kokuyouwind
See All by kokuyouwind
APMをちゃんと使おうとしたら、いつのまにか独自gemを作っていた話
kokuyouwind
0
440
RBS meets LLMs - Type inference using LLM
kokuyouwind
0
610
オンラインボードゲームを作りたい人生だった
kokuyouwind
0
270
1年間本番運用してわかった、スタートアップこそAWS Copilot CLIを使うべきNつの理由
kokuyouwind
2
9.8k
なるべく楽したいAWSセキュリティ
kokuyouwind
1
32
Railsパフォーマンス・チューニング入門
kokuyouwind
0
190
Rubyパターンマッチに闇の力が備わり最強に見える
kokuyouwind
0
48
Slackワークフロー活用術
kokuyouwind
0
55
10分で作る勉強会アプリ
kokuyouwind
0
31
Other Decks in Programming
See All in Programming
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
600
TypeScriptのパフォーマンス改善
yajihum
12
4.7k
Revisiting the Hotwire Landscape after Turbo 8 @ RailsConf 2024, Detroit
marcoroth
3
580
TypeScriptから始める VR生活
tamagokakeg
2
100
ペパボOpenTelemetry革命
pyama86
2
220
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
390
スタックトレース始めてみた
kuro_kurorrr
2
220
RailsConf 2024: Riffing on Rails: sketch your way to better designed code
kaspth
0
200
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.4k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
49
16k
Implementing Design Systems in Swift
seyfoyun
2
520
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
610
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
60
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
The Cost Of JavaScript in 2023
addyosmani
21
3.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
GraphQLとの向き合い方2022年版
quramy
33
12k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Agile that works and the tools we love
rasmusluckow
325
20k
How to Ace a Technical Interview
jacobian
273
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Transcript
脱出ゲームのすゝめ 黒曜 @kokuyouwind
$ whoami 黒曜 / 株式会社Misoca に転職して半年 ふだんのギークバーは初 アナログゲームナイトによく出没 現職: Ruby
on Rails/React 前職: PHP/Scala 趣味: OCaml @kokuyouwind
さくらインターネットとも コミュニティとも 全く関係ない話をします
リアル脱出ゲーム http://realdgame.jp/
リアル脱出ゲーム http://realdgame.jp/ ある部屋にあなたは突然閉じ込められる。 周りには同じ境遇の⼈たちがたくさんいる。 部屋にはさまざまなアイテム、暗号、パズルが隠されているようだ。 暗号を解き、鍵を開き、箱を開け、 制限時間内に最後の鍵を⼿に⼊れることができれば あなたは脱出に成功する。
楽しい! ⾃分も作りたい!
作った
作った プログラマ向けの謎解き Github で公開 ファイルを編集したり コマンドを打ったりして 進⾏するゲーム プログラミング系の知識 脱出ゲームのひらめき git
ならではの仕掛け https://github.com/kokuyouwind/escape-from-the-repository
例題
例題 アクセサヒープクラスフラグ マクロコンパイラマージクロージャ アセンブラバブルブールコメント 整列の前後を読め
例題 アクセサヒープクラスフラグ マクロコンパイラマージクロージャ アセンブラバブルブールコメント 整列の前後を読め ( ソート)
例題 アクセサヒープクラスフラグ マクロコンパイラマージクロージャ アセンブラバブルブールコメント 整列の前後を読め ( ソート)
例題 アクセサヒープクラスフラグ マクロコンパイラマージクロージャ アセンブラバブルブールコメント 整列の前後を読め ( ソート)
例題 アクセサヒープクラスフラグ マクロコンパイラマージクロージャ アセンブラバブルブールコメント 整列の前後を読め ( ソート) 答え:さくらクラブ
「謎解きを作る」という謎解き
謎解きを作るという謎解き Q. 正しい⼊⼒のときだけ出⼒が得られるスクリプトを書け。 ただし、ファイルを⾒ただけでは⼊⼒も出⼒も わからないようにせよ。 また、1 スクリプトに対し正しい⼊⼒は数種類あり、 それぞれ別の出⼒を返すようにせよ。
謎解きを作るという謎解き $ cat key invalid $ ./run.sh error: invalid key
$ echo 'key1' > key $ ./run.sh これは正しいkey です $ echo 'key2' > key $ ./run.sh これは別の正しいkey です
謎解きを作るという謎解き #!/bin/sh cd `dirname $0` file=$(md5sum key | cut -c
1) openssl aes-256-cbc -d -in data/$f -pass file:key
謎解きを作るという謎解き
謎解きを作るという謎解き Q. 正しいkey を設定したはずなのに復号に失敗した。 なぜか。
謎解きを作るという謎解き Q. 正しいkey を設定したはずなのに復号に失敗した。 なぜか。 A. key の終端に改⾏が⼊っていた。 openssl ではpass
は最初の⾏しか使⽤しないが、 md5sum 値が変わって別の⼊⼒ファイルを⾒ていた。
謎解きを作るという謎解き #!/bin/sh cd `dirname $0` cat key | tr -d
'\n' > key file=$(md5sum key | cut -c 1) openssl aes-256-cbc -d -in data/$f -pass file:key
謎解きを作るという謎解き Q. ファイルを実⾏したらkey ファイルが空になった。 なぜか。
謎解きを作るという謎解き Q. ファイルを実⾏したらkey ファイルが空になった。 なぜか。 A. 出⼒ファイルは新規モードでオープンするので、 ⼊⼒が空になった。
謎解きを作るという謎解き #!/bin/sh cd `dirname $0` cat key | tr -d
'\n' > key2; mv ke file=$(md5sum key | cut -c 1) openssl aes-256-cbc -d -in data/$f -pass file:key
謎解きを作るという謎解き 他にも⾊々ありましたが、時間がないので割愛…
まとめ 作ったので遊んでみてね! 謎を解くのも楽しいけど、謎を作るのも楽しい ただしシェルスクリプトはつらい 新しい謎解きゲームも考えていきたい 協⼒者募集!( 制作とかテストプレイヤーとか) https://github.com/kokuyouwind/escape-from-the-repository