19

I just found out about Stockfish's stupid little brother, Worstfish. Worstfish calculates the worst move in every position and plays it. Because of this, is it possible to lose against it? If you give it a mate in one, it obviously won't play it because it would be the best move. But is it possible to force your opponent to checkmate you? I hope somebody knows if this is possible or not.

1
  • 1
    Worstfish has a Lichess account, and you can easily search for games that it won by checkmate. This does include a few fake "from position" games (where someone pre-arranged the pieces so that the bot's only legal move was checkmate), but there are legitimate games listed as well. Most of the fake games can be excluded by setting the minimum number of turns to 3 or so (there are no checkmates in the first three moves of a real game).
    – Kevin
    Commented Nov 25, 2023 at 20:29

4 Answers 4

19

Here's an example found by googling "lose to worstfish chess" and following the first hit that comes up (a reddit thread)

In case of link rot the game is below. I note WorstFish opens with the Grob

[Event "Casual Rapid game"]
[Site "https://lichess.org/S9GDQ5Pr"]
[Date "2023.09.15"]
[White "WorstFish"]
[Black "EdwinBrum"]
[Result "1-0"]
[UTCDate "2023.09.15"]
[UTCTime "08:08:41"]
[WhiteElo "1500"]
[BlackElo "1721"]
[WhiteTitle "BOT"]
[Variant "Standard"]
[TimeControl "600+0"]
[ECO "A00"]
[Opening "Grob Opening"]
[Termination "Normal"]
[Annotator "lichess.org"]
[FEN ""]

1. g4? { (0.15 → -1.46) Mistake. e4 was best. } { A00 Grob Opening } (1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. c3 O-O) 1... e5 2. f4?? { (-0.93 → Mate in 1) Checkmate is now unavoidable. Bg2 was best. } (2. Bg2 Nc6 3. Nc3 Nge7 4. e3 d5 5. d4 exd4 6. exd4 Be6) 2... h5?? { (Mate in 1 → -1.82) Lost forced checkmate sequence. Qh4# was best. } (2... Qh4#) 3. f5?? { (-1.82 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (3. g5 exf4 4. d4 Qxg5 5. Nf3 Qf6 6. Nc3 Bb4 7. Qd2 d5) 3... g5?? { (Mate in 1 → -0.68) Lost forced checkmate sequence. Qh4# was best. } (3... Qh4#) 4. fxg6?? { (-0.68 → Mate in 1) Checkmate is now unavoidable. d3 was best. } (4. d3 d5 5. e4 dxe4 6. Nc3 exd3 7. Bxd3 Nc6 8. Bd2 Bd7 9. h4 hxg4 10. Qxg4 Nf6) 4... f5?? { (Mate in 1 → -0.94) Lost forced checkmate sequence. Qh4# was best. } (4... Qh4#) 5. a4?? { (-0.94 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (5. g5 Nc6 6. d4 Nxd4 7. Nf3 Nxf3+ 8. exf3 d5 9. f4 Ne7 10. fxe5 Nxg6 11. Nc3 c6) 5... a5?? { (Mate in 1 → -0.70) Lost forced checkmate sequence. Qh4# was best. } (5... Qh4#) 6. Ra2?? { (-0.70 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (6. g5) 6... d5?? { (Mate in 1 → -2.95) Lost forced checkmate sequence. Qh4# was best. } (6... Qh4#) 7. b4?? { (-2.95 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (7. g5 Qxg5 8. Nf3 Qf6 9. d3 f4 10. e3 fxe3 11. Bxe3 Bg4 12. Bg2 Nc6 13. O-O Qxg6) 7... c5?? { (Mate in 1 → -2.79) Lost forced checkmate sequence. Qh4# was best. } (7... Qh4#) 8. Bb2?? { (-2.79 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (8. g5 axb4 9. c3 Qxg5 10. Nf3 Qf6 11. d3 e4 12. Bg5 Qxg6 13. dxe4 fxe4 14. Qxd5 exf3) 8... b5?? { (Mate in 1 → -0.74) Lost forced checkmate sequence. Qh4# was best. } (8... Qh4#) 9. c4?? { (-0.74 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (9. g5 Bg7) 9... h4?? { (Mate in 1 → 1.50) Lost forced checkmate sequence. Qh4# was best. } (9... Qh4#) 10. Bd4?? { (1.50 → -3.98) Blunder. Bxe5 was best. } (10. Bxe5) 10... h3?? { (-3.98 → -1.81) Blunder. cxd4 was best. } (10... cxd4 11. axb5 fxg4 12. bxa5 Rxa5 13. Rxa5 Qxa5 14. h3 e4 15. hxg4 Bd6 16. Qc2 Nf6 17. Nf3) 11. Ba1?? { (-1.81 → Mate in 1) Checkmate is now unavoidable. Bxe5 was best. } (11. Bxe5 Nc6 12. Bg3 bxc4 13. bxc5 fxg4 14. Nc3 Nf6 15. e4 Nb4 16. Nxd5 Nfxd5 17. Bxc4 Qe7) 11... f4?? { (Mate in 1 → -1.16) Lost forced checkmate sequence. Qh4# was best. } (11... Qh4#) 12. Bc3?? { (-1.16 → Mate in 1) Checkmate is now unavoidable. g5 was best. } (12. g5) 12... e4?? { (Mate in 1 → -1.63) Lost forced checkmate sequence. Qh4# was best. } (12... Qh4#) 13. Be5?? { (-1.63 → Mate in 1) Checkmate is now unavoidable. Qc2 was best. } (13. Qc2 axb4 14. Bxh8 Qh4+ 15. Kd1 bxc4 16. Qb2 Nc6 17. Nxh3 Qxg4 18. Rg1 Qh4 19. Nc3 bxc3) 13... d4?? { (Mate in 1 → -0.68) Lost forced checkmate sequence. Qh4# was best. } (13... Qh4#) 14. Nc3?? { (-0.68 → Mate in 1) Checkmate is now unavoidable. Qb3 was best. } (14. Qb3 Rh6) 14... f3?? { (Mate in 1 → 2.59) Lost forced checkmate sequence. Qh4# was best. } (14... Qh4#) 15. Bg7?? { (2.59 → Mate in 1) Checkmate is now unavoidable. Nxe4 was best. } (15. Nxe4 bxc4 16. Nxf3 Rh6 17. g7 Be7 18. g5 Rg6 19. Qc2 Nc6 20. Nxc5 Nxe5 21. Nxe5 Rxg7) 15... e3?? { (Mate in 1 → -3.50) Lost forced checkmate sequence. Qh4# was best. } (15... Qh4#) 16. Be5?? { (-3.50 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (16. Nxf3 Bxg7 17. Nxb5 axb4 18. dxe3 dxe3 19. Qb3 Qe7 20. Qd3 b3 21. Qxb3 Nc6 22. Ra3 Nb4) 16... d3?? { (Mate in 1 → 2.90) Lost forced checkmate sequence. f2# was best. } (16... f2#) 17. Bf4?? { (2.90 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (17. Nxf3) 17... Nc6?? { (Mate in 1 → 0.88) Lost forced checkmate sequence. f2# was best. } (17... f2#) 18. Bh6?? { (0.88 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (18. Nxf3 Nge7 19. dxe3 Nxb4 20. Nxb5 Nxg6 21. Rd2 Bb7 22. g5 Nxf4 23. exf4 Bxf3 24. exf3) 18... Nd4?? { (Mate in 1 → -3.38) Lost forced checkmate sequence. f2# was best. } (18... f2#) 19. Bf4?? { (-3.38 → Mate in 1) Checkmate is now unavoidable. Bxe3 was best. } (19. Bxe3 axb4 20. Bxd4 bxc3 21. Nxf3 cxd4 22. Qb3 c2 23. Ra1 Ne7 24. exd3 Nxg6 25. Be2 bxc4) 19... Nc2+? { (Mate in 1 → -7.24) Lost forced checkmate sequence. f2# was best. } (19... f2#) 20. Rxc2? { (-7.24 → Mate in 1) Checkmate is now unavoidable. Qxc2 was best. } (20. Qxc2 dxc2 21. Rxc2 f2+ 22. Kd1 axb4 23. Nd5 Ra7 24. Nxh3 bxc4 25. Nxe3 Qd4 26. a5 Qa1+) 20... Nf6?? { (Mate in 1 → 1.46) Lost forced checkmate sequence. f2# was best. } (20... f2#) 21. g5?? { (1.46 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (21. Nxf3 dxc2 22. Qxc2 Bg7 23. Bxe3 cxb4 24. Nxb5 O-O 25. Bxh3 Nxg4 26. Bg5 Bf6 27. c5 Bxg5) 21... Nd5?? { (Mate in 1 → 0.19) Lost forced checkmate sequence. f2# was best. } (21... f2#) 22. Nb1?? { (0.19 → Mate in 1) Checkmate is now unavoidable. dxe3 was best. } (22. dxe3) 22... Nc3?? { (Mate in 1 → -5.35) Lost forced checkmate sequence. f2# was best. } (22... f2#) 23. Rc1?? { (-5.35 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (23. Nxf3 Nxd1 24. Rc1 Nf2 25. bxc5 Bxc5 26. g7 Rg8 27. cxb5 Qe7 28. Ne5 Rxg7 29. Nc6 Qe4) 23... Na2?? { (Mate in 1 → 2.21) Lost forced checkmate sequence. f2# was best. } (23... f2#) 24. Na3?? { (2.21 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (24. Nxf3 axb4 25. cxb5 Qd5 26. dxe3 Nxc1 27. Qxc1 Bg7 28. Nbd2 O-O 29. Kf2 Rxa4 30. e4 Qd7) 24... Nc3?? { (Mate in 1 → -2.58) Lost forced checkmate sequence. f2# was best. } (24... f2#) 25. Bb8?? { (-2.58 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (25. Nxf3 Nxd1) 25... Ne4?? { (Mate in 1 → -1.20) Lost forced checkmate sequence. f2# was best. } (25... f2#) 26. Rb1?? { (-1.20 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (26. Nxf3) 26... Nc3?? { (Mate in 1 → -4.50) Lost forced checkmate sequence. f2# was best. } (26... f2#) 27. Ba7?? { (-4.50 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (27. Nxf3 Nxd1 28. Be5 Bb7 29. Bf6 Be7 30. Bxh8 Bxf3 31. exf3 Bxg5 32. Be5 e2 33. Bxe2 dxe2) 27... Ne4?? { (Mate in 1 → -2.98) Lost forced checkmate sequence. f2# was best. } (27... f2#) 28. Rb2?? { (-2.98 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (28. Nxf3 Bg4 29. g7 Bxg7 30. Bxc5 exd2+ 31. Nxd2 Bc3 32. Be3 O-O 33. cxb5 Rc8 34. Rc1 Rf7) 28... Qf6?? { (Mate in 1 → -4.91) Lost forced checkmate sequence. f2# was best. } (28... f2#) 29. Rc2?? { (-4.91 → Mate in 1) Checkmate is now unavoidable. Qb1 was best. } (29. Qb1 exd2+) 29... Qc3?? { (Mate in 1 → -5.27) Lost forced checkmate sequence. f2# was best. } (29... f2#) 30. Bb8?? { (-5.27 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (30. Nxf3 dxc2 31. Qxc2 Qxc2 32. Nxc2 Rxa7 33. cxb5 axb4 34. Bxh3 Bxh3 35. b6 Rd7 36. Nxe3 Bg7) 30... Rh4?? { (Mate in 1 → -3.99) Lost forced checkmate sequence. f2# was best. } (30... f2#) 31. Ra2?? { (-3.99 → Mate in 1) Checkmate is now unavoidable. exd3 was best. } (31. exd3 exd2+ 32. Qxd2 f2+ 33. Kd1 Qxa3 34. Qe3 Qa1+ 35. Qc1 Bg4+ 36. Ne2 Qd4 37. Qb2 Rxb8) 31... Rg4?? { (Mate in 1 → -0.64) Lost forced checkmate sequence. f2# was best. } (31... f2#) 32. Qc1?? { (-0.64 → Mate in 1) Checkmate is now unavoidable. Nxf3 was best. } (32. Nxf3) 32... f2+ 33. Kd1 dxe2+?? { (Mate in 10 → -3.85) Lost forced checkmate sequence. fxg1=Q was best. } (33... fxg1=Q 34. Qxc3 Nxc3+ 35. Kc1 dxe2 36. Rxg1 e1=Q+ 37. Kb2 Bf5 38. dxc3 cxb4 39. Nc2 bxc3+ 40. Kb3) 34. Bxe2?? { (-3.85 → Mate in 3) Checkmate is now unavoidable. Nxe2 was best. } (34. Nxe2 Qxc1+ 35. Kxc1 exd2+ 36. Rxd2 Nxd2 37. Bf4 Nb3+ 38. Kb2 Nd4 39. Be5 Bb7 40. Nxd4 cxd4) 34... Qxd2+?? { (Mate in 3 → -5.80) Lost forced checkmate sequence. Rxg1+ was best. } (34... Rxg1+ 35. Rxg1 fxg1=Q+ 36. Bf1 Qxf1#) 35. Qxd2 Ke7?? { (-6.89 → 8.79) Blunder. Rxg1+ was best. } (35... Rxg1+ 36. Kc2 Nxd2 37. Kd3 Rxh1 38. Kxe3 f1=Q 39. Bxf1 Nxf1+ 40. Kf4 Rxb8 41. Nxb5 Rxh2 42. Rxh2) 36. Bf3?? { (8.79 → -14.21) Blunder. Qxe3 was best. } (36. Qxe3 fxg1=B 37. Rxg1 Rxg1+ 38. Qxg1 Rxb8 39. Bf3 Bf5 40. Bxe4 Bxe4 41. Qxc5+ Ke6 42. Qe3 Ke5) 36... Ke6?? { (-14.21 → Mate in 3) Checkmate is now unavoidable. f1=Q+ was best. } (36... f1=Q+ 37. Kc2 exd2 38. Nxh3 Qxf3 39. Be5 Bf5 40. Kb2 d1=Q 41. Rxd1 Rg2+ 42. Kc1 Qe3+ 43. Rad2) 37. Qc2?? { (Mate in 3 → Mate in 1) Lost forced checkmate sequence. Qd5+ was best. } (37. Qd5+ Ke7 38. Qf7+ Kd8 39. Bc7#) 37... Kf5?? { (Mate in 1 → 13.10) Lost forced checkmate sequence. f1=Q# was best. } (37... f1=Q#) 38. Nb1?? { (13.10 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (38. Bxg4+ Kxg4 39. Qxe4+ Kh5 40. Ne2 Bg4 41. Qxa8 bxc4 42. bxa5 Bg7 43. Qe4 Bd4 44. Nxc4 Bxe2+) 38... Rxb8?? { (Mate in 1 → 9.61) Lost forced checkmate sequence. f1=Q# was best. } (38... f1=Q#) 39. g7?? { (9.61 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (39. Bxg4+ Ke5 40. Nf3+ Kf4 41. Bxc8 Rxc8 42. Ke2 Re8 43. cxb5 Nxg5 44. Qc4+ Re4 45. Qc3 Re6) 39... Bxg7?? { (Mate in 1 → 9.02) Lost forced checkmate sequence. f1=Q# was best. } (39... f1=Q#) 40. Na3?? { (9.02 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (40. Bxg4+ Ke5 41. Nf3+ Kf4 42. Bxc8 Rxc8 43. Ke2 Re8 44. bxc5 b4 45. Qd3 Bf8 46. Qxe3+ Kg4) 40... Be6?? { (Mate in 1 → 9.07) Lost forced checkmate sequence. f1=Q# was best. } (40... f1=Q#) 41. Rb2?? { (9.07 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (41. Bxg4+ Ke5 42. Nf3+ Kf4 43. Bxe6 Nc3+ 44. Kc1 Rf8 45. cxb5 Kxf3 46. bxa5 Kf4 47. Qd3 Be5) 41... Bxc4?? { (Mate in 1 → 9.68) Lost forced checkmate sequence. f1=Q# was best. } (41... f1=Q#) 42. Rb1?? { (9.68 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (42. Bxg4+ Ke5 43. Nxc4+ bxc4 44. Ne2 Kd5 45. Bf3 Re8 46. Nf4+ Kd4 47. bxa5 e2+ 48. Kxe2 Nxg5+) 42... Rd8+ 43. Qd2 Ng3? { (Mate in 2 → -7.43) Lost forced checkmate sequence. f1=Q+ was best. } (43... f1=Q+ 44. Kc2 Rxd2#) 44. Rc1? { (-7.43 → Mate in 1) Checkmate is now unavoidable. Bxg4+ was best. } (44. Bxg4+ Kxg4 45. Nf3 Be2+ 46. Kc2 exd2 47. Nxd2 Bd3+ 48. Kb3 c4+ 49. Ndxc4 bxc4+ 50. Nxc4 Nxh1) 44... e2+?? { (Mate in 1 → -3.38) Lost forced checkmate sequence. Rxd2# was best. } (44... Rxd2#) 45. Kc2?? { (-3.38 → Mate in 7) Checkmate is now unavoidable. Nxe2 was best. } (45. Nxe2 Nxh1) 45... Ke5?? { (Mate in 7 → 6.74) Lost forced checkmate sequence. Rxd2+ was best. } (45... Rxd2+ 46. Kxd2 Rd4+ 47. Kc2 Bd3+ 48. Kd2 e1=Q+ 49. Rxe1 Bb1+ 50. Ke3 fxe1=Q+ 51. Be2 Rd3#) 46. Rf1?? { (6.74 → Mate in 6) Checkmate is now unavoidable. Qe3+ was best. } (46. Qe3+ Ne4 47. Nxc4+ bxc4 48. Bxg4 Rd2+ 49. Qxd2 fxg1=Q 50. Rhxg1 Nxd2 51. Kxd2 cxb4 52. Rxc4 Kd5) 46... Rd3?? { (Mate in 6 → 0.68) Lost forced checkmate sequence. Rxd2+ was best. } (46... Rxd2+ 47. Kxd2 Nxf1+ 48. Kc2 Ne3+ 49. Kb2 Kf5+ 50. Kc1 e1=Q+ 51. Bd1 Qxd1#) 47. Bd5?? { (0.68 → Mate in 5) Checkmate is now unavoidable. Nxe2 was best. } (47. Nxe2) 47... Kd4?? { (Mate in 5 → 2.24) Lost forced checkmate sequence. Rxd2+ was best. } (47... Rxd2+ 48. Kxd2 Nxf1+ 49. Kc1 e1=Q+ 50. Kb2 Kxd5+ 51. Kc2 Ne3#) 48. g6?? { (2.24 → Mate in 5) Checkmate is now unavoidable. Nxe2+ was best. } (48. Nxe2+ Kxd5 49. hxg3 Rxd2+ 50. Kxd2 axb4 51. Nxb5 Rxg5 52. Rxf2 Kc6 53. Rxh3 Rd5+ 54. Ke1 b3) 48... Re4?? { (Mate in 5 → -4.13) Lost forced checkmate sequence. Rxd2+ was best. } (48... Rxd2+ 49. Kxd2 Nxf1+ 50. Kc1 e1=Q+ 51. Kc2 Ne3+ 52. Kb2 Kxd5#) 49. Kc1?? { (-4.13 → Mate in 4) Checkmate is now unavoidable. Nxe2+ was best. } (49. Nxe2+ Rxe2 50. Qxe2 Rc3+ 51. Kb1 Bxe2 52. Nxb5+ Bxb5 53. axb5 Nxf1 54. Rxf1 Kxd5 55. Rxf2 Rb3+) 49... Be5?? { (Mate in 4 → 0.00) Lost forced checkmate sequence. exf1=Q+ was best. } (49... exf1=Q+ 50. Kb2 Rxd2+ 51. Nc2+ Kxd5+ 52. Ka3 Qd3#) 50. Qa2?? { (0.00 → Mate in 3) Checkmate is now unavoidable. Nf3+ was best. } (50. Nf3+ Kxd5 51. g7 exf1=Q+ 52. Rxf1 Ne2+ 53. Kb1 Bxg7 54. Qg5+ Re5 55. Qxg7 Rb3+ 56. Kc2 Rxf3) 50... Kc3?? { (Mate in 3 → Mate in 1) Lost forced checkmate sequence. exf1=Q+ was best. } (50... exf1=Q+ 51. Kc2 Qd1+ 52. Kb2 Kxd5#) 51. Be6?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qb2# was best. } (51. Qb2#) 51... Rd2?? { (Mate in 1 → Mate in 2) Lost forced checkmate sequence. exf1=Q# was best. } (51... exf1=Q#) 52. Bd7?? { (Mate in 2 → Mate in 1) Lost forced checkmate sequence. Nxb5+ was best. } (52. Nxb5+ Kxb4 53. Qa3#) 52... Re3?? { (Mate in 1 → 10.68) Lost forced checkmate sequence. exf1=Q# was best. } (52... exf1=Q#) 53. Bf5?? { (10.68 → Mate in 1) Checkmate is now unavoidable. Qxd2+ was best. } (53. Qxd2+ Kb3 54. Qxe3+ Bc3 55. Rxf2 e1=R+ 56. Qxe1 Bxe1 57. Rf3+ Bc3 58. Rxg3 Bd5 59. Nxb5 cxb4) 53... Bd4?? { (Mate in 1 → 3.91) Lost forced checkmate sequence. exf1=Q# was best. } (53... exf1=Q#) 54. Be4?? { (3.91 → Mate in 1) Checkmate is now unavoidable. Nxb5+ was best. } (54. Nxb5+ Kxb4 55. Qxd2+ Bc3 56. Nxc3 e1=Q+ 57. Rxe1 fxe1=Q+ 58. Qxe1 Rxe1+ 59. Kd2 Rf1 60. hxg3 Rf2+) 54... Nxe4?! { (Mate in 1 → -13.63) Lost forced checkmate sequence. exf1=Q# was best. } (54... exf1=Q#) 55. Re1?! { (-13.63 → Mate in 1) Checkmate is now unavoidable. Nxb5+ was best. } (55. Nxb5+ Bxb5 56. Qa3+ Kc4 57. Nf3 Rxa3 58. Nxd2+ Nxd2 59. Kxd2 Ra2+ 60. Kc1 exf1=Q+ 61. Rxf1 Ra1+) 55... Bd3?? { (Mate in 1 → -5.37) Lost forced checkmate sequence. fxe1=Q# was best. } (55... fxe1=Q#) 56. Nc4?? { (-5.37 → Mate in 1) Checkmate is now unavoidable. Nxe2+ was best. } (56. Nxe2+ Kxb4 57. Qxd2+ Nxd2 58. Kxd2 fxe1=Q+ 59. Rxe1 Bxg6 60. Nxd4 Rd3+ 61. Kc1 Rxa3 62. Nc6+ Kxa4) 56... Rc2+? { (Mate in 1 → -8.84) Lost forced checkmate sequence. fxe1=Q# was best. } (56... fxe1=Q#) 57. Kb1? { (-8.84 → Mate in 1) Checkmate is now unavoidable. Qxc2+ was best. } (57. Qxc2+ Bxc2 58. Nxe2+ Kxc4 59. Kxc2 fxe1=Q 60. Rxe1 axb4 61. Kc1 Nc3 62. a5 b3 63. a6 Re8) 57... Rb2+ 58. Kc1 Rc2+? { (Mate in 1 → -9.60) Lost forced checkmate sequence. fxe1=Q# was best. } (58... fxe1=Q#) 59. Kb1? { (-9.60 → Mate in 1) Checkmate is now unavoidable. Qxc2+ was best. } (59. Qxc2+ Bxc2 60. Nxe2+ Kxc4 61. Kxc2 axb4 62. Kd1 fxe1=R+ 63. Rxe1 Nc3+ 64. Nxc3 Rxe1+ 65. Kxe1 Bxc3+) 59... Nd2+ 60. Nxd2 Rb2+ 61. Kc1 c4?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. fxe1=Q# was best. } (61... fxe1=Q#) 62. Qb1?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qxb2# was best. } (62. Qxb2#) 62... Rc2+?? { (Mate in 1 → 3.05) Lost forced checkmate sequence. fxe1=Q# was best. } (62... fxe1=Q#) 63. Qxc2+ Kxb4 64. Qa2?? { (2.39 → Mate in 1) Checkmate is now unavoidable. Rxe2 was best. } (64. Rxe2 fxg1=B) 64... Kc3?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. fxe1=Q# was best. } (64... fxe1=Q#) 65. g7?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qb2# was best. } (65. Qb2#) 65... b4?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. fxe1=Q# was best. } (65... fxe1=Q#) 66. g8=N?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qa1# was best. } (66. Qa1#) 66... Bc2?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. fxe1=Q# was best. } (66... fxe1=Q#) 67. Qb1?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qxc2# was best. } (67. Qxc2#) 67... Kd3?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. fxe1=Q# was best. } (67... fxe1=Q#) 68. Ne4?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qxc2# was best. } (68. Qxc2#) 68... Bc3?? { (Mate in 1 → 14.95) Lost forced checkmate sequence. fxe1=Q# was best. } (68... fxe1=Q#) 69. Ngf6?? { (14.95 → Mate in 1) Checkmate is now unavoidable. Qxc2+ was best. } (69. Qxc2+ Kd4 70. Nxe2+ Ke5 71. Nxf2 b3 72. Ng4+ Ke6 73. Nf4+ Kd6 74. Qg6+ Kc5 75. Rxe3 Bd4) 69... Bd2+? { (Mate in 1 → -7.11) Lost forced checkmate sequence. fxe1=Q# was best. } (69... fxe1=Q#) 70. Nxd2? { (-7.11 → Mate in 7) Checkmate is now unavoidable. Kb2 was best. } (70. Kb2 c3+ 71. Ka2 Bxb1+ 72. Rxb1 f1=Q 73. Nxe2 Qxe2 74. Nc5+ Kc4 75. Nb3 Bc1+ 76. Ka1 Bb2+) 70... fxe1=Q+ 71. Kb2 Qc1+?? { (Mate in 6 → -4.80) Lost forced checkmate sequence. Qxd2 was best. } (71... Qxd2 72. Ne4 Kxe4 73. Qxc2+ Qxc2+ 74. Kxc2 e1=Q 75. Nf3 Re2+ 76. Nd2+ Rxd2#) 72. Ka2?? { (-4.80 → Mate in 1) Checkmate is now unavoidable. Qxc1 was best. } (72. Qxc1 c3+ 73. Ka1 e1=Q 74. Ne2 Qxd2 75. Nf4+ Kc4 76. Nd7 Qxc1+ 77. Rxc1 b3 78. Nb6+ Kc5) 72... Kc3?? { (Mate in 1 → 8.34) Lost forced checkmate sequence. Qa3# was best. } (72... Qa3#) 73. Nh7?? { (8.34 → Mate in 1) Checkmate is now unavoidable. Nxe2+ was best. } (73. Nxe2+ Rxe2 74. Qxc1 Kd3 75. Rf1 Kd4 76. Ka1 c3 77. Qxc2 Rxd2 78. Qe4+ Kc5 79. Rf5+ Rd5) 73... Re4?? { (Mate in 1 → 9.69) Lost forced checkmate sequence. Qa3# was best. } (73... Qa3#) 74. Nf1?? { (9.69 → Mate in 1) Checkmate is now unavoidable. Nxe4+ was best. } (74. Nxe4+ Kd4 75. Qxc1 Bd1 76. Qf4 e1=Q 77. Nf3+ Bxf3 78. Rxe1 c3 79. Nxc3+ Kxc3 80. Qe3+ Kc4) 74... Rd4?? { (Mate in 1 → Mate in 9) Lost forced checkmate sequence. Qxb1# was best. } (74... Qxb1#) 75. Nd2?? { (Mate in 9 → Mate in 1) Lost forced checkmate sequence. Nxe2+ was best. } (75. Nxe2+ Kd3 76. Qxc1 Ke4 77. Qg5 Bb1+ 78. Ka1 Rd6 79. Nfg3+ Kd3 80. Kxb1 c3 81. Qf4 c2+) 75... Bd3?? { (Mate in 1 → Mate in 6) Lost forced checkmate sequence. Qa3# was best. } (75... Qa3#) 76. Nb3?? { (Mate in 6 → Mate in 1) Lost forced checkmate sequence. Qxc1+ was best. } (76. Qxc1+ Bc2 77. Ndf3 Kd3 78. Nf6 b3+ 79. Ka3 Kc3 80. Nxe2+ Kd3 81. Qd2#) 76... Qb2+?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qxb1# was best. } (76... Qxb1#) 77. Qxb2# { White wins by checkmate. } 1-0
14

There is a significant difference between making the worst move assuming best play and the worst move assuming worst play. The former is what Worstfish does (as far as I understand), but the latter is what would be the best strategy when trying to lose against an opponent that also tries to lose.

A game with standard chess rules but where both sides try to lose is sometimes also referred to as misere chess. Fairy-Stockfish supports it and also has an NNUE network trained for misere chess. As expected the best strategy actually is to more or less play normal chess trying to win material and only once you are significantly up in material you can use zugzwang to force your opponent to checkmate you. Below are two example games of Fairy-SF as white playing against a human player:

(The sidelines are automatic analysis from lichess, can be ignored)

https://lichess.org/eHYEox53

[Event "Casual Rapid game"]
[Site "https://lichess.org/eHYEox53"]
[Date "2022.05.31"]
[White "BortElGrasitas"]
[Black "forsenRage"]
[Result "0-1"]
[UTCDate "2022.05.31"]
[UTCTime "21:21:23"]
[WhiteElo "1500"]
[BlackElo "1972"]
[Variant "Standard"]
[TimeControl "720+3"]
[ECO "A13"]
[Opening "English Opening: Agincourt Defense"]
[Termination "Normal"]
[Annotator "lichess.org"]
[FEN ""]

1. c4 e6 { A13 English Opening: Agincourt Defense } 2. d4 Ke7?? { (0.26 → 2.74) Blunder. Nf6 was best. } (2... Nf6 3. Nf3 d5 4. Nc3 c6 5. Bg5 h6 6. Bxf6 Qxf6 7. e3) 3. e4 Kd6?! { (2.58 → 3.39) Inaccuracy. Ke8 was best. } (3... Ke8 4. Nc3 Bb4 5. Ne2 Be7 6. Be3 d6 7. Qc2 Bd7 8. O-O-O) 4. Nc3 Ne7?? { (3.08 → Mate in 2) Checkmate is now unavoidable. Ke7 was best. } (4... Ke7 5. Bg5+ f6 6. Be3 Ke8 7. Qa4 Nh6 8. Be2 Nf7 9. Nf3 a5 10. a3 b6 11. b4) 5. e5+ Kc6 6. d5+ Kc5 7. Ne4+ Kb4 8. Qb3+ Ka5 9. Bd2+ Ka6 10. Qa3+ Kb6 11. Qb4+ Ka6 12. c5+ b5 13. cxb6+ Kb7 14. bxa7+ Kxa7 15. Be3+ c5 16. Bxc5+ Qb6 17. Bxb6+ Kb7 18. Bd8+ Ka7 19. Bb6+ Kb7 20. Bc5+ Kc7 21. d6+?! { (Mate in 1 → 27.08) Lost forced checkmate sequence. Qb6# was best. } (21. Qb6#) 21... Kc6?! { (27.08 → Mate in 2) Checkmate is now unavoidable. Kd8 was best. } (21... Kd8 22. dxe7+ Bxe7 23. Bxe7+ Ke8 24. Bb5 Na6 25. Bxa6 Rxa6 26. Bh4 f6 27. exf6 gxf6 28. Bxf6) 22. dxe7 d5 23. e8=Q+ Bd7 24. Bb5+ Kc7 25. Bd6+ Bxd6 26. exd6+ Kb7 27. Bxd7+ Ka6 28. Qb5+ Ka7 29. Qc5+ Kb7 30. Bc6+ Nxc6 31. Qcxc6+ Ka7 32. Qcxa8+ Kb6 33. Qab8+ Ka5 34. Qa7+ Kb4 35. Qb6+ Kc4 36. Rc1+ Kd3 37. Nc5+ Kd4 38. Qxh8 f5 39. a4 e5 40. a5 e4 41. d7 e3 42. f3 f4 43. a6 e2 44. Qxg7+ Ke3 45. Qbh6 d4 46. b3 d3 47. g3?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. Qe6# was best. } (47. Qe6#) 47... d2# { Black wins by checkmate. } 0-1

https://lichess.org/HSvE0hLa

[Event "Casual Rapid game"]
[Site "https://lichess.org/HSvE0hLa"]
[Date "2022.05.31"]
[White "BortElGrasitas"]
[Black "forsenRage"]
[Result "0-1"]
[UTCDate "2022.05.31"]
[UTCTime "21:32:43"]
[WhiteElo "1500"]
[BlackElo "1972"]
[Variant "Standard"]
[TimeControl "720+3"]
[ECO "A33"]
[Opening "English Opening: Symmetrical Variation, Anti-Benoni Variation, Spielmann Defense"]
[Termination "Normal"]
[Annotator "lichess.org"]
[FEN ""]

1. c4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 e6 { A33 English Opening: Symmetrical Variation, Anti-Benoni Variation, Spielmann Defense } 6. a3 Bc5 7. Nb3 Bb6 8. Na4 Bc7 9. g3 d5?! { (-0.58 → 0.06) Inaccuracy. Ne5 was best. } (9... Ne5 10. Qd4) 10. cxd5 Nxd5 11. Bg2 O-O 12. O-O b6 13. e4 Nde7 14. Qc2 Bb7 15. Rd1 Qc8 16. Be3 Be5?! { (0.45 → 1.27) Inaccuracy. Rd8 was best. } (16... Rd8 17. Nc3 Ba6 18. f4 Qb7 19. Bf2 Rac8 20. e5 Qb8 21. Be4 h6 22. Rac1 Rxd1+ 23. Rxd1) 17. f4 Bc7 18. Nc3 Rd8?! { (0.83 → 1.59) Inaccuracy. Qe8 was best. } (18... Qe8) 19. Nb5 Ba6 20. Rxd8+ Qxd8 21. Rd1 Qc8?! { (1.90 → 2.74) Inaccuracy. Qb8 was best. } (21... Qb8 22. Bf1 Bd8 23. Nd2 h6 24. b4 Bxb5 25. Bxb5 Qb7 26. Nc4 Bc7 27. Nd6 Bxd6 28. Rxd6) 22. a4?! { (2.74 → 1.79) Inaccuracy. Bf1 was best. } (22. Bf1) 22... Bxb5?! { (1.79 → 2.85) Inaccuracy. Bb7 was best. } (22... Bb7 23. Qd3 Rb8 24. Nd2 Ba8 25. Nc4 Qb7 26. Ncd6 Bxd6 27. Nxd6 Qd7 28. Nb5 Qc8 29. f5) 23. axb5 Na5? { (2.45 → 4.31) Mistake. Nb4 was best. } (23... Nb4 24. Qc3) 24. e5 Rb8 25. Nd4 Nd5?! { (4.12 → 6.43) Inaccuracy. Bd8 was best. } (25... Bd8 26. Nc6 Naxc6 27. bxc6 Bc7 28. b4 a6 29. Rd7 Ng6 30. h4 Nf8 31. Rd1 Qe8 32. Kh2) 26. Bxd5 exd5 27. b4 Nc4 28. Bf2 Bd8 29. Nc6 Rb7 30. Rxd5 f5 31. Rxd8+ Qxd8 32. Qxc4+ Kh8?! { (23.11 → Mate in 7) Checkmate is now unavoidable. Kf8 was best. } (32... Kf8 33. Nxd8) 33. Nxd8 Rd7 34. Nf7+ Kg8 35. Qc8+ Rd8 36. Qxd8+ Kxf7 37. Qd7+ Kf8 38. Qd6+ Kf7 39. e6+ Ke8 40. Qd7+ Kf8 41. e7+ Kf7 42. e8=Q+ Kf6 43. Qe5+ Kg6 44. Qee8+ Kf6 45. Qee7+ Kg6 46. Qde8+ Kh6 47. Q8f8 Kg6 48. Qff7+ Kh6 49. Qd6+ g6 50. Qde6 a6 51. bxa6 b5 52. Qfxf5 Kg7 53. Qfe5+ Kh6 54. f5 Kg5 55. f6+ Kh6 56. a7 g5 57. f7+ Kh5 58. f8=Q h6 59. Qc6 Kg4 60. Qd7+ Kh5 61. Qdf7+ Kg4 62. Qfe6+ Kh5 63. Q6d5 Kg6 64. Qeg7+ Kh5 65. a8=Q Kg4 66. Qgd7+ Kh5 67. Qab7 Kg6 68. Qbc6+ Kh5 69. Qdd8 Kg4 70. Qdc8+ Kh5 71. Q8c7 Kg4 72. Q6d7+ Kh5 73. Bd4 Kg6 74. Qd7c6+ Kh5 75. Qa5 Kg4 76. Qcd7+ Kh5 77. Kg2 Kg6 78. Qdg7+ Kh5 79. Qfh8 Kg4 80. Qgd7+ Kh5 81. Kh3 Kg6 82. Q7d6+ Kh5 83. Qg2?? { (Mate in 1 → Mate in 1) Lost forced checkmate sequence. g4# was best. } (83. g4#) 83... g4# { Black wins by checkmate. } 0-1

Technically this does not directly answer the question, but shows that trying to play for a loss has more depth than just playing the worst move suggested by a strong engine.

4
  • 6
    "There is a significant difference between making the worst move assuming best play and the worst move assuming worst play", indeed, you nail it. I can very easily play standard selfmate strategy (capture all except a pawn, guide the pawn to mate the own king) against Worstfish. Commented Nov 24, 2023 at 9:21
  • 1
    Kind of funny/unintuitive, if logical (on deeper thinking), that in order to try to lose, you first need to play well and win.
    – mbrig
    Commented Nov 24, 2023 at 18:25
  • 1
    @mbrig I think it's the difference between trying to force a particular outcome vs. simply allowing any outcome no matter how good or bad. Normally, we think of poor performance as the latter, and not the former, even if the desired endstate is the opposite of the usual expectation. Commented Nov 25, 2023 at 5:34
  • @LawnmowerMan indeed. An anecdote from machine learning in binary classification is similar. Worst performance isn't getting things wrong 100% of the time, because that means it's a perfect estimator (by flipping the prediction), instead, the worst performance is the one that does not do better than chance (usually 50% chance).
    – justhalf
    Commented Nov 25, 2023 at 6:57
4

Yes, and the easiest strategy is to take all their pieces except a pawn, then attack all the squares around their king so only the pawn can move, and arrange for that to be a checkmate.

Example:

[FEN ""]
[White "Human"]
[Black "WorstFish"]
1. e3 { A00 Van't Kruijs Opening } b5? { (0.09 → 1.78) Mistake. Nf6 was best. } (1... Nf6 2. Nf3 c5 3. d4 d5 4. Be2 Nc6 5. O-O cxd4 6. exd4) 2. h4?? { (1.78 → 0.03) Blunder. Bxb5 was best. } (2. Bxb5 c6 3. Ba4 e6 4. Nf3 d5 5. d4 Bd6 6. c4 Ba6) 2... g5?? { (0.03 → 4.01) Blunder. a6 was best. } (2... a6 3. d4 Bb7 4. a4 b4 5. Nf3 Nf6 6. Nbd2 e6 7. Bd3 c5 8. e4 Nc6 9. e5) 3. Rh3?? { (4.01 → 0.40) Blunder. hxg5 was best. } (3. hxg5 a6 4. Nf3 Bb7 5. d4 e6 6. a4 b4 7. Bd3 h6 8. e4 Bg7 9. gxh6 Nxh6) 3... f5?? { (0.40 → Mate in 1) Checkmate is now unavoidable. g4 was best. } (3... g4 4. Rh1) 4. e4?? { (Mate in 1 → 0.82) Lost forced checkmate sequence. Qh5# was best. } (4. Qh5#) 4... h6?? { (0.82 → Mate in 1) Checkmate is now unavoidable. g4 was best. } (4... g4) 5. e5?? { (Mate in 1 → 0.43) Lost forced checkmate sequence. Qh5# was best. } (5. Qh5#) 5... Bb7?? { (0.43 → Mate in 1) Checkmate is now unavoidable. g4 was best. } (5... g4 6. Rb3) 6. hxg5?? { (Mate in 1 → 6.35) Lost forced checkmate sequence. Qh5# was best. } (6. Qh5#) 6... b4?? { (6.35 → Mate in 1) Checkmate is now unavoidable. Bg7 was best. } (6... Bg7) 7. Qf3?? { (Mate in 1 → -6.24) Lost forced checkmate sequence. Qh5# was best. } (7. Qh5#) 7... b3?? { (-6.24 → Mate in 1) Checkmate is now unavoidable. Bxf3 was best. } (7... Bxf3 8. Nxf3 Nc6 9. d4 e6 10. gxh6 Bxh6 11. Nbd2 Kf8 12. Bd3 a5 13. Nc4 a4 14. Kf1) 8. Qf4?? { (Mate in 1 → 2.28) Lost forced checkmate sequence. Qh5# was best. } (8. Qh5#) 8... Kf7?? { (2.28 → 16.43) Blunder. e6 was best. } (8... e6 9. Qg3) 9. Rxh6?? { (16.43 → -2.12) Blunder. Qxf5+ was best. } (9. Qxf5+ Nf6) 9... Bf3?? { (-2.12 → Mate in 4) Checkmate is now unavoidable. Nxh6 was best. } (9... Nxh6) 10. Nxf3? { (Mate in 4 → 7.97) Lost forced checkmate sequence. Qxf5+ was best. } (10. Qxf5+ Nf6 11. e6+ Kg8 12. Qg6+ Bg7 13. Qf7#) 10... c5? { (7.97 → Mate in 4) Checkmate is now unavoidable. Nxh6 was best. } (10... Nxh6 11. gxh6) 11. Rxh8?! { (Mate in 4 → 24.31) Lost forced checkmate sequence. Qxf5+ was best. } (11. Qxf5+ Nf6 12. e6+ Kg8 13. Qg6+ Bg7 14. Qf7#) 11... Kg7?! { (24.31 → Mate in 4) Checkmate is now unavoidable. Nh6 was best. } (11... Nh6 12. gxh6) 12. Rxg8+?! { (Mate in 4 → 13.74) Lost forced checkmate sequence. Qxf5 was best. } (12. Qxf5 Kxh8 13. Bd3 Nf6 14. exf6 exf6 15. Qh7#) 12... Kf7 13. Rxf8+ Ke6?! { (19.62 → Mate in 2) Checkmate is now unavoidable. Qxf8 was best. } (13... Qxf8 14. Qxf5+ Ke8 15. Qxf8+ Kxf8 16. axb3 Nc6 17. Nc3 Rc8 18. Ne4 Rc7 19. Bc4 Nd8 20. Ra5) 14. Rxd8 Nc6 15. Rb8?! { (Mate in 2 → 27.46) Lost forced checkmate sequence. Bc4+ was best. } (15. Bc4+ d5 16. Bxd5#) 15... Kd5?! { (27.46 → Mate in 1) Checkmate is now unavoidable. Rxb8 was best. } (15... Rxb8 16. Qc4+) 16. Rxa8 d6 17. Rxa7 c4 18. Rxe7 Nb8 19. Re6 c3 20. Rxd6+ Kc5 21. dxc3 Na6 22. Ke2 Nb8 23. axb3 Na6 24. Raxa6 Kb5 25. Ra8 Kc5 26. Rdd8 Kb5 27. e6 Kc6 28. e7 Kb7 29. g6 Kb6 30. g7 Kb5 31. e8=R Kc5 32. g8=R Kb6 33. Re7 Kc6 34. Rh7 Kb5 35. Rd6 Kc5 36. Rdh6 Kd5 37. Rh2 Ke6 38. R7h3 Kf6 39. Rae8 Kf7 40. Kd3 Kf6 41. Ke3 Kf7 42. Nd4 Kf6 43. Bd3 Kf7 44. Bd2 Kf6 45. Na3 Kf7 46. Nab5 Kf6 47. Na3 Kf7 48. b4 Kf6 49. b5 Kf7 50. b6 Kf6 51. b7 Kf7 52. b8=R Kf6 53. b4 Kf7 54. b5 Kf6 55. b6 Kf7 56. b7 Kf6 57. Ra8 Kf7 58. b8=R Kf6 59. Nab5 Kf7 60. Ra1 Kf6 61. f3 Kf7 62. Rf1 Kf6 63. Rf2 Kf7 64. Ra8 Kf6 65. Ra1 Kf7 66. Re1 Kf6 67. Ree2 Kf7 68. Na7 Kf6 69. Nc8 Kf7 70. Rd8 Kf6 71. Rd6+ Kf7 72. Rdd8 Kf6 73. Na7 Kf7 74. Rb8 Kf6 75. Nc8 Kf7 76. Ra8 Kf6 77. Ra1 Kf7 78. Ra7+ Kf6 79. Ra8 Kf7 80. Na7 Ke7 81. Rad8 Kf6 82. Nc8 Kf7 83. Rd7+ Kf6 84. Qe5+ Kxe5 85. Rg6?? { (Mate in 2 → Mate in 1) Lost forced checkmate sequence. f4+ was best. } (85. f4+ Kf6 86. Rh6#) 85... f4# { Black wins by checkmate. } 0-1
3

It's certainly possible, in fact a good player will probably succeed consistently. See Wiki on chess handicaps. One of the handicaps (and the one linked to above) is to force the opponent to checkmate you. This is a much bigger handicap than against worstfish, because humans will know what the win condition is (and try to avoid it), while worstfish will always react in a predictable way. You could put your queen en prise, and worstfish will never take it.

The general gameplan is to take all their pieces until they are practically paralyzed, then set up a self-mate.

This parody paper also contains a game which worstfish loses (see Fig. 8). Its opponent, playing random moves at the time, inadvertently played a move for which the only legal reply is a checkmate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.