分析

Stockfish 的 Elo 與難度等級

支援 iPhone、iPad、Mac 和 Android。不需帳號。

Stockfish 有多強?以最強棋力來說,遠遠強過任何人類棋手。但 Stockfish 也可以刻意下得弱一點,西洋棋 App 和網站就是這樣替每一種程度的棋手提供難度的。本頁說明這些難度背後的設定、引擎難度上的 Elo 數字代表什麼、不代表什麼、Lichess 上的 Stockfish 級別是怎麼設定的,以及如何選擇適合你的難度。

Stockfish 如何限制棋力

Stockfish 內建兩種降低棋力的方式。兩者都是 UCI 選項,也就是西洋棋程式在引擎開始搜尋前傳給它的設定。

  • Skill Level(技能等級),從 0 到 20。 20 是最強棋力,0 是最弱的設定。低於 20 時,Stockfish 會比較好幾個候選走法,並帶著隨機成分,有時刻意選一步較差的棋。等級越低,它在搜尋中越早做這個選擇,也接受越大的錯誤。
  • UCI_LimitStrength 和 UCI_Elo。 開啟 UCI_LimitStrength 後,程式可以用 UCI_Elo 要求一個以 Elo 表示的目標棋力。在 Stockfish 19 中,允許的範圍是 1320 到 3190。Stockfish 在內部會把這個 Elo 換算成技能等級。

這個範圍寫在原始碼裡(Stockfish 19 的 search.h)。根據那裡的一段註解,這個換算是依據不同技能等級的 Stockfish 和另一個引擎的對局擬合出來的,大約涵蓋 CCRL 快棋尺度上的 1320 到 3190。CCRL 是引擎的等級分榜,不是人類的。

還有第三種方式,所有程式都能使用:直接限制搜尋本身。固定的節點數(引擎查看的局面數)、固定的深度或每步很短的時間,都會讓 Stockfish 變弱,因為淺層搜尋會漏掉深層搜尋找得到的戰術。許多 App 會把這類限制和技能等級搭配使用。

為什麼引擎的 Elo 不是你的等級分

Elo 數字只在它自己的棋手群體中才有意義。引擎難度是用引擎之間的對局測量的。你的等級分則來自人與人之間的對局,而且是在某一個網站或某一個棋協。

  • 不同的群體。 UCI_Elo 以一份引擎等級分榜為基準。Lichess 和 Chess.com 的等級分來自各自棋手之間的對局,FIDE 等級分則來自計分的實體棋盤對局。
  • 不同的錯誤。 受限的引擎大多下出很強的棋,偶爾才隨機選一步較弱的。人犯的是其他類型的錯誤:漏看威脅、誤判計畫,或時間不夠。一個在紙面上和你等級分相當的難度,下起來可能感覺難得多,也可能容易得多。
  • 不同的條件。 每步的思考時間和裝置的速度,都會改變一個難度實際的棋力。

就連人類的等級分彼此也對不上。同一位棋手在 Lichess、Chess.com 和 FIDE 上的數字都不同,西洋棋等級分換算中的比較就說明了這一點。所以請把引擎難度的 Elo 當成階梯上的一級,而不是可以拿來和你的等級分比較的數字。

最強棋力的 Stockfish 有多強?

遠遠超過任何人類。在 Stockfish 18 推出時,Stockfish 團隊就寫道,即使在較舊或低階的硬體上,這個引擎也比任何人類棋手都強(公告)。在 2026 年 10 月 16 日的 CCRL 40/15 等級分榜上,使用四個處理器核心的 Stockfish 19 以 3650 Elo 排名第一。

這個數字屬於引擎尺度,是在固定條件下和其他引擎對局測出來的。它無法準確告訴你和人類對局會是什麼結果。它能告訴你的是:以最強棋力來說,Stockfish 是分析工具,而不是人類的練習對手。要和它對弈,你需要一個受限的難度。最新版本有哪些改變,請見 Stockfish 19。

Lichess 上的 Stockfish 級別

在 Lichess 上,你可以和電腦以 1 到 8 級對弈。電腦的走法來自 fishnet,也就是 Lichess 的分散式 Stockfish 服務。撰寫本文時,它的原始碼(api.rs)為每一級設定了三項限制:

