M2M Day 352: Challenging chess hustlers in NYC’s Bryant Park
This post is part of Month to Master, a 12-month accelerated learning project. For October, my goal is to defeat world champion Magnus Carlsen at a game of chess.
Today, I went into Manhattan, and, while I was there, I stopped by Bryant Park to play a few games against the chess hustlers.
I wanted to test out my chess skills in the wild, especially since I need more practice playing over an actual chess board.
Apparently, according to chess forums, etc., many players who practice exclusively online (on a digital board) struggle to play as effectively in the real-world (on a physical board). This mostly has to do with how the boards are visualized:
A digital board looks like this…
While a physical board looks like this…
I’m definitely getting used to the digital board, so today’s games in the park were a nice change.
I played three games against three different opponents, with 5 minutes on the clock for each. In all three cases, I was beaten handily. These guys were good.
After the games, now with extra motivation to improve my chess skills, I found a cafe and spent a few minutes working more on my chess algorithm.
In particular, I quickly wrote up the functions needed to convert the PGN chessboard representations into the desired bitboard representation.
def convertLetterToNumber(letter):
if letter == 'K':
return '100000000000'
if letter == 'Q':
return '010000000000'
if letter == 'R':
return '001000000000'
if letter == 'B':
return '000100000000'
if letter == 'N':
return '000010000000'
if letter == 'P':
return '000001000000'
if letter == 'k':
return '000000100000'
if letter == 'q':
return '000000010000'
if letter == 'r':
return '000000001000'
if letter == 'b':
return '000000000100'
if letter == 'n':
return '000000000010'
if letter == 'p':
return '000000000001'
if letter == '1':
return '000000000000'
if letter == '2':
return '000000000000000000000000'
if letter == '3':
return '000000000000000000000000000000000000'
if letter == '4':
return '000000000000000000000000000000000000000000000000'
if letter == '5':
return '000000000000000000000000000000000000000000000000000000000000'
if letter == '6':
return '000000000000000000000000000000000000000000000000000000000000000000000000'
if letter == '7':
return '000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
if letter == '8':
return '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
if letter == '/':
return ''def convertToBB(board):
bitBoard = ''
board = str(board.fen()).split(' ')[0]
for letter in board:
bitBoard = bitBoard + convertLetterToNumber(letter)
return bitBoardprint convertToBB(board)
While I’m making some progress on the algorithm, since I’ve been in New York, I haven’t made quite as much progress as I hoped, only spending a few minutes here and there on it.
Let’s see if I can set aside a reasonable chunk of time tomorrow to make some substantial progress…
Read the next post. Read the previous post.