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
54
游戏中的奥秘
如何更快地走出一个迷宫?移动拼图有什么诀窍?为什么有人解数独那么快?我们作为程序员,怎么实现这些游戏呢?
shhhz
March 23, 2022
Tweet
Share
More Decks by shhhz
See All by shhhz
概率与随机
shhhz
0
50
Seam Carving 算法
shhhz
0
300
正则表达式
shhhz
0
35
Other Decks in Technology
See All in Technology
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
170
Azureコストと向き合った、4年半のリアル / Four and a half years of dealing with Azure costs
aeonpeople
1
270
webpack依存からの脱却!快適フロントエンド開発をViteで実現する #vuefes
bengo4com
3
3.1k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
81k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.8k
Dify on AWS 環境構築手順
yosse95ai
0
120
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
100
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
OSSで50の競合と戦うためにやったこと
yamadashy
3
960
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
180
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
180
AI駆動で進める依存ライブラリ更新 ─ Vue プロジェクトの品質向上と開発スピード改善の実践録
sayn0
1
240
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
It's Worth the Effort
3n
187
28k
Designing for Performance
lara
610
69k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Statistics for Hackers
jakevdp
799
220k
Gamification - CAS2011
davidbonilla
81
5.5k
Balancing Empowerment & Direction
lara
5
700
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
谢谢 !