SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Games::* - Perlで
「ゲーム」しよう
  尾形 鉄次 (OGATA Tetsuji)
      Twitter: @xtetsuji
   2013/3/9 Hokkaido.pm#9
自己紹介

• 尾形 鉄次 (OGATA Tetsuji)
• Twitter: @xtetsuji
• Blog: http://post.tetsuji.jp/
• 北海道河東郡音更町→東京都中野区(18-)
• 得意技: mod_perl
今回は
「ゲーム」の話

   mod_perlの話じゃないよ
ゲームプログラマ歴
0年が語るゲーム
今回「ゲーム」を
「する」事を考えた
ゲーム「する」とは

• Play - プレイする
• Make - 作る・問題を提供する
• Solve - 問題を解く
• Create - 新しいゲームを創作する
CPAN Games::*


• CPAN には Games::* という面白そうな
 パッケージ名前空間があります
CPAN Games::*
CPAN Games::*


• ゲームの色々が収められた名前空間
• Play/Make/Solveそれぞれあるっぽい
Acme and Games

• Acme:: は寛容
 • さながら「常夏のビーチ」のよう
• Games:: も同様の場所になってほしい
 • 「砂金が取れる川辺」のように
Acme::* vs Games::*




 Acme:: 491dists / Games:: 180 dists
Games CPANデビュー
• Games::* で CPAN Authorデビューする
 のも良いのでは?

• PAUSE IDだけ取得しておいただけの
 CPAN Authorではない自分はそう思う

• ゲームが解けて、みんなも嬉しい
なぜ今ゲーム?
なぜ今ゲーム?
• 金が無い!
• 金が無い!!
•金が無い!!!
• 小遣い稼ぎしたい
ゲームで小遣い稼ぎ
• ゲームは金がかかるもの?
• 「基本無料」だけの時間食いでは?
• RMTとかダメだよ!!!
• いや、そうではない「ゲーム」もある
• 例えばペンシルパズルの懸賞問題
ペンシルパズル
数独(Sudoku)
• 世界で大人気「数独(Sudoku)」
• ペンシルパズルの代表的存在
• 「数独」も株式会社ニコリの登録商標
    です(ニコリは世界企業…)

•    では「ナンプレ」とも呼ばれる
数独(Sudoku)
•    縦列、横列、3×3領域
     それぞれ1∼9までの数
     字が1つずつ入る


•    ヒントに従って空欄の
     数字を埋める


•    変則的な数独も多々


    http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Sudoku-by-L2G-20050714.svg より
数独をPerlで解く


• 手で愚直に解く?またまたご冗談を
• まずはお約束のようにCPANモジュール
 を探してみる
数独をPerlで解く
数独をPerlで解く
• CPANモジュール10個見つかった
• モジュールによっては解けない数独も
 ある(品質はまちまち?)

• 通常の9×9以外の変則的な数独には対応
 していない場合がほとんど
数独をPerlで解く
• 簡単そうに見えて意外に数独解法プロ
 グラムは難しい

• 自分も1時間くらいで書けると取り組ん
 でみたものの、解けない数独があった

• https://gist.github.com/xtetsuji/4770196
Google画像検索

• 実はGoogle画像検索でも数独は解ける
• これがすごい便利
• 「Googleゴーグル」
Googleゴーグルで
  数独を解く
数独は意外に難しい
• 同じ数独問題でも、CPANモジュールで
 解けるものと解けないものがまちまち

• 自分でもあえて書き捨てで数独解法プ
 ログラムを書いてみたが結構難しい

• Googleゴーグルも間違える事があった
数独は意外に難しい




ここでGoogleゴーグルも間違えている
スリザーリンク

• ペンシルパズルの一つ
• これもニコリ発
• 個人的に数独より楽しいと感じている
• 懸賞問題はほとんど無いけど
スリザーリンク




 Wikipediaの解説より
スリザーリンク

• 0∼3の数字が書かれたセルがヒント
• 数字はセルの周りに引かれる線の本数
• 線は交差したりしてはいけない
• 最終的には唯一の閉曲線を作ればOK
CPANで
  スリザーリンク攻略

• 無かった or 見つからなかった
• 他のプログラムやオープンソースソフト
 でも見つからなかった

• なら自分で作ってみるかと着手
Games::Slitherlink(仮)

• 本当に未完成
• スリザーリンクに懸賞的要素は皆無、
 もはや数学的興味だけで活動中

• 少しでも動く段階になったら公開予定?
こんなこともやった

• 福引きサイトで連続で福引きを引く
• ポイント払うんだから連続で引きたい
• こういうときのWWW::Mechanize
• でもMech力が足りずJavaScriptやっつけ
色々な「ゲーム」
• ペンシルパズル
• ボードゲーム・TRPG
• コンシューマー・アーケード
• ソーシャルゲーム
• 我々にとってプログラム自体がゲーム?
批判と反
• 純粋に手で解いている人より不公平?
 • 手で解く代わりにプログラム書く
 • 数学的な使命としては、個々の問題
  を解く事よりも、問題全体を解く事
  が興味深いと感じている
数学的使命
• 例えば個別の二次方程式を解く
 • 概念の把握や計算の練習は絶対必要