Lichess 級別Skill Level深度上限每步時間
1-9550 毫秒
2-55100 毫秒
3-15150 毫秒
435200 毫秒
575300 毫秒
6118400 毫秒
71613500 毫秒
820221000 毫秒

有三點值得注意。第 1 到第 3 級使用低於 0 的技能值,超出了 Stockfish 官方選項的範圍。第 8 級關閉了技能限制(20),但深度和時間仍有上限,所以第 8 級非常強,卻不是最強棋力的 Stockfish。另外,程式碼設定的是技能、深度和時間,而不是 Elo。你在別處看到的 Lichess 級別 Elo,都是其他來源的估計,不是 Lichess 程式碼裡的數字。

ChessWOW 的五種難度

ChessWOW 的五種難度使用的是 Stockfish 19 本身的設定:

難度目標設定方式
新手Elo 800Skill Level 0,加上小幅的節點數上限
俱樂部棋手Elo 1600UCI_LimitStrength 搭配 UCI_Elo 1600
大師Elo 2200UCI_LimitStrength 搭配 UCI_Elo 2200
特級大師Elo 2700UCI_LimitStrength 搭配 UCI_Elo 2700
最強棋力不限沒有棋力限制,使用所有處理器核心

新手難度需要另一種方法。UCI_Elo 不能低於 1320,而單靠 Skill Level 0,對正在學棋的人來說還是下得太好。所以 ChessWOW 把 Skill Level 0 和很小的節點數上限結合起來。這樣引擎搜尋得非常少,連短的戰術也會漏看。所有 Elo 數值都是 Stockfish 尺度上的目標,不是 Lichess 或 Chess.com 的等級分,而且裝置和用時都會影響一個難度實際的表現。

你可以在瀏覽器中,用與 Stockfish 對弈頁面上方的棋盤試試同樣的五種難度。瀏覽器執行的是較小版本的 Stockfish 19,網路也較小。

如何選擇適合的難度

  1. 步驟 1

    從一個感覺有點簡單的難度開始。 剛學西洋棋:新手。經常下棋、懂基本戰術:俱樂部棋手。實力強的棋社或比賽棋手可以從大師開始。

  2. 步驟 2

    下三到五盤,不用提示,讓結果反映你自己的棋力。

  3. 步驟 3

    統計你的戰績。 如果幾乎每盤都贏,就往上調一級。如果幾乎每盤都輸,就往下調一級。

  4. 步驟 4

    停在有贏有輸的難度。 這些對局能讓你學到最多。

  5. 步驟 5

    每盤棋結束後看報告。 對局報告會顯示棋局在哪裡轉折。下一盤之前,先把那些局面練一練。

往上調一級時,先輸幾盤是預料中的事。各難度之間的差距大小並不相同,Lichess 如此,任何 App 也都一樣。如果某一級的跨度感覺太大,就在低一級多下幾盤,或從你占優的局面開始,練習把它贏下來。

實用資訊

問與答

Stockfish 的 Elo 是多少?

以最強棋力來說,使用四個核心的 Stockfish 19 在 2026 年 10 月 16 日的 CCRL 40/15 榜上是 3650。這是引擎尺度,不能和人類等級分比較。

Lichess 上 Stockfish 第 8 級是多少 Elo?

Lichess 的程式碼沒有給出數字。第 8 級使用 Skill Level 20,深度上限 22,每步最多一秒。

Stockfish 最低可以設定到多少 Elo?

在 Stockfish 19 中,用 UCI_Elo 最低是 1320。要下得更弱,需要用 Skill Level 和搜尋限制,例如節點數上限。

Skill Level 20 是什麼意思?

最強棋力。在 20 時,Stockfish 不會刻意選擇較弱的走法。

ChessWOW 的新手難度真的是 Elo 800 嗎?

那是 Stockfish 尺度上的目標,用 Skill Level 0 和節點數上限達成。它和 Lichess、Chess.com 或 FIDE 上的 800 分不一樣。

更多指南

繼續閱讀

ChessWOW

找到你對上 Stockfish 的難度。

五種難度,完整網路,在 iPhone、iPad、Mac 和 Android 上離線使用。