(向下滚动以获取英语描述)
圣彼得堡地铁的模拟器。 *yandex地铁克隆

处理程序/处理程序。Go下载资产/站点文件,接收有关其站点和它们之间距离的信息,然后将它们固定到index.tmpl,在其上构建了一个无定向的平衡列。 HomeHandler还保留了电台的名称,并按字母顺序排列。
电台结构:
"st_g0" : {
"Name" : " Беговая " ,
"X" : 93 ,
"Y" : 140 ,
"Adj" : [ " st_g1 " ],
"Dist" : [ 4 ],
"Line" : " green " ,
"Shift" : " left " ,
"Dx" : 0 ,
"Dy" : 0
}名称,x,y,行分别是指车站的名称,XY上的位置和分支的颜色。可以从这个站点驱动的adj-电台 - 票价,移动的票价 - 在哪个侧面是x,y。dx,dy的文本 - 根据x,y。
FindRouteHandler(处理程序/处理程序)读取两行从index.tmpl形式读取,找到合适的站点(请参阅第3页),找到了最佳路由及其时间。
最短的方法是使用Dijkstra/dijkstra.Go算法,该算法以字母顺序接受电台的数量,它返回此路径上包含的电台数量的最短时间和数组。
例子。
| 从 | 到 | 最好的路线 | 期间 |
|---|---|---|---|
| 戈尔基 | 显而易见的通道 | Gorkovskaya,Nevsky,Avenue,Sennaya,Sadovaya,Zvenigorodskaya,Oblodny运河 | 18分钟 |

ShowRuteHandler(处理程序/处理程序)构建了一个地铁卡,将80%的透明度效果添加到最短路线中未包含的肋骨中。
。
。如果levenstein(utils.editdistance()在S1和S之间的距离小于S2和S之间,则S1线比S2更像S2。
圣彼得堡地铁模拟器。 *yandex地铁克隆

处理程序/处理程序。同样,家庭用手保存站点的名称并按字母顺序排序。
电台结构:
"st_g0" : {
"Name" : " Беговая " ,
"X" : 93 ,
"Y" : 140 ,
"Adj" : [ " st_g1 " ],
"Dist" : [ 4 ],
"Line" : " green " ,
"Shift" : " left " ,
"Dx" : 0 ,
"Dy" : 0
}名称,x,y,线代表站名称,XY位置和分支的颜色。 adj是与此连接的一系列状态。 DIST - 到达它们的时间,移动 - 文本的关注侧。 dx,dy-文本通过x和y。
FindRouteHandler(处理程序/处理程序)从index.tmpl页面中的表单中读取两个字符串“从”,“”,查找您maan(p.3)的站,最后,Searsch是从和到之间的最佳路线。
Dijkstra算法(Dijkstra/Dijkstra.go)返回两个节点之间的最短路径。

ShowRuteHandler(处理程序/处理程序)构建地铁图。边缘不在最短的路径上透明。
getIdx(S) - 返回最相似的电台名称。字符串S和字符串T之间的相似性是从S到T的Levenshtein距离。LevenShtein距离是一个用于测量两个字符串之间差的字符串度量。