Tùy chọn UCI
Hiện nay một số giao diện đã hỗ trợ tùy chọn UCI. Ví dụ: trong giao diện Shark (鲨鱼界面, Shark GUI) trên máy tính (bản Shark miễn phí từ 1.7.9 trở lên, bản Shark thương mại từ 2.3.1 trở lên), bấm vào biểu tượng 🔧 cờ lê ở thanh engine (cạnh phần thiết lập luồng và hash) để vào phần thiết lập tùy chọn engine. Như hình dưới:

Giải thích một số tùy chọn của Pikafish
Sixty Move Rule
Công tắc · Mặc định: bật
Công tắc luật giới hạn nước đi tự nhiên, mặc định là bật. Ví dụ, ở trạng thái mặc định engine sẽ tính đến việc 60 hiệp (120 nước) không ăn quân thì xử hòa, và coi 60 hiệp không ăn quân là 0 điểm.
Nếu bạn muốn phân tích thế cờ mà không xét giới hạn nước đi tự nhiên, không thích đưa luật này vào tính toán của engine, hoặc nền tảng và giao diện không tương thích với luật 60 của Pikafish, thì có thể tắt tùy chọn này. Nếu thấy engine dâng quân một cách khó hiểu, rất có thể do tùy chọn này, cho thấy luật 60 của nền tảng hoặc giao diện bạn đang chơi không tương thích, có thể tắt đi. (Thực ra dâng quân không phải vấn đề, vì khi đến 60 hiệp không ăn quân engine đã coi là 0 điểm, mọi nước đi không gây ăn quân ngay đều là 0 điểm)
Luật giới hạn nước đi tự nhiên của Pikafish không tính các nước chiếu tướng vượt quá 10 lần của mỗi bên vào giới hạn, nước đỡ chiếu tương ứng cũng không tính; nhưng khi thế cờ có ăn quân thì số lần chiếu sẽ được tính lại từ đầu.
Rule60MaxPly
Mặc định: 120 · Phạm vi: 1 ~ 150
Tùy chọn này chỉ có hiệu lực khi "Sixty Move Rule" được bật. Đây là số nước của giới hạn nước đi tự nhiên, phạm vi 1 đến 150, mặc định 120, và 120 là luật giới hạn nước đi của Tiantian Xiangqi (天天象棋). Lưu ý 120 chính là 60 hiệp.
Ví dụ khi đặt 120, engine sẽ tính đến việc 60 hiệp (120 nước) không ăn quân thì xử hòa, và coi 60 hiệp không ăn quân là 0 điểm.
Lưu ý
Ngoài trường hợp đặc biệt khi giải thế cờ (拆棋), không nên chỉnh tùy chọn này, vì các tham số tìm kiếm của engine gắn liền với giới hạn 120 nước, nếu đặt quá nhỏ, rất có thể sức cờ còn kém hơn cả việc tắt hẳn giới hạn nước đi tự nhiên. Hơn nữa, một khi engine đi đến số nước giới hạn mà nó cho là đã đạt, các nước đi sau đó sẽ là ngẫu nhiên. Chỉ phù hợp dùng trong các trường hợp đặc biệt khi giải thế cờ, ví dụ thế tàn cuộc đang có ưu thế thắng lớn mà muốn tìm đường đơn giản hóa hoặc ăn quân nhanh; và dùng xong nhớ đặt lại 120 ngay, nếu không có thể dẫn đến kết quả phi lý trong các lần giải thế cờ hoặc thử nghiệm giải đấu engine sau này.
Clear Hash
Xóa bộ nhớ hash hiện tại của engine. Tuy nhiên cách phổ biến nhất là nạp lại engine để đạt hiệu quả tương tự.
MultiPV
Mặc định: 1 · Phạm vi: 1 ~ 500
Suy nghĩ nhiều biến chính. Khi phân tích thế cờ, engine mặc định có 1 biến chính. Khi thay đổi tùy chọn này, engine sẽ tăng số biến chính của thế cờ hiện tại khi phân tích; các biến chính có cùng độ sâu và được hiển thị cùng lúc (tức là cùng một tầng hiển thị nhiều biến).
Nói cách khác là để các nước đi được tính toán theo "chế độ đãi ngộ biến chính", trong khi mặc định chỉ có một nước được hưởng đãi ngộ này.
Phạm vi 1~500, mặc định là 1, tức chỉ có một biến chính.
Lưu ý
Tăng con số này sẽ làm giảm sức cờ, chỉ dùng để phân tích giải thế cờ, đừng dùng khi chơi thật và thử nghiệm engine. Ngoài ra, nó chỉ tăng số biến chính của thế cờ hiện tại, khi suy nghĩ các thế cờ sau đó vẫn như cũ (hiển nhiên, nếu không sẽ bùng nổ theo hàm mũ).
Ghi chú: PV là viết tắt của biến chính (Principal Variation).
Skill Level
Mặc định: 20 (không giới hạn sức cờ) · Phạm vi: 0 ~ 20
Giới hạn trình độ sức cờ của engine. Khi đặt khác 20, có một xác suất nhất định engine chọn nước đi kém hơn (đồng thời bật MultiPV=4), có thể dùng để người đấu với máy. Lưu ý chỉ là việc chọn nước đi của engine chọn biến kém hơn, còn phân tích của engine thì giống với MultiPV=4.
Phạm vi 0~20, mặc định là 20, tức không giới hạn sức cờ.
Nhưng nếu bật UCI_LimitStrength thì Skill Level sẽ không có hiệu lực.
UCI_LimitStrength
Mặc định: tắt
Mặc định tắt. Sau khi bật, Skill Level sẽ vô hiệu, và UCI_Elo có hiệu lực.
UCI_Elo
Phạm vi: 1280 ~ 3133
Giới hạn trình độ sức cờ của engine chi tiết hơn, nguyên lý "nhường cờ" giống với Skill Level. Chỉ có hiệu lực khi bật UCI_LimitStrength, phạm vi 1280~3133, càng thấp càng yếu. Nếu 21 cấp của Skill Level chưa đủ và bạn muốn chia trình độ sức cờ của engine tinh hơn, hãy dùng UCI_Elo. Cách giới hạn sức cờ không khác Skill Level, chỉ là chia nhỏ hơn. Trong đó Elo=1280 tương đương 0 của Skill Level, giá trị cao nhất 3133 tương đương 19 của Skill Level, 2850=13, 2568=10, 2268=7, 1777=4.
Giá trị UCI_Elo đã được hiệu chỉnh theo bảng xếp hạng giải đấu engine cờ tướng.
Mate Threat Depth
Phạm vi: 0 ~ 10
Số hiệp dùng để xác định "sát" (杀, đe dọa chiếu bí) trong luật Trung Quốc. Tùy chọn này chỉ có hiệu lực khi Repetition Rule được đặt là ChineseRule, phạm vi 0~10; đặt 0 thì engine không xét "sát" của luật Trung Quốc như thường gọi. Đặt 1~10, engine sẽ trong quá trình tìm kiếm xét xem nước đi lặp có phải là "sát" trong vòng 1~10 hiệp hay không, mà "sát" trong luật Trung Quốc có thể dẫn đến phạm luật khi lặp. Đặt càng cao thì sức cờ giảm càng nhiều. Phù hợp để người thuần túy giải thế cờ trong môi trường luật Trung Quốc.
Ghi chú: cái gọi là "luật Trung Quốc" có tên chính xác là 《Luật thi đấu cờ tướng》 do Hiệp hội Cờ tướng Trung Quốc ban hành.
Repetition Rule
Giá trị: AsianRule, SkyRule, ComputerRule, ChineseRule, AllowChase, YitianRule, NoJudgement
AsianRulelà luật châu Á (một phiên bản luật châu Á theo cách hiểu của nhóm tác giả), mức độ nghiêm trọng của phạm luật: chiếu liên tục > bắt liên tục cùng một quân > các trường hợp khác, thuộc loại 2fold (thế cờ lặp lại là phán quyết ngay, tức là thế cờ xuất hiện lần thứ 2 thì phán quyết). Phần lớn luật trên các nền tảng mạng là luật châu Á.Ghi chú: cái gọi là "luật châu Á" có tên chính xác là 《Luật cờ tướng thế giới》 do Liên đoàn Cờ tướng Thế giới ban hành.
SkyRulelà luật của một số nền tảng mạng. Lưu ý, một số luật trên mạng là luật châu Á có chỉnh sửa đôi chút, không phải luật Trung Quốc. Dùng để giải thế cờ sau khi đấu trực tuyến, giúp người chơi thích nghi với luật của nền tảng hơn. Hãy tự phân biệt luật trên mạng có phải luật châu Á hay không. (Tác giả mã luật này là skystarspython)ComputerRulelà luật dựa trên 《Luật thi đấu chương trình cờ tướng máy tính》 của tác giả Pikafish, có một vài khác biệt so vớiAsianRule, cũng khác biệt khá lớn so với luật của mọi nền tảng mạng, nhưng là luật duy nhất phù hợp hoàn toàn với kết quả phán quyết của tất cả các ví dụ minh họa trong luật châu Á, bám sát định nghĩa văn bản của luật châu Á hơn, và thuộc loại 3fold (thế cờ xuất hiện lần thứ 3 thì phán quyết).ChineseRulelà luật Trung Quốc được đơn giản hóa tối đa, nhưng về bản chất là phiên bản sửa đổi của luật châu Á. Lưu ý hiện không có nền tảng mạng nào dùng luật Trung Quốc, nhiều nhất cũng chỉ là luật châu Á chỉnh sửa chút ít. Hiện nay luật Trung Quốc do định nghĩa quá mơ hồ và phức tạp, các thế lặp phức tạp phụ thuộc nhiều vào suy nghĩ chủ quan của trọng tài, mỗi trọng tài hiểu một khác, nghĩa là về bản chất có vô số luật Trung Quốc, tuyệt đối không thể lập trình hóa.Mức độ nghiêm trọng phạm luật của luật Trung Quốc đơn giản hóa trong Pikafish: chiếu liên tục > bắt liên tục, sát liên tục, chiếu-sát lặp, chiếu-bắt lặp, sát-bắt lặp > các trường hợp khác. Sau khi bật tùy chọn này, chỉ khi
Mate Threat Depthkhác 0 thì engine mới xét "sát".AllowChasechỉ cấm chiếu liên tục, cho phép mọi nước lặp khác. Vì luật cờ tướng không thống nhất, nên ở một số thế cờ đang có ưu thế thắng có thể giải thế cờ phân tích theo luật này, nhằm tìm đường đi không dính đến luật lặp, tránh các vấn đề luật lặp có thể xảy ra.YitianRulephù hợp dùng trên nền tảng Yitian (弈天). Nhưng việc phán giới hạn nước đi tự nhiên trên nền tảng Yitian cần tự bấm thủ công.NoJudgementcho phép mọi nước lặp, không có bất kỳ phán quyết phạm luật nào.
Lưu ý
Các luật trên phải luôn nhớ điều chỉnh. Ví dụ sau khi dùng luật khác để giải thế cờ, nếu sau đó cần thử nghiệm giải đấu engine thì phải đặt lại AsianRule, nếu không có thể xuất hiện kết quả thử nghiệm phi lý.
ScoreType
Giá trị: Elo, PawnValueNormalized, Raw
Loại điểm số mà engine hiển thị, không ảnh hưởng đến sức cờ.
Elo: điểm theo xác suất thắng. Là điểm số được quy đổi từ điểm gốc dựa trên mô hình xác suất thắng. Điểm elo của Pikafish (từ năm 2024) gắn với chênh lệch điểm Elo, 200 điểm nghĩa là khi tự đấu cờ nhanh có tỉ lệ thắng 76% (tỉ lệ thắng thường nói trong giới cờ tướng, tức số ván thắng cộng một nửa số ván hòa, ví dụ 4 thắng 4 hòa 2 thua là 60%, 3 thắng 4 hòa 3 thua là 50%), quan hệ giữa chênh lệch điểm elo và tỉ lệ thắng như hình dưới.PawnValueNormalized: điểm gốc chia cho một hằng số giá trị của một quân Tốt.Raw: điểm gốc.


