2014年2月3日 星期一

JavaFX Peg Solitaire

孔明棋(Peg Solitaire)又名中國跳棋、單身貴族(Solo Noble)或鑽石棋(Solitaire),相傳為三國時代諸葛孔明所發明,目的是在行軍時讓士兵打發時間之用。另一說法是在法國大革命前夕,在巴斯第監獄中關著一名貴族囚犯,無聊之下所想出來的一種一個人能夠自己玩的棋盤遊戲,稱為Solitaire。國外將此類遊戲歸為Solitaire的一種,法文Solitaire為單顆寶石飾物之意,亦有隱士或獨居者之意,在此是指單人玩的牌局或棋盤遊戲。

下圖為最早的孔明棋:
孔明棋玩法很簡單,類似於跳棋,在遊戲開始時,會在棋盤中央預留一沒有棋子的空格,以便其它的棋子跳過之用,遊戲方法是在棋盤上找出可跳過的棋子,當棋子被另一棋子跳過的時候,就算是被吃掉(死棋),並從棋盤上取走,使剩下來的棋子越少越好,一直到無法再取走任何棋子為止,遊戲則結束。

在國外判定勝負是以剩下棋子多寡決定,最後剩下六顆以上棋子為一般水準、五顆棋子為Quite Good、四顆棋子為Very Good、三顆棋子為Smart、二顆棋子為Ace、剩下一顆棋子為Master、最後剩下一顆棋子且在正中央則為Genius。

傳統的棋盤樣式又可分為English與European兩種,如下圖所示:
English

European

以English棋盤為例,目前最少的移動步數為18步,是由Ernest Bergholt於1912年所創下的紀錄,並於1964年由劍橋大學的John Beasley教授以數學證明為最少的移動步數,依序如下圖所示:
處理此類遊戲的重點,是以陣列記錄每一棋格的狀態,以下圖為例,雖然有些部份沒有棋格,但為了方便處理,因此定義其一維陣列大小為81。此外,以1代表棋格上有棋子、0沒有棋子、-1沒有棋格的部份:
JavaFX Peg Solitaire如下所示。

Example: Link


© Chia-Hui Huang

沒有留言:

張貼留言