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
游戏中的奥秘
Search
shhhz
March 23, 2022
Technology
0
44
游戏中的奥秘
如何更快地走出一个迷宫?移动拼图有什么诀窍?为什么有人解数独那么快?我们作为程序员,怎么实现这些游戏呢?
shhhz
March 23, 2022
Tweet
Share
More Decks by shhhz
See All by shhhz
概率与随机
shhhz
0
40
Seam Carving 算法
shhhz
0
240
正则表达式
shhhz
0
31
Other Decks in Technology
See All in Technology
MicrosoftのOSSだけでAIによるブラウザテストを構成する
ymd65536
1
210
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
120
20250122_個人向けCopilotどうなん
ponponmikankan
0
170
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
2
3.8k
TSのコードをRustで書き直した話
askua
4
970
あなたの知らないクラフトビールの世界
miura55
0
170
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
240
あなたの興味は信頼性?それとも生産性? SREとしてのキャリアに悩むみなさまに伝えたい選択肢
jacopen
4
1.3k
データ基盤におけるIaCの重要性とその運用
mtpooh
5
760
FinJAWS_reinvent2024_recap_database
asahihidehiko
2
250
インシデントキーメトリクスによるインシデント対応の改善 / Improving Incident Response using Incident Key Metrics
nari_ex
0
2k
実践!生成AIのビジネス活用 / How to utilize Generative AI in your own business
gakumura
1
170
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
5
200
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Making the Leap to Tech Lead
cromwellryan
133
9k
Speed Design
sergeychernyshev
25
750
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
39
1.9k
Mobile First: as difficult as doing things right
swwweet
222
9k
How to train your dragon (web standard)
notwaldorf
89
5.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
The Cult of Friendly URLs
andyhume
78
6.2k
Producing Creativity
orderedlist
PRO
343
39k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Transcript
游戏中的奥秘 @Rick
迷宫
⼗分常⻅的娱乐性元素 游戏《塞尔达 · 荒野之息》 电影《移动迷宫》 建筑《Hampton Court Palace》
为⼤家准备了⼀个迷宫!
None
None
⾛迷宫的诀窍? 靠墙走!
靠墙⾛
单连通迷宫 单连通迷宫的所有墙体都是连接的,迷宫内没有回路。此时可以使用靠墙走的方法。 Hampton Court Palace – 经典的单连通迷宫 出口打断了墙壁,算单连通迷宫吗?
单连通迷宫 单连通迷宫的所有墙体都是连接的,迷宫内没有回路。此时可以使用靠墙走的方法。 Hampton Court Palace – 经典的单连通迷宫 把出口看作在内部,依旧是单连通迷宫
单连通迷宫 单连通迷宫的所有墙体都是连接的,迷宫内没有回路。此时可以使用靠墙走的方法。 Hampton Court Palace – 经典的单连通迷宫 把出口看作在内部,依旧是单连通迷宫
多连通迷宫 存在未连接的墙体,迷宫内有回路。 靠墙走会原地打转。
染⾊法 本质上是寻找跨越多个墙体的方法 对不同的墙体进行染色 临界线即为迷宫的解
真费劲,不如写个算法
抽象 迷宫的抽象:图
抽象 问题的抽象:图的搜索算法
⼴度优先算法
Dijkstra's Algorithm 额外考虑走格子的代价,在广度优先上,维护当前路线的代价值
启发式算法 会观测当前是否处在最优位置 贪婪算法 优先选择离终点近的格子
……但并非最优
A* 算法 取人之长,补己之短
更有意思的算法 蚁群算法 蚂蚁倾向于沿着信息素多的地方移动
可以求解旅行商问题(TSP)
移动 拼图
爷童回
为⼤家准备了⼀个拼图! https://murhafsousli.github.io/8puzzle/#/
玩拼图的诀窍? 2 * 2 的拼图,自然就是拼好的 3 * 3 的拼图,如果外侧拼好了,剩下的 2
* 2,自然就是拼好的
第 1、2 个,无需任何技巧 第 3 个,需要通过旋转
第 4 个,无需任何技巧 第 7 个,需要通过旋转
演示时间 !
真费劲,不如写个算法
抽象 052647381 123456780
状态树
熟悉的味道… 广度优先 深度优先
贪婪算法 The Hamming distance 位于错误位置的元素个数 The Manhattan distance 所有错误元素距其正确位置的水平垂直距离之和
A*! A*! 定义 Priority = move + distance
数独
有⼂费脑 规则很简单 玩起来不简单
没有为⼤家准备⼀个数独!
玩数独的诀窍? 太多了 唯一剩余格 唯一候选数 宫区块数对
真费劲,不如写个算法
不抽象了,本来就很抽象 有点像八皇后问题? 回溯算法
授⼈以渔 回溯法的缺点:无法提高用户的解题技巧(怎么让用户更有动力看广告?)
https://sudoku.com/zh/shu-du-gui-ze/
Y-Wing pincers pivot pivot
【死理性派】死理性派教你走迷宫 素材和参考 迷宫 Introduction to the A* Algorithm Solving the
Travelling Salesman Problem using Ant Colony Optimization 拼图 数独 sudoku.com The Hampton Court Palace Maze 经典算法之八皇后问题 Tony Young 的回答 8-Puzzle Game N-Puzzle Slider Puzzle Coming Back to Old Problems: How I Finally Wrote a Sudoku Solving Algorithm
谢谢 !