Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Keisuke Oohata
928 views
ライフゲーム最後まで作ってみました
Game of Life and I tried to make the last minute
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PDF
ES2015のカバレッジ計測
by
sinsoku listy
PPTX
Socket.ioを使ってライフゲームで遊ぶ
by
孝平 高田
PDF
Ruby 3の型推論やってます
by
mametter
PDF
Ruby科学データ処理ツールの開発 NArrayとPwrake
by
Masahiro Tanaka
PDF
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
PDF
セル
by
Yuuya Katou
PPTX
第3回輪講
by
mh_amako
ODP
LL Quiz LT @ LL Diver
by
wataken44
ES2015のカバレッジ計測
by
sinsoku listy
Socket.ioを使ってライフゲームで遊ぶ
by
孝平 高田
Ruby 3の型推論やってます
by
mametter
Ruby科学データ処理ツールの開発 NArrayとPwrake
by
Masahiro Tanaka
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
セル
by
Yuuya Katou
第3回輪講
by
mh_amako
LL Quiz LT @ LL Diver
by
wataken44
Similar to ライフゲーム最後まで作ってみました
PPTX
AtCoder167Dをダブリングで解く
by
Akira KANAI
PDF
競プロは人生の役に立つ!
by
Kensuke Otsuki
PPTX
Coderetreat のススメ at Developers' Summit 2013 Unconference
by
Kiro Harada
PPT
アルゴリズムとデータ構造15
by
Kenta Hattori
PDF
"What Does Your Code Smell Like?"で学ぶPerl6
by
risou
PDF
2011年12月9日
by
nukaemon
KEY
形式手法とalloyの紹介
by
Daisuke Tanaka
PDF
PFDS 8.4.3 Real-Time Deques
by
昌平 村山
PDF
怠惰なRubyistへの道
by
nagachika t
PDF
2012年1月13日
by
nukaemon
PDF
diffの真髄
by
fuku68
PDF
DP特集
by
Dai Hamada
PPT
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
PDF
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
by
Kensuke Otsuki
PPTX
Ruby講座第二回
by
mitsunaga
PDF
WUPC2012
by
Dai Hamada
PPTX
動的計画法を極める!
by
HCPC: 北海道大学競技プログラミングサークル
PDF
Burikaigi 2023「C# Live Coding!」 小島の分
by
Fujio Kojima
PDF
2011年12月16日
by
nukaemon
PDF
Optimization night 4_dp
by
Kensuke Otsuki
AtCoder167Dをダブリングで解く
by
Akira KANAI
競プロは人生の役に立つ!
by
Kensuke Otsuki
Coderetreat のススメ at Developers' Summit 2013 Unconference
by
Kiro Harada
アルゴリズムとデータ構造15
by
Kenta Hattori
"What Does Your Code Smell Like?"で学ぶPerl6
by
risou
2011年12月9日
by
nukaemon
形式手法とalloyの紹介
by
Daisuke Tanaka
PFDS 8.4.3 Real-Time Deques
by
昌平 村山
怠惰なRubyistへの道
by
nagachika t
2012年1月13日
by
nukaemon
diffの真髄
by
fuku68
DP特集
by
Dai Hamada
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
by
Kensuke Otsuki
Ruby講座第二回
by
mitsunaga
WUPC2012
by
Dai Hamada
動的計画法を極める!
by
HCPC: 北海道大学競技プログラミングサークル
Burikaigi 2023「C# Live Coding!」 小島の分
by
Fujio Kojima
2011年12月16日
by
nukaemon
Optimization night 4_dp
by
Kensuke Otsuki
More from Keisuke Oohata
PDF
Shellを書こう 02 shUnit2を使おう
by
Keisuke Oohata
PDF
Shellを書こう 01 Shellcheckを使おう
by
Keisuke Oohata
PDF
Google SpreadSheetでtwitter bot作ったよ
by
Keisuke Oohata
PDF
今更だけどSqLite触ってみたよ
by
Keisuke Oohata
PDF
Kanazawa.rb 3周年KPT
by
Keisuke Oohata
PDF
イベント継続のコツ
by
Keisuke Oohata
PDF
Kzrb金庫番
by
Keisuke Oohata
PDF
kanazawa.rb meetup #24 2 anniversary kpt
by
Keisuke Oohata
PDF
Kzrb2周年目収支
by
Keisuke Oohata
PDF
水平思考のススメ
by
Keisuke Oohata
PDF
ゆるふわっGit入門
by
Keisuke Oohata
Shellを書こう 02 shUnit2を使おう
by
Keisuke Oohata
Shellを書こう 01 Shellcheckを使おう
by
Keisuke Oohata
Google SpreadSheetでtwitter bot作ったよ
by
Keisuke Oohata
今更だけどSqLite触ってみたよ
by
Keisuke Oohata
Kanazawa.rb 3周年KPT
by
Keisuke Oohata
イベント継続のコツ
by
Keisuke Oohata
Kzrb金庫番
by
Keisuke Oohata
kanazawa.rb meetup #24 2 anniversary kpt
by
Keisuke Oohata
Kzrb2周年目収支
by
Keisuke Oohata
水平思考のススメ
by
Keisuke Oohata
ゆるふわっGit入門
by
Keisuke Oohata
Recently uploaded
PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
ライフゲーム最後まで作ってみました
1.
ライフゲーム最後まで 作ってみました kanazawa.rb meetup28 2014/12/20
2.
ライフゲームとは
3.
http://ja.wikipedia.org/wiki/ライフゲーム
4.
設計
5.
meetup26 Coderetreat mini in
Kanazawa.rb
6.
設計ポイント どのセルにおいても周囲に8つのセル が存在するようにし、判定処理を共 通にする
7.
例えば
8.
隅のセルの場合、隣接するセルは3つ ① ②③ ① ②③④ ⑤ 隅以外の1行目セルの場合、隣接するセルは5つ
9.
1つのセルに隣接するセルの数によって 処理が 異なるのは複雑になるため、好 ましくない
10.
状態が変動しない2行2列を追加することに よって常にセルに対して隣接するセルは8つ ① ②③④ ⑤ ⑥ ⑦ ⑧
11.
実装
12.
実装ポイント 状態が変更される前のセル配列で判定 処理を行う為、状態が変更された配列 とは別に保持しておく必要がある
13.
どツボに嵌っちゃいました
14.
変更前の配列がコピーできない
15.
私のRubyでの勘違い cloneやdupはディープコピーではない ディープコピーを使い場合はMarshal
16.
変更前の配列がコピー出来たと持って、 コピー元配列の値を変更すると、コピー 先配列まで値が変わってしまう。
17.
[1] pry(main)> a
= Array.new(3).map { Array.new(3) { Object.new} } => [[#<Object:0x007fdd19c595d8>, #<Object:0x007fdd19c595b0>, #<Object:0x007fdd19c59588>], [#<Object:0x007fdd19c59538>, #<Object:0x007fdd19c59510>, #<Object:0x007fdd19c594e8>], [#<Object:0x007fdd19c59498>, #<Object:0x007fdd19c59470>, #<Object:0x007fdd19c59448>]] [2] pry(main)> b = a.clone => [[#<Object:0x007fdd19c595d8>, #<Object:0x007fdd19c595b0>, #<Object:0x007fdd19c59588>], [#<Object:0x007fdd19c59538>, #<Object:0x007fdd19c59510>, #<Object:0x007fdd19c594e8>], [#<Object:0x007fdd19c59498>, #<Object:0x007fdd19c59470>, #<Object:0x007fdd19c59448>]] 上記のようにcloneだと、コピー元とコピー先 のオブジェクトが同じになってしまう
18.
[1] pry(main)> a
= Array.new(3).map { Array.new(3) { Object.new} } => [[#<Object:0x007fdd19c595d8>, #<Object:0x007fdd19c595b0>, #<Object:0x007fdd19c59588>], [#<Object:0x007fdd19c59538>, #<Object:0x007fdd19c59510>, #<Object:0x007fdd19c594e8>], [#<Object:0x007fdd19c59498>, #<Object:0x007fdd19c59470>, #<Object:0x007fdd19c59448>]] [6] pry(main)> b = Marshal.load(Marshal.dump(a)) => [[#<Object:0x007fdd1d2d5eb8>, #<Object:0x007fdd1d2d5e90>, #<Object:0x007fdd1d2d5e68>], [#<Object:0x007fdd1d2d5e18>, #<Object:0x007fdd1d2d5df0>, #<Object:0x007fdd1d2d5dc8>], [#<Object:0x007fdd1d2d5d78>, #<Object:0x007fdd1d2d5d50>, #<Object:0x007fdd1d2d5d28>]] Marshalを使うことによって、コピー元とコ ピー先のオブジェクトが別物になる
19.
Demo
20.
まとめ 私には45分で設計・実装は無理だと思 い知った。実装だけで90分かかった。 ライフゲーム最後まで作って もやもやがすっきりした。 少しだけRubyの理解が深まった
21.
ご静聴ありがとうございました
Download