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 bitBoard
print 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.

Max Deutsch is an obsessive learner, product builder, and guinea pig for Month to Master.

If you want to follow along with Max’s year-long accelerated learning project, make sure to follow this Medium account.