前言:
苦工式寫法,不過是用另一個血肉機器人弄出來的。好處是穩定,不易因lag大神
顯靈造成罷工。
Pattern:
為第(%1)段
Commands:
blood500ways="e|w|s|n|e|w|e|n|s|e|n|w|w|n|e|w|e|e|n|n|s|w|n|n|n|w|w|e|s|w|e|e
|n|e|s|w|e|n|s|w|n|w|w|e|w|s|e|s|w|n|s|n|e|s|e|w|e|n|w|s|w|e|e|e|n|n|n|n|e|s|s
|w|s|n|e|s|n|n|s|w|e|e|w|e|e|n|n|n|s|e|w|n|w|s|n|n|n|w|n|n|s|e|w|n|s|n|w|e|e|e
|n|s|e|e|e|e|w|s|w|s|w|n|n|s|n|w|e|n|s|n|s|s|s|n|s|s|n|e|w|w|s|e|s|w|e|s|s|w|e
|n|n|e|n|e|s|s|n|w|s|s|n|s|s|s|n|w|e|s|s|n|w|e|w|s|e|s|w|w|e|s|n|s|e|e|n|e|s|n
|e|w|n|n|w|e|w|s|e|n|n|w|s|n|s|n|n|w|s|s|s|w|s|n|n|e|s|w|s|n|n|e|s|e|n|e|e|e|s
|s|n|s|s|e|e|e|n|e|w|n|w|w|w|e|s|n|w|w|n|s|w|n|s|e|w|w|e|w|w|n|n|e|e|n|e|e|e|w
|n|s|n|e|e|n|w|s|s|e|s|w|s|e|s|s|n|s|n|w|e|w|w|n|w|e|w|w|w|e|n|n|w|e|n|w|s|e|w
|s|e|s|e|s|s|e|s|w|n|e|e|w|n|w|w|w|s|e|s|e|w|w|n|s|s|s|s|s|s|w|w|w|s|s|w|w|n|e
|w|e|s|s|n|s|e|n|s|s|e|n|e|e|e|w|w|s|e|w|n|e|n|s|e|e|s|w|s|s|e|s|w|s|n|e|w|w|n
|w|w|w|w|w|w|s|n|n|w|e|n|n|e|e|n|n|w|n|e|s|w|w|e|e|s|w|w|s|w|e|s|e|e|w|w|n|w|e
|n|e|s|s|s|s|e|w|w|w|w|w|n|e|w|e|n|n|s|s|e|s|s|s|s|s|w|s|e|e|s|w|e|n|n|e|s|e|n
|w|w|n|n|s|w|n|e|n|e|n|e|s|w|e|n|w|s|s|e|n|n|n|n|n|e|e|e|s|s|s|n|n|w|n|e|n|n"
chnumbers="零 一 二 三 四 五 六 七 八 九 十 百 0*"
numbers="+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 *10 *100 0+"
#var bloodmap %1
#loop 1,13 {#var bloodmap
%replace(@bloodmap,%word(@chnumbers,%i),%word(@numbers,%i))}
#var bloodmap %delete(@bloodmap,1,1)
#var bloodmap %eval(@bloodmap)
#case %ismember(@bloodmap,500|@bloodmap) {#alarm +3
{%item(@blood500ways,@bloodmap)}} {#noop}
說明:
01行:五百段的走法,很長所以有斷行,要用時記得接回一行。
02行:建立列表(string list) chnumbers,內容是將被置換前的字元。
03行:建立列表(string list) numbers,內容是將要取代中文數字的字元。
04行:將中文格式數字存入bloodmap。
05行:將bloodmap中符合chnumbers的單詞,置換成nunbers中的單詞。兩個列表
中的單詞排列位置具備相對性,不能錯放。本行指令因#loop,會執行13次
,與兩列表的單詞數目相同。
06行:刪除bloodmap中字串的第一個字元。
07行:執行bloodmap中的運算式。
08行:根據目前所在段數,決定做什麼的式子,使用#case以備將來擴充選項。