目錄

對SGF檔案格式的擴充

玄玄圍棋對現通行的SGF檔案格式作了最大程度的支援並作了不少擴充。支援SGF檔格式中絕大部分內容標記,只有極少數軟體認為沒有必要的標記被忽略。例如,在棋盤上畫線,畫箭頭等。由於圍棋棋子不能在棋盤上移動,這兩個標記幾乎找不到使用的場合,因此沒有支援。SGF檔格式雖然相當不錯,但也有許多不足之處。例如,缺乏對整個檔案的描述,對多譜的支援效率不高,對檔案的類型沒有規定——這是死活題庫,定式庫,還是棋譜庫,沒有說明。對於棋步的內容定義也不夠,這些在玄玄圍棋中都作了擴充。擴充包括檔案層面和走步內容兩個方面。擴充後的檔案稱為玄玄圍棋文件,副檔名為.xgf。玄玄圍棋檔案是二進位格式的,比SGF檔案格式具有更高的存儲效率和使用性能。

從上面的對話方塊可以看出玄玄圍棋對SGF的檔案層面的擴充:

  1. 增加了檔案類型指定,不同類型的棋庫有著不同的打開方法。
  2. 增加了檔的內部名稱,名稱可以是由多個子名稱組成,每個子名稱占一行。
  3. 增加了檔案說明。
這些內部名稱將出現在棋局列表中和主視窗的棋譜資訊區上,因此絕不是僅作擺設用的。

除了檔案層面的擴充,玄玄圍棋還對棋步的內容作了擴充。下面為棋步內容對話方塊:

可以看出,除了一些標準的SGF內容如“名稱”,“手數”,“黑好”,“白好”,“黑大優”,“疑問手”等等,還作了如下內容的擴充:

  1. 清除棋盤。走到這一步棋盤上所有棋子將被清除。這一屬性對於局中有局非常有用。傳統的SGF檔要做到這一點只能逐個隱藏棋盤上的棋子,棋子一多效率就很低。
  2. 顯示座標。到某一步可臨時打開棋盤座標的顯示,如果當前棋局沒有打開座標顯示的話。
  3. 顯示手數。用戶在打譜或做死活題時可以打開或關閉手數顯示的棋局選項,但如果某一步有顯示手數的屬性,則走到這步手數就一定會被顯示,不管是否已打開手數顯示的棋局選項。
  4. 禁止自動手數。如果一步棋的注解中含有數字,玄玄圍棋會作簡單的判斷,看看是不是指某一步棋,如果是的話,手數也會自動顯示。但是有可能將不是手數的數位判為手數,這時可以用打開這步棋的“禁止自動手數”屬性避免顯示手數。
  5. 隱藏前面的手數。表示走到這一步前面走步的手數就不被顯示出來。我們知道書上的棋譜是按譜編排的,為了增加可讀性,在後面的棋譜會隱藏前面棋譜的手數,這樣做的另一個好處是可以在沒有手數顯示的棋子上打上各種標記,如三角形,字母,等等。在譜與譜之間可能有重疊的手數,如第1譜由1-15手組成,第2譜由12-20手組成。在這種情況下,僅僅提供“隱藏前面手數”的功能是不夠的,使用“例外手數”,我們可以在第16手隱藏前面的手數,但將“例外”手數設為4,這樣就可以完全象書上一樣來編排棋譜。
  6. 跳到下一注解。表示走到這一步,將自動往前走,直到遇到有注解的棋步或到達最後一步。
  7. 跳到上一注解。表示往回走到這一步,將自動往後走,直到遇到有注解的棋步或到達最開始。
以上五個內容是對普通棋步內容的擴充,另外還專門對死活題棋步的內容作了擴充,它們是:
  1. 答對。表示走到這一步就算找到了正解,對應的工具按鈕為:
  2. 答錯。表示走到這一步就算答錯了。通常並不需要指定這個內容,因為到了某一變化的最後一步而沒有“答對”內容,系統自動認為是答錯了。有了這個內容系統可以在走到最後一步之前提前顯示出錯誤資訊,而用戶非要走子的話系統也有應對。
  3. 選擇。表示用戶下一步必須走某一子節點,這些子節點通常是有字母標出。走其他地方系統將忽略,而不是顯示答錯資訊。這用於選擇性的死活題。
  4. 禁著點。如果用戶走到禁著點,系統將忽略,而不是顯示答錯資訊。例如在給大龍緊氣的時候有許多地方可以緊氣,用禁著點可以讓用戶只從某個地方開始緊氣,其他地方緊氣將被忽略。
  5. 參考變化。在編輯死活題時有時會需要說明人走錯後,系統也走錯的情況,用以說明這是系統的弱手。而在解死活題時系統是不會這樣走的,只有在答案模式下用戶才可以看到這一步。如果某一節點的兄弟節點可以通向正解,則這一節點不必作為參考變化,因為在解題時系統會自動避開走這裏應。顯然,參考變化內容是運用於系統走子棋步,即偶數棋步。
剩下的內容除了“手筋”、“疑問手”、“趣向”是SGF內容外,其餘全是是為定式庫而加,但對讀譜同樣有用。這些內容會顯示在節點列表中,使棋譜更有表現力,如後面的圖所示:

棋譜根節點的屬性和普通走步屬性不一樣,主要用於控制棋局的流覽方式,在棋譜庫的第一局使用即可,它由如下對話方塊進行設定:

其中最主要的是“變著手數自動設為1”,另外,還可以控制棋譜打開後是否顯示手數和棋盤座標或顯示當前步的下一步。有了這些設定,編輯棋譜時就可以設好棋譜的最佳流覽方式。

包含擴展資訊的檔如果以SGF格式保存並用其他打譜軟體打開的話擴展資訊將會被忽略。

上一页 下一页