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
43
游戏中的奥秘
如何更快地走出一个迷宫?移动拼图有什么诀窍?为什么有人解数独那么快?我们作为程序员,怎么实现这些游戏呢?
shhhz
March 23, 2022
Tweet
Share
More Decks by shhhz
See All by shhhz
概率与随机
shhhz
0
39
Seam Carving 算法
shhhz
0
230
正则表达式
shhhz
0
30
Other Decks in Technology
See All in Technology
プロダクト組織で取り組むアドベントカレンダー/Advent Calendar in Product Teams
mixplace
0
230
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
130
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
230
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
160
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
200
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
1
4.8k
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
能動的ドメイン名ライフサイクル管理のすゝめ / Practice on Active Domain Name Lifecycle Management
nttcom
0
260
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
120
React Routerで実現する型安全なSPAルーティング
sansantech
PRO
2
300
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.9k
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
390
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Fireside Chat
paigeccino
34
3.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Making the Leap to Tech Lead
cromwellryan
133
9k
Why Our Code Smells
bkeepers
PRO
335
57k
4 Signs Your Business is Dying
shpigford
182
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
GraphQLとの向き合い方2022年版
quramy
44
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
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
谢谢 !