我在C#中實現了一個函數,從哪一邊開始提供哪一種線條,它將從統一碼錶中的框圖表格(0x2500-0x257F)返回一個字符。然而,我還沒有找到一個系統來處理這些字符在表格中的位置,這將使一個簡單得多的函數,然後將所有可能的輸入分配給一個巨大的if-then-else塊中的輸出。統一碼框圖表製表
我已經注意到該表中有9種不同的線條樣式(細線,雙線,粗線,雙線,三線,四線,三線,雙線)與四個方向一起,用「不行」信息做出10個不同的狀態,這將構成9999個不同的組合,不包括「沒有任何一方有行」的情況,這在我的情況下將是空格字符。
我發現實現這個的最簡單方式,是使一個包含所有10000可能的結果,一個刻着巨大的數組(其中第一個數字指出北,第二東,然後南,西),但我相信這實際上是我發現的第二個最糟糕的情況,並且有一個更加優雅的解決方案。 (順便說一下,如果你不打算以這種方式實施這個計劃,這將是很有趣的,這就是我對此的看法。)
這個問題可能不適合在這裏,但考慮到這個任務的大小,我甚至冒這樣的風險:
有沒有一個系統如何框圖表安排字符,和/或是否有一個更簡單的算法,做到了完全相同的,我想做的?
這其實是一個好主意,非常感謝!我不確定爲什麼沒有想到它。並且爲了解決並非所有組合都存在的事實(比如向下和向右虛線,或向上雙向向下),它可以被擴展爲無可用字符字段,該字段僅在沒有等效字符的情況下被設置。 –
第二個想法是,從頭開始添加代碼,因爲它可能再次將其重新提升到10,000。儘管如此,我仍然很喜歡這種方法,並且想到如何解決這個問題。 –