Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ドキドキライブコーディング in BuriKaigi2019 ~全てが0になる、全てがAになる~ @RyotaMurohoshi 2019/01/26(土) Burikaigi 2019
Slide 2
Slide 2 text
「ドキドキライブコーディング」 を見るの、皆さんは初めてですか?
Slide 3
Slide 3 text
「ドキドキライブコーディング」は 2014年、小島さん・石野さん・鈴木さんの 3人ではじまりました
Slide 4
Slide 4 text
2015/1/31(土) 富山県 呉羽ハイツ
Slide 5
Slide 5 text
第2回ドキドキライブコーディング を観客として、見ていました。
Slide 6
Slide 6 text
『めちゃくちゃやばい。 C#すげぇ。この人達やばい』 そう思ったんです。
Slide 7
Slide 7 text
その時のテーマは 「七並べ」
Slide 8
Slide 8 text
「七並べ」のロジックを C#で実装するプログラムバトル
Slide 9
Slide 9 text
アルゴリズムを駆使したバトル? 違う!それ"だけ"じゃない!
Slide 10
Slide 10 text
例えば、小島さんの作戦 「相手のロジックをすり替え、 挙動を書き換える」
Slide 11
Slide 11 text
『C#こんなことできるのか! ていうか これって”そういう戦い”か!』
Slide 12
Slide 12 text
ドキドキライブコーディングは 普通の プログラミングバトルじゃない
Slide 13
Slide 13 text
相手の裏を書き C#を駆使し、相手を倒す
Slide 14
Slide 14 text
そして2017年 第4回ドキドキライブコーディング 俺、「むろほし」も参戦
Slide 15
Slide 15 text
2017年のテーマ テーマ : 四人打ちオセロ
Slide 16
Slide 16 text
「むろほし」の作戦 No.1 開始時にマスを書き換える 一手目で全部俺のマス、作戦
Slide 17
Slide 17 text
結果
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
成功
Slide 20
Slide 20 text
しかし失格
Slide 21
Slide 21 text
ある人は言いました 「あれはダメだ。オセロじゃない」
Slide 22
Slide 22 text
『なるほど。 オセロのルールは 守らなきゃいけないのか。』
Slide 23
Slide 23 text
時が経ち 第5回 四人打ちオセロ 再び
Slide 24
Slide 24 text
「むろほし」の作戦 No.2 他の3人の挙動を乗っ取り 終局まで全部コントロール、作戦
Slide 25
Slide 25 text
結果
Slide 26
Slide 26 text
成功、しかしまた失格
Slide 27
Slide 27 text
さらにさらに 第6回 四人打ちオセロ またまた
Slide 28
Slide 28 text
『流石に今回は、真面目にやろう 三度目だし・・・』
Slide 29
Slide 29 text
『そう言えばこの四人打ちオセロ チーム戦だった・・・』
Slide 30
Slide 30 text
「むろほし」の作戦 No.3 石野さんをいい感じにサポート 石野さんに勝ってもらおう!作戦
Slide 31
Slide 31 text
結果
Slide 32
Slide 32 text
敗北
Slide 33
Slide 33 text
ただそれ以上に悔しかったのは、
Slide 34
Slide 34 text
バトル後のコメント 「今回は破壊力が足りなかったんじゃない?」 「小利口にまとまりすぎでは?」 「自分の役割がわかっていないのでは?」
Slide 35
Slide 35 text
そこまで言うなら やってやんよ!
Slide 36
Slide 36 text
ここから 今回の話
Slide 37
Slide 37 text
作戦名
Slide 38
Slide 38 text
〜全てが0になる 全てがAになる〜
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
● 16[byte]のデータソース ● エンコードし、デコード ● 元のデータソースと、 デコード結果を比較 ● 1000000回繰り返し ● ここまでかかる時間で勝負
Slide 42
Slide 42 text
「むろほし」の実装
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
元のデータソースを Clearする (0で書き換える)
Slide 46
Slide 46 text
エンコード結果は固定 『"AAAAAAAAAAAAAAAAAAAAAA=="』 デコード結果も固定 『new byte[16]』
Slide 47
Slide 47 text
〜全てが0になる 全てがAになる〜
Slide 48
Slide 48 text
Base64での 処理時間バトル
Slide 49
Slide 49 text
エンコード・デコード ちゃんとした! ※ただしデータソースは書き換えた
Slide 50
Slide 50 text
注意!
Slide 51
Slide 51 text
こう言う感じで意図せず、配列やリスト の中身を書き換えて、副作用を与えること 本当にやっちゃダメだぞ!約束だ! 本当に、普通のコードじゃダメだぞ!約束だ!
Slide 52
Slide 52 text
おまけ 実際は、「bytes.AsSpan().Clear()」 よりも、forで回して0クリアした方が早かった 面白いから、こっちを採用したよ!
Slide 53
Slide 53 text
ドキドキライブコーディング in BuriKaigi2019 ~全てが0になる、全てがAになる~ @RyotaMurohoshi 2019/01/26(土) Burikaigi 2019
Slide 54
Slide 54 text
Fin