• 二次方程式の解の公式を導く
 • n次方程式への興味→ガロア理論
• 概念全体を解くことは興味深い仕事
節度ある自動化を
• 規約で違反とされている事は禁止
 • MMORPGのボット問題
 • ソーシャルゲームの裏技的なもの
 • …等々
• ゲーム提供者の指示には従う
ソーシャルゲーム

• Playの何がインセンティブか?
 • Playして優越感に浸る
 • Playして好きな画像や音声をゲット
• Makeして一攫千金!
ソーシャルゲーム




     画面はモバマスです
ソーシャルゲーム

• 業界の動向を調べる意味でも色々Playす
 るのは大切だなーと最近感じた

• 実際最近のソーシャルゲームは楽しい
• これからも色んなゲームやりたい
Games:: に期待する事

• 画像認識(OpenCV?): ゴーグルライクな
• インタラクティブなゲーム(Curses?)
• もっと複雑なペンシルパズルが解ける
• ソーシャルゲームのテンプレ作成とか
Games::* で
Let’s CPAN Author!
ご清聴
ありがとうございました

Contenu connexe

En vedette

これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
 
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
 
理解したつもりになるGit入門
理解したつもりになるGit入門理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
 
Google trends to_irc
Google trends to_ircGoogle trends to_irc
Google trends to_irc
rarere
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
 

En vedette (20)

cpanfile
cpanfilecpanfile
cpanfile
 
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
 
Currying in perl
Currying in perlCurrying in perl
Currying in perl
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
 
Asset Pipeline for Perl
Asset Pipeline for PerlAsset Pipeline for Perl
Asset Pipeline for Perl
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
Takao.mt 2013
Takao.mt 2013Takao.mt 2013
Takao.mt 2013
 
Plack::Request with Encoding
Plack::Request with EncodingPlack::Request with Encoding
Plack::Request with Encoding
 
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pmYAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
 
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
 
YAPCレポートの舞台裏
YAPCレポートの舞台裏YAPCレポートの舞台裏
YAPCレポートの舞台裏
 
Use Carton
Use CartonUse Carton
Use Carton
 
理解したつもりになるGit入門
理解したつもりになるGit入門理解したつもりになるGit入門
理解したつもりになるGit入門
 
テーマ「最適化」
テーマ「最適化」テーマ「最適化」
テーマ「最適化」
 
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使うYAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
 
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
 
Google trends to_irc
Google trends to_ircGoogle trends to_irc
Google trends to_irc
 
CPAN/便利モジュール
CPAN/便利モジュールCPAN/便利モジュール
CPAN/便利モジュール
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンス
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 

Similaire à Games::* - Perlで 「ゲーム」しよう #hokkaidopm

セプキャンに参加して自分が変わったこと
セプキャンに参加して自分が変わったことセプキャンに参加して自分が変わったこと
セプキャンに参加して自分が変わったこと
Kazunori Jo
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynote
azuma satoshi
 

Similaire à Games::* - Perlで 「ゲーム」しよう #hokkaidopm (12)

コーディングアンチパターン
コーディングアンチパターン コーディングアンチパターン
コーディングアンチパターン
 
第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座
 
セプキャンに参加して自分が変わったこと
セプキャンに参加して自分が変わったことセプキャンに参加して自分が変わったこと
セプキャンに参加して自分が変わったこと
 
Perlcasual #5 発表資料
Perlcasual #5 発表資料Perlcasual #5 発表資料
Perlcasual #5 発表資料
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynote
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
面白いゲームを作る方法
面白いゲームを作る方法面白いゲームを作る方法
面白いゲームを作る方法
 
2012年11月 レアジョブ学習法共有会
2012年11月 レアジョブ学習法共有会2012年11月 レアジョブ学習法共有会
2012年11月 レアジョブ学習法共有会
 
20130927 perlbeginners 10 time-piece
20130927 perlbeginners 10 time-piece20130927 perlbeginners 10 time-piece
20130927 perlbeginners 10 time-piece
 

Plus de 鉄次 尾形

Plus de 鉄次 尾形 (20)

Perl入学式 2018年度の報告
Perl入学式 2018年度の報告Perl入学式 2018年度の報告
Perl入学式 2018年度の報告
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
 
俺のこだわりデスクのその後
俺のこだわりデスクのその後俺のこだわりデスクのその後
俺のこだわりデスクのその後
 
Hokkaido.pmと7年
Hokkaido.pmと7年Hokkaido.pmと7年
Hokkaido.pmと7年
 
WordPress 運用を支える Perl
WordPress 運用を支える PerlWordPress 運用を支える Perl
WordPress 運用を支える Perl
 
障害対応とその防止策
障害対応とその防止策障害対応とその防止策
障害対応とその防止策
 
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
 
コードの動的生成のお話
コードの動的生成のお話コードの動的生成のお話
コードの動的生成のお話
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
 
Perlで生きる10年
Perlで生きる10年Perlで生きる10年
Perlで生きる10年
 
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き穏やかにファイルを削除する続き
穏やかにファイルを削除する続き
 
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅日本全国ぶらりPerl旅
日本全国ぶらりPerl旅
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する
 
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
 
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ
 

Dernier

Dernier (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Games::* - Perlで 「ゲーム」しよう #hokkaidopm