程式需要在 REG Lin 模式下執行,因此在選擇新程式位置後,按 5 1 選用REG Lin模式。

注意: 藍色的英文字為統計模式中的變數( Σx 按 Shift 1 2, Σy 按 Shift 1 → 2, n 按 Shift 1 3, minX 按 Shift 2 2 1), E 是按 EXP。

FreqOn: Rad: ; 8 DT : 1→C: 4→D: For 1→X To 9 Step 2:

1111X+11cos( πX◢ ?→A: ?→B: D-A-B→D: A+B=0 =>

0, 0 ; X- n -1 DT : A+B=0 => Goto 1: If A+B>C: Then A+B→C:

X+(A<B) cos( πX: Ans , Ans+cos( πAns)(1≧Abs(A-B DT :

Else CD=1 => Y, M DT : Y→M: X+(A≦B) cos( πX→Y:

A+B=2 => X+(A<B)cos(πX→M:IfEnd: Lbl 1: D≦0 => Break:Next:

- ( Σx Σy ; 0 DT : C=1 => 0, 0 ; Σy - n DT : 11 E 2 Σx +11n◢

?→A: ?→B:A+B+1→X: Σy = Σx +cos( π Σx => A-B+2→X:

Ans => 0, Σx - Σy DT : cos( π Σx )(A=0, cos( π Σy )(B=0)(A≠2 DT :

X=1 => Σy - Σx , Σx - Σy DT : If C+D≧3: Then Σx →M:

D => Σx +cos(π Σx →M: C+D≧4 => Σx +cos( π Σx )(C+2 minX ≦2→Y:

IfEnd: If X≧2: Then M+cos( πM→A: Σx →M: A- Σx , 0 DT : IfEnd:

If X≧3: Then Y+cos(πY→A: Σy →Y:0,A- Σy DT :IfEnd: While 1:

E 3Y+ E 2M+ E 1 Σx + Σy ◢ ?→A: ?→B: If A+B<4: Then

Y+cos( πY→A: cos( π Σx DT : Σx →Y: A- Σx DT : 2B→B: IfEnd:

B≧2 => Σy - Σx , Σx - Σy DT : If ( Σx = Σy )+(B=4: Then M→A:Y→M:

A→Y:IfEnd:WhileEnd

用法示範 (假設答案是0137) :

按 Prog 1 (顯示1100,表示要猜1100)

1 EXE (表示1個數字及位置對) 1 EXE (表示1個數字對但位置錯)

(顯示3322,表示要猜3322)

0 EXE (表示0個數字及位置對) 1 EXE (表示1個數字對但位置錯)

(顯示5544) 0 EXE 0 EXE

(顯示7766) 0 EXE 1 EXE

(顯示1144) 1 EXE 0 EXE

(顯示0137) (即答案是0137)

註1: 此程式若在不重複版使用,請注意有些mastermind程式(例如mastermind(I))不能正確判斷重複的情況,請在第二行及第八行的 ?→B:後加上程式碼 .5(B-A→B: 即可使用。

註2: 請留意程式執行後會變成Rad模式,按 Shift MODE 1 可返回Deg模式。若果 不想這樣的話, 可刪去第一行的 Rad: 並在每一個π後加上細 r (按shift Ans 2))。

註3: 理論上程式可在九步內得解答,當然這不一定是最快的解法,但基於計數機的限制,故採用這個有系統的解法。