My blitz game vs Eric Rosen (with PGN + video)

I played a casual 5+0 blitz game on Lichess against IM Eric Rosen. Eric played with circle pieces in a self-imposed visual handicap, turning our game into a weirdly fun “guess the piece” challenge.

[Event "casual blitz game"]
[Site "https://lichess.org/x8TrgnQN"]
[Date "2022.11.13"]
[Round "-"]
[White "Patoooooooo"]
[Black "EricRosen"]
[Result "0-1"]
[GameId "x8TrgnQN"]
[UTCDate "2022.11.13"]
[UTCTime "22:27:55"]
[WhiteElo "1588"]
[BlackElo "2631"]
[BlackTitle "IM"]
[Variant "Standard"]
[TimeControl "300+0"]
[ECO "C44"]
[Opening "Scotch Game"]
[Termination "Normal"]
[Annotator "lichess.org"]

1. e4 e5 2. d4 exd4 3. Nf3 Nc6 { C44 Scotch Game } 4. Bd3?! { (0.13 → -0.79) Inaccuracy. Nxd4 was best. } (4. Nxd4 Nf6 5. Nxc6 bxc6 6. Bd3 d5 7. Nc3 Bb4 8. exd5 O-O) 4... Bc5 5. a3 a5 6. O-O d6 7. Re1 Bg4 8. Nbd2 Nge7 9. h3 h5?? { (-0.46 → 3.46) Blunder. Bh5 was best. } (9... Bh5) 10. Nb3?? { (3.46 → -0.22) Blunder. hxg4 was best. } (10. hxg4 hxg4 11. Nh2 Ne5 12. Nxg4 N7g6 13. Nf1 Qh4 14. Ngh2 a4 15. g3 Qh7 16. f4 Nxd3) 10... Ne5?? { (-0.22 → 4.17) Blunder. Bxf3 was best. } (10... Bxf3 11. Qxf3 Ne5 12. Qd1 N7g6 13. f4 Nxd3 14. Qxd3 Bb6 15. Nxd4 Qf6 16. c3 Nxf4 17. Qb5+) 11. Nbd2?? { (4.17 → -2.12) Blunder. hxg4 was best. } (11. hxg4 Nxd3 12. Qxd3 hxg4 13. Nfxd4 Nc6 14. Nf5 Ba7 15. Be3 g6 16. Qc3 Ne5 17. Ng3 Bxe3) 11... Qd7?? { (-2.12 → 2.83) Blunder. N7g6 was best. } (11... N7g6) 12. Be2?? { (2.83 → -0.56) Blunder. hxg4 was best. } (12. hxg4) 12... N7g6?? { (-0.56 → 1.88) Blunder. Be6 was best. } (12... Be6 13. Ng5 N7c6 14. Ndf3 Qe7 15. Nxe6 Qxe6 16. Nxe5 Nxe5 17. Kh1 a4 18. f4 Ng4 19. Bxg4) 13. Nh2?? { (1.88 → -3.38) Blunder. Nxe5 was best. } (13. Nxe5) 13... Bxh3?? { (-3.38 → 0.00) Blunder. d3 was best. } (13... d3 14. cxd3) 14. gxh3 Qxh3? { (-0.34 → 0.97) Mistake. Nf4 was best. } (14... Nf4 15. Nb3) 15. Ndf3?? { (0.97 → -1.49) Blunder. Bf1 was best. } (15. Bf1 Qe6) 15... d3?! { (-1.49 → -0.71) Inaccuracy. Nh4 was best. } (15... Nh4 16. Nxh4 Qxh4 17. Bb5+ c6 18. Bd3 Ng4 19. Nf3 Qxf2+ 20. Kh1 Qg3 21. Rf1 Qh3+ 22. Kg1) 16. Bf1?? { (-0.71 → -8.04) Blunder. cxd3 was best. } (16. cxd3 Qg3+) 16... Qg3+ 17. Kh1 Bxf2 18. Bh3 dxc2 19. Qe2 Bxe1 20. Qxe1 h4? { (-11.48 → -5.49) Mistake. Qxh3 was best. } (20... Qxh3 21. Qe2 Nxf3 22. Qxf3 Qxf3+ 23. Nxf3 O-O-O 24. Bg5 f6 25. Bd2 Ne5 26. Nd4 d5 27. Bc3) 21. Qe2?! { (-5.49 → -10.43) Inaccuracy. Qf1 was best. } (21. Qf1 Nf4 22. Bxf4 Qxf4 23. Rc1 Qxe4 24. Qg2 Kf8 25. Rxc2 c6 26. Re2 Qb1+ 27. Re1 Qg6) 21... Nf4 22. Qf1 Ned3 23. Bxf4 Nf2+ 24. Qxf2 Qxf2 25. Rf1 Qe2 26. Nd4 Qd1 27. Nb5 c6?! { (-9.73 → -6.71) Inaccuracy. Qd3 was best. } (27... Qd3 28. Nxc7+ Kd8 29. Nxa8 Qxh3 30. Bc1 f6 31. e5 dxe5 32. Rg1 Qd3 33. Ng4 Kd7 34. Nb6+) 28. Nc7+ Ke7 29. Bg5+ f6 30. Bf4 Rac8 31. Ne6 c1=Q?! { (-9.94 → -6.36) Inaccuracy. Qd3 was best. } (31... Qd3 32. Rf3 Qxe4 33. Bc1 Rcg8 34. Bf5 Qe5 35. Re3 Qd5+ 36. Rf3 h3 37. Nc7 Qd1+ 38. Rf1) 32. Kg1?! { (-6.36 → -14.07) Inaccuracy. Bxc1 was best. } (32. Bxc1 Qd3 33. Nf4 Qxe4+ 34. Nf3 g5 35. Re1 Qxe1+ 36. Nxe1 gxf4 37. Bxc8 Rxc8 38. Bxf4 Re8) 32... Qc5+ 33. Nxc5 Qxf1+?! { (-9.56 → -6.21) Inaccuracy. Qd4+ was best. } (33... Qd4+ 34. Kh1 dxc5 35. Nf3 Qd3 36. Bd2 b6 37. Kg1 Rcf8 38. a4 g5 39. Bg4 Qc2 40. e5) 34. Bxf1 dxc5 35. Bc4 b5 36. Be2 c4 37. Nf3 Rcd8 38. Bf1 b4 39. Nd2?! { (-6.83 → -10.59) Inaccuracy. axb4 was best. } (39. axb4 axb4 40. Bxc4 Rd1+ 41. Kh2 g5 42. Bd2 Rxd2+ 43. Nxd2 Kd6 44. Nb3 g4 45. Bf7 h3) 39... Rxd2 40. Bxd2 bxa3?! { (-10.09 → -6.50) Inaccuracy. c3 was best. } (40... c3 41. bxc3 bxa3 42. Bc4 Rb8 43. Be3 Rb1+ 44. Kg2 a2 45. Bc5+ Ke8 46. Bxa2 Rb2+ 47. Kh3) 41. bxa3 c3? { (-6.25 → -3.66) Mistake. Rd8 was best. } (41... Rd8 42. Bxa5 Rd1 43. Kf2 Rc1 44. Bb4+ Ke6 45. Bh3+ Ke5 46. Ke3 c3 47. Bc8 c5 48. Ba5) 42. Bxc3 Rb8 43. Bxa5 Rb1 44. Bb4+ Ke6 45. Kf2 h3?? { (-4.17 → -0.19) Blunder. Ke5 was best. } (45... Ke5 46. Bh3 Kd4 47. Bf8 Rb7 48. a4 c5 49. Kf3 Rb3+ 50. Kg2 Rg3+ 51. Kh2 c4 52. Be6) 46. Ke3?? { (-0.19 → -14.21) Blunder. Bxh3+ was best. } (46. Bxh3+ Ke5) 46... h2?! { (-14.21 → -7.64) Inaccuracy. Rxf1 was best. } (46... Rxf1 47. Kd4 h2 48. Kc5 h1=Q 49. e5 Qf3 50. exf6 Qd5+ 51. Kb6 g5 52. Be7 g4 53. Bf8) 47. Bg2 h1=Q 48. Bxh1 Rxh1 49. Kf3 Ra1 50. Kf4 g5+ 51. Kg4 Ke5?? { (-9.00 → -0.37) Blunder. Rf1 was best. } (51... Rf1 52. Bd2 Rd1 53. Be3 Rd3 54. Bc5 Rc3 55. Bf8 Re3 56. e5 Kxe5 57. Be7 Re4+ 58. Kf3) 52. Kh5?? { (-0.37 → -12.88) Blunder. Bc3+ was best. } (52. Bc3+ Kxe4 53. Bxa1 f5+ 54. Kh3 g4+ 55. Kg2 f4 56. a4 Kd5 57. Bc3 Kd6 58. Ba5 Kd7) 52... Rg1 53. Bd6+? { (-9.75 → Mate in 17) Checkmate is now unavoidable. a4 was best. } (53. a4 Rh1+ 54. Kg4 Rh4+ 55. Kg3 Rxe4 56. Bf8 Rxa4 57. Bg7 Ke4 58. Bxf6 c5 59. Kg4 Kd3+) 53... Kxd6 54. Kg6 Ke5 55. Kf7 g4 56. Ke7 g3 57. Kd7 g2 58. Kc7 Rd1 59. Kb6 g1=Q+ 60. Kxc6 Qd4 61. Kc7 Qxe4 62. Kc8 Rd4 63. Kc7 Qd3 64. Kb6 Qb3+ 65. Kc5 Qxa3+ 66. Kc6 Qc3+ 67. Kb5 Rb4+ 68. Ka5 Qa3# { Black wins by checkmate. } 0-1

The funniest part: ONLY Eric’s pieces were showing up as plain circles, so he was basically playing blind. And he still beat me.

This post is half game recap, half build log: it is the perfect excuse to extract the PGN viewer I already use on patrickmicka.com and port it into pmicka.com so chess posts can be interactive.

I ran this like a tight micro project: I set priorities, translated UI weirdness into specific bugs, and used an automated coding tool to implement and iterate. The biggest rabbit hole was a mobile-only check/mate indicator drift, but the final fix was simple and I'm pleased to report I haven't forgotten so much CSS that I wasn't able to dig in and fix it myself.

The real learning was the workflow itself, more like “prompt-driven development” than “vibe coding”: describe the behavior you want, inspect what actually happens, then refine the spec until the code change is obvious. It’s fast when you keep changes small and measurable, and it gets expensive the moment you let debugging turn into an exercise in open-ended exploration and over-engineering.

cd ~