LU_Output
Mặc định: bật
Mặc định bật. Khi bật sẽ hiển thị thông tin lowerbound và upperbound; nói dễ hiểu là cùng một tầng có thể xuất kết quả nhiều lần, ví dụ khi một tầng đang được nâng lên tầng trên thì sẽ xuất chi tiết suy nghĩ chưa đầy đủ. Nếu tắt, mỗi tầng chỉ xuất một lần.
Tùy chọn này chỉ khác biệt ở phần hiển thị, không ảnh hưởng sức cờ.
DrawRule
Mặc định: None
Giá trị: None, DrawAsBlackWin, DrawAsRedWin, DrawRepAsBlackWin, DrawRepAsRedWin
Nonelà bình thường, mặc định làNone.DrawAsBlackWinlà hòa thì Đen thắng, engine sẽ coi hòa do lặp và hòa do giới hạn nước đi tự nhiên là Đen thắng.DrawAsRedWinlà hòa thì Đỏ thắng.DrawRepAsBlackWinlà hòa do lặp thì Đen thắng, engine chỉ coi hòa do lặp là Đen thắng. Khi giải thế cờ phân tích, nếu không muốn trong thời gian ngắn đi ra vòng lặp hòa thì có thể dùng tùy chọn này.DrawRepAsRedWinlà hòa do lặp thì Đỏ thắng.
Engine Pikafish không đảm bảo sức cờ khi dùng các luật này, đặc biệt điểm đánh giá hoàn toàn không đáng tin, chỉ có nước đi là có thể mang tính tham khảo.
Các luật trên nếu đã điều chỉnh thì phải luôn nhớ đặt lại. Ví dụ sau khi dùng hòa Đen thắng để giải thế cờ, nếu sau đó cần thử nghiệm giải đấu engine thì phải đặt lại None, nếu không sẽ xuất hiện kết quả thử nghiệm phi lý.
EvalFile
Tên và đường dẫn file trọng số NNUE mà engine cần đọc. Mặc định engine đọc file tên pikafish.nnue trong cùng thư mục, bạn có thể đổi tên file NNUE và dùng tùy chọn này để engine vẫn đọc được. Người bình thường không cần dùng; trên ứng dụng điện thoại Youbu (优步) có thể dùng tùy chọn này để cấu hình nhiều engine.
Một số giao diện (đặc biệt là giao diện tự làm, như giao diện T) khi nạp engine không chuyển thư mục làm việc sang thư mục engine, khiến engine không đọc được file NNUE. Có thể đặt đường dẫn đầy đủ của file NNUE qua tùy chọn này để giải quyết, hoặc đặt thẳng pikafish.nnue vào thư mục của giao diện (có thể thử nếu giao diện không cung cấp chức năng thiết lập tùy chọn cho engine).
NumaPolicy
Mặc định: auto
Mặc định auto, thường không cần quan tâm tùy chọn này.
Tuy nhiên với Windows từ năm 2022 trở về trước, hoặc máy chủ nhiều nhân, lưu ý auto rất có thể không dùng hết các luồng, có thể đổi sang hardware hoặc tắt siêu phân luồng (hyper-threading); cách trước sẽ có vấn đề phân bổ khi mở nhiều engine, cách sau có xác suất chạy bình thường.
Các tùy chọn khác
Các tùy chọn còn lại người bình thường hầu như không dùng đến (ví dụ Threads và Hash, giao diện sẽ cung cấp phần thiết lập tương ứng), có thể bỏ qua; nếu muốn biết, hãy vào xem Wiki trong GitHub chính thức của Pikafish.
