Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
形四のWebアプリ作ってみた
Search
西村 備山
February 25, 2026
Technology
4
0
Share
形四のWebアプリ作ってみた
2026.02.21 デジもく会 での発表
西村 備山
February 25, 2026
More Decks by 西村 備山
See All by 西村 備山
メイカー系イベント&コンテスト情報など
lipoyang
0
10
製作物紹介 & 小ネタ集
lipoyang
0
3
パワポを操作してカンペを表示するスカウター型デバイス
lipoyang
0
6
マイコンとデジファブによる創作電子楽器の製作
lipoyang
0
36
イベント・コンテスト情報など
lipoyang
0
9
GitHub Copilot 対 Cursor
lipoyang
0
32
つくろか!3 出展について
lipoyang
0
6
光る縄文土器を作る
lipoyang
0
70
IoT渾天儀で太陽の運行を知る
lipoyang
0
1.9k
Other Decks in Technology
See All in Technology
聞き手の目線で考えるプロポーザル
takefumiyoshii
0
410
JEDAI in Osaka 2026イントロ
taka_aki
0
210
え!?初参加で 300冊以上 も頒布!? これは大成功!そのはずなのに わいの財布は 赤字 の件
hellohazime
0
150
Zero-Downtime Migration: Moving a Massive, Historic iOS App from CocoaPods to SPM and Tuist without Stopping Feature Delivery
kagemiku
0
240
【Findy FDE登壇_2026_04_14】— 現場課題を本気で解いてたら、FDEになってた話
miyatakoji
0
1.1k
Hello UUID
mimifuwacc
0
140
LLM とプロンプトエンジニアリング/チューターを定義する / LLMs and Prompt Engineering, and Defining Tutors
ks91
PRO
0
400
AWS DevOps Agentはチームメイトになれるのか?/ Can AWS DevOps Agent become a teammate
kinunori
1
220
AgentCore RuntimeからS3 Filesをマウントしてみる
har1101
4
440
シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
jinwatanabe
0
210
Rebirth of Software Craftsmanship in the AI Era
lemiorhan
PRO
2
350
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
190
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
The Spectacular Lies of Maps
axbom
PRO
1
690
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
210
Crafting Experiences
bethany
1
110
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Odyssey Design
rkendrick25
PRO
2
570
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
The Curious Case for Waylosing
cassininazir
0
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Transcript
2026.02.21 デジもく会 西村備山 (@lipoyang) 形四のWebアプリ作ってみた
自己紹介 •デジもく会 •奈良県在住 •組込み系技術者 西村備山 (@lipoyang)
形四とは? 白黒4つのコマで正方形をつくるボードゲーム 「形四」ゲームの解説 dnjiro's 9VAe blog より
既存の形四アプリ 「形四96番勝負」 by @dnjiro さん Android / Chromebook 版(Google Play)
Windows版 (keishi96w.zip) Mac版 (keishi96m.zip) Amazon Fire タブレット版(Amazonアプリストア) X68000 Z版(kc96x.zip)
まずは C# で自作 • Windows用フォームアプリ • 以前作ったオセロのアプリを改造して作成 • ひとまず動くようになるまで 9時間
(さすがに生成AIの速さには勝てない) • 形四96番勝負 相当のUIに作りこむ
KCSharp https://github.com/lipoyang/KCSharp ←レベル7は かなり強いぞ
Webアプリ版も作ってみた • UIは JavaScript で記述 • 思考エンジンは Rust で記述 •
Rust → WebAssembly にビルド • ネイティブアプリと遜色ない速度
WebKC ↓こちらで遊べます
ネット対戦機能がほしい • 人間 VS 人間 のネット対戦 • ソフト vs ソフト
のネット対戦 • 通信仕様どうする? • サーバどこに立てる?
またね~ Twitter: @lipoyang GitHub: lipoyang SlideShare: lipoyang http://lipoyang.net
高速化の工夫 • ミニマックス法 → アルファ・ベータ法 (アルゴリズムの改良) • 二次元配列 → ビットボード
(データ構造の改良) • 動的なオブジェクト生成をなるべく減らす • 無駄に同じ計算を繰り返さない。(メモ化)
静的評価関数 自乗形四率 (Square Keishi Rate) を以下のように定義 4つの石の座標を P i =
(x i , y i ) (i = 1, 2, 3, 4) とする。 相互の距離の自乗は D(P i , P j ) = (x i – x j )2 + (y i – y j )2 その最大値を D max 、最小値を D min とするとき 自乗形四率 k = D min / D max は 0 < k ≦ ½ であり、 四点が正方形をなすとき k = ½ となる。 どれだけ正方形に近いかの簡易な指標となる。
ヒューリスティック • 「必殺形」全30パターン (トリプル中パンチ) • 「恐怖系」全12パターン (大パンチ + ダブル中パンチ) •
これを評価関数に取り入れるのは… • 判定処理が面倒すぎて断念。 ( パターンは 回転、反転、平行移動 もありうる )