Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
柏.rb #5 マインスイーパーのテストを書いてみた
Search
hana-da
November 18, 2024
Programming
67
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
柏.rb #5 マインスイーパーのテストを書いてみた
https://kashiwarb.connpass.com/event/335777/
hana-da
November 18, 2024
More Decks by hana-da
See All by hana-da
柏.rb #9 公開できないものもgemにする
hana_da
0
49
柏.rb #1 hana-daのご紹介
hana_da
0
71
Other Decks in Programming
See All in Programming
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
630
ジョジョの世界をXRで再現する
mofurune
0
170
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
980
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
AmebaブログはKMPから卒業します
kmars0605
0
200
Next.js: The final boss of Web Performance
guaca
0
280
最近”作らせてる” ローカルAIアプリの話
akit37
0
480
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
400
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
440
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Building Adaptive Systems
keathley
44
3.3k
Tell your own story through comics
letsgokoyo
1
1.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
2024-11-18 ദ.rb #5 hana-da ϚΠϯεΠʔύʔͷςετΛॻ͍ͯΈͨ
ദ.rb #3 ͱ #4 ϚΠϯεΠύʔΛ࡞ͬͯΈΑ͏ • ദ.rb #3 ʮΦϒδΣΫτࢦΛཧղ͢ΔͨΊʹϚΠϯεΠύʔΛϞϒϓϩͯ͠ΈΔʯ •
ͳΜͱͳ͘ΞτϥΠϯͰ͖͚ͨͲશવະ • ͦͷޙɺݸਓͰͪΐͪ͜ΐ࣮ͯ͜͠ͱΓ͋͑ͣ༡Δͱ͜Ζ·Ͱ • ϝΠϯϧʔϓτοϓϨϕϧͰ࣮͠ɺBoard ͱ Cell ͷ2ΫϥεͰߏ • લճ ദ.rb #4 Ͱ͝հ https://github.com/hana-da/minesweeper • ࠓճɺςετॻ͍ͯͳ͔͔ͬͨΒςετΛॻ͍͍ͯ͘ 🦁
ͲΜͳ࣮͔ʁ ήʔϜͷॳظԽ • https://github.com/hana-da/minesweeper/blob/before_board_test/ minesweeper.rb
ͲΜͳ࣮͔ʁ CellʹضΛཱͯΔ • https://github.com/hana-da/minesweeper/blob/before_board_test/ minesweeper.rb
ͲΜͳ࣮͔ʁ CellΛ։͘ • https://github.com/hana-da/minesweeper/blob/before_board_test/ minesweeper.rb
ςετΛॻ͍͍ͯ͘ ͍ͭRSpecͳͷͰminitestʹॳઓ • https://github.com/hana-da/minesweeper/blob/before_board_test/ minesweeper.rb
ςετΛॻ͍͍ͯ͘ Boardͷςετ • https://github.com/hana-da/minesweeper/blob/before_board_test/ minesweeper.rb
mineΛຒΊΔϩδοΫΛผΫϥεʹ͢Δ MinePlanter::Random ര • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_mine_planter
mineΛຒΊΔϩδοΫΛผΫϥεʹ͢Δ MinePlanter::Random ര • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_mine_planter
mineΛຒΊΔϩδοΫΛผΫϥεʹ͢Δ ςετMinePlanter::PresetΛ͏ • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_mine_planter
mineΛຒΊΔϩδοΫΛผΫϥεʹ͢Δ ͢Δͱ͜Μͳςετ͕ॻ͚ΔΑ͏ʹͳΔ • https://github.com/hana-da/minesweeper/ compare/ before_board_test...test_with_mine_planter
͕͔ͩ͠͠ɺμϝͩͬͨ • ௨ৗϥϯμϜʹஔ͞ΕΔmineΛɺςετͰࢦఆҐஔʹஔ͢Δࣄ͕Մೳ ʹͳͬͨͷͰɺmineΛͯͨΓɺmineΛආ͚ͨΓ͢ΔςετՄೳʹͳͬͨ • ͔͠͠ɺBoardͷதͷCell͕Ͳ͏ͳ͍ͬͯΔ͔֎͔ΒΘ͔Βͳ͍ • ضΛཱͯͯຊʹཱ͍ͬͯΔ͔assertͰ͖ͳ͍ • ۙྡʹmine͕ͳ͍
0 ͷ Cell Λ open ͨ࣌͠ʹपΓ࿈త(࠶ؼత)ʹ։͚ͨ ͔assertͰ͖ͳ͍
खͬऔΓૣ͘ivarΛ৮Δ ॻ͚ͨɺ͔͠͠ෛ͚ͨؾ͕͢Δ • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_ivar
खͬऔΓૣ͘ivarΛ৮Δ ͜ͷϔϧύʔͬͯBoard#initializeͱ΄΅Ұॹ͡Όͳ͍ʁ • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_ivar
CellΛ֎Ͱ࡞Δ ඞཁͳͷCellGenerator͔ͬͯͭʁ • mineΛຒΊࠐΉ෦͚ͩͷ֎ग़͠ͰෆेɺͱࢥͬͯivarΛ͍͕ͬͨ͡ɺ ivarஔ͖͑Ͱ݁ہͦ͜Λมߋͯ͠Δ͚ͩʹͳͬͨ • ͔͠͠ivarஔ͖͑खݩ(ςετίʔυ)ʹgrid͕ΔͷͰɺςετ͕ॻ͚Δ!! • ސ٬(ςετίʔυ)͕ຊʹཉ͔ͬͨ͠ͷʮ͖ͳҐஔʹmineΛຒΊΔ ࣄʯͰͳ͘ʮ͖ͳҐஔʹmine͕ຒΊࠐ·ΕͨCellͷgridʯ
• grid֎Ͱ࡞ͬͯBoard.new͢Δ࣌ʹ͢ͷ͕ਖ਼ղ?
CellΛ֎Ͱ࡞Δ ઌʹςετ͔Βॻ͍ͯΈΔ • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_cell_generator
CellΛ֎Ͱ࡞Δ ͋ͱςετ͕pass͢ΔΑ͏ʹ࣮Λมߋ • https://github.com/hana-da/minesweeper/compare/ before_board_test...test_with_cell_generator
·ͱΊ Δޠኮྗ͕ͳ͍ɻɻɻ • ࠷ॳmineΛຒΊΔϩδοΫ͚ͩΛΓग़͍ͯͨ͠ͷͰɺϩδοΫͷΓସ ͑Ͱ͖͕ͨɺςετʹͦΕͰෆेͩͬͨ • ෦Ͱੜ͞ΕΔΦϒδΣΫτΛ֎Ͱ࡞ΔࣄͰɺ͖ͳͱ͜ΖʹmineΛຒΊ ΒΕΔ͠ɺςετରͷΦϒδΣΫτʹ৮ΕΒΕΔ͠Ͱͤͩͬͨ • ͬͯɻɻ͜ͱ???
• ͜ΕͰ͍͍ͷ͔ࣗ৴͕ͳ͍ͷͰɺͥͻ͝ҙݟ͍͖ͨͩͨ͘