SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
私立プログラミングキャンプ2014 
ソースコードをAAに 
変換するやつやってみた 
@hakatashi
自己紹介 
● 博多市(hakatashi) 
● 本名: 高橋光輝 
● 東京大学理科一類2年 
● Web開発に興味 
\コミケうめえ/
プログラマの遊び 
yuruyuri.com
プログラマの遊び 
madoka-rnagica. 
com
作ったもの 
AAify
作ったもの 
● ソースコードと白黒画像を食わせるとAAっぽ 
く整形してくれる 
● JavaScriptのみ対応 
● 流行りのnode.jsで実装
実演
実演
工程1 パース 
● UglifyJS付属のtokenizerを使用 
● 簡便のため空白が必要な場所に空白1文字の 
トークンを挿入 
– ['new', 'Object'] → ['new', ' ', 'Object']
工程2 画像処理 
● pure JavaScriptの画像処理ライブラリ 
camanを使用 
– ブラウザでも動くかも?
工程3 トークン配置 
● たいへん 
● 画像の形に合うように、なるべく多くのトーク 
ンを詰める必要がある
(´-`).。oO(なるべく多くのトークンを詰める…?)
_人人人人人人人_ 
> 動的計画法 < 
 ̄Y^Y^Y^Y^Y^Y ̄
工程3 トークン配置 
● JavaScriptでDPを実装(闇) 
● さらに1行の中の空白が均等になるようにトー 
クンを配置 
– 1行からあふれる場合の処理は間に合わず…
ギャラリー
ギャラリー
今後の課題 
● バグフィックス 
● JavaScript以外の言語への対応 
● など
ありがとう 
ございました

Weitere ähnliche Inhalte

Was ist angesagt?

ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。
ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。
ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。Kotaro Mochizuki
 
Gm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよGm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよKiminori Kato
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 
お手軽作業自動化入門
お手軽作業自動化入門お手軽作業自動化入門
お手軽作業自動化入門高見 知英
 
Scala、play初心者が触った感想 share用
Scala、play初心者が触った感想 share用Scala、play初心者が触った感想 share用
Scala、play初心者が触った感想 share用amkt922
 
kanazawa.rb LT gem
kanazawa.rb LT gemkanazawa.rb LT gem
kanazawa.rb LT gemBeMarble
 
Webエンジニアのための
プロジェクションマッピング
Webエンジニアのための
プロジェクションマッピングWebエンジニアのための
プロジェクションマッピング
Webエンジニアのための
プロジェクションマッピングKatsuyaENDOH
 
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?hiroya akita
 
DoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングDoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングK Moneto
 
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解するこれで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解するHajime Ogushi
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話sairoutine
 
久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピングKatsuyaENDOH
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームsairoutine
 
Make TypingGame in JavaScript
Make TypingGame in JavaScriptMake TypingGame in JavaScript
Make TypingGame in JavaScriptundertale1
 
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告NUTハッカソン2014成果報告
NUTハッカソン2014成果報告Joe_noh
 
Siv3Dのすゝめ
Siv3DのすゝめSiv3Dのすゝめ
Siv3DのすゝめAzaika At
 
20130202 unitycreators prefab
20130202 unitycreators prefab20130202 unitycreators prefab
20130202 unitycreators prefabKonabe Kurisaka
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho katokatosho1
 
Fukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライドFukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライドYUKI YAMAGUCHI
 
俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンスMasayuki KaToH
 

Was ist angesagt? (20)

ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。
ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。
ノンエンジニアが手探りでシューティングゲームを作った話。Swiftで。その入り口部分。
 
Gm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよGm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよ
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
お手軽作業自動化入門
お手軽作業自動化入門お手軽作業自動化入門
お手軽作業自動化入門
 
Scala、play初心者が触った感想 share用
Scala、play初心者が触った感想 share用Scala、play初心者が触った感想 share用
Scala、play初心者が触った感想 share用
 
kanazawa.rb LT gem
kanazawa.rb LT gemkanazawa.rb LT gem
kanazawa.rb LT gem
 
Webエンジニアのための
プロジェクションマッピング
Webエンジニアのための
プロジェクションマッピングWebエンジニアのための
プロジェクションマッピング
Webエンジニアのための
プロジェクションマッピング
 
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
 
DoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングDoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリング
 
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解するこれで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
 
久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
 
Make TypingGame in JavaScript
Make TypingGame in JavaScriptMake TypingGame in JavaScript
Make TypingGame in JavaScript
 
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
 
Siv3Dのすゝめ
Siv3DのすゝめSiv3Dのすゝめ
Siv3Dのすゝめ
 
20130202 unitycreators prefab
20130202 unitycreators prefab20130202 unitycreators prefab
20130202 unitycreators prefab
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho kato
 
Fukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライドFukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライド
 
俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス
 

Mehr von Takahashi Koki

NPCA System Scan 2014 @hakatashi 解説スライド
NPCA System Scan 2014 @hakatashi 解説スライドNPCA System Scan 2014 @hakatashi 解説スライド
NPCA System Scan 2014 @hakatashi 解説スライドTakahashi Koki
 
npca System Scan 2013 博多市解説
npca System Scan 2013 博多市解説npca System Scan 2013 博多市解説
npca System Scan 2013 博多市解説Takahashi Koki
 
npca 2013年度夏合宿 デザイン実習講義 補助スライド
npca 2013年度夏合宿 デザイン実習講義 補助スライドnpca 2013年度夏合宿 デザイン実習講義 補助スライド
npca 2013年度夏合宿 デザイン実習講義 補助スライドTakahashi Koki
 
2013年度夏学期 東京大学情報シケプリ Part1: 概要
2013年度夏学期 東京大学情報シケプリ Part1: 概要2013年度夏学期 東京大学情報シケプリ Part1: 概要
2013年度夏学期 東京大学情報シケプリ Part1: 概要Takahashi Koki
 
いいデザインと悪いデザイン
いいデザインと悪いデザインいいデザインと悪いデザイン
いいデザインと悪いデザインTakahashi Koki
 

Mehr von Takahashi Koki (7)

NPCA System Scan 2014 @hakatashi 解説スライド
NPCA System Scan 2014 @hakatashi 解説スライドNPCA System Scan 2014 @hakatashi 解説スライド
NPCA System Scan 2014 @hakatashi 解説スライド
 
2048 on FPGA
2048 on FPGA2048 on FPGA
2048 on FPGA
 
npca System Scan 2013 博多市解説
npca System Scan 2013 博多市解説npca System Scan 2013 博多市解説
npca System Scan 2013 博多市解説
 
npca 2013年度夏合宿 デザイン実習講義 補助スライド
npca 2013年度夏合宿 デザイン実習講義 補助スライドnpca 2013年度夏合宿 デザイン実習講義 補助スライド
npca 2013年度夏合宿 デザイン実習講義 補助スライド
 
2013年度夏学期 東京大学情報シケプリ Part1: 概要
2013年度夏学期 東京大学情報シケプリ Part1: 概要2013年度夏学期 東京大学情報シケプリ Part1: 概要
2013年度夏学期 東京大学情報シケプリ Part1: 概要
 
いいデザインと悪いデザイン
いいデザインと悪いデザインいいデザインと悪いデザイン
いいデザインと悪いデザイン
 
写研DTP参戦
写研DTP参戦写研DTP参戦
写研DTP参戦
 

ソースコードをAAに変換するやつやってみた