(向下滾動以獲取英語描述)
聖彼得堡地鐵的模擬器。 *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距離是一個用於測量兩個字符串之間差的字符串度量。