Yes, we do have an actual chess problem this year. In both subproblems we consider a standard chess game. The game is played:
At the beginning of a chess game there are at most 8 pieces of each type on the board. For example, there are 8 white pawns, 8 black pawns, 2 white rooks, and only 1 black queen. In the easy subproblem C1 we want you to produce any valid sequence of chess moves that will lead to a board that contains more than 8 pieces of any specific type.
At the beginning of a chess game there are 4 rooks on the chessboard: two white and two black ones. In the hard subproblem C2 we want you to produce any valid sequence of chess moves that will lead to a board that contains the largest possible total number of rooks.
There is no input.
Output a valid plain text (7-bit ASCII) file containing a sequence of alternating white’s and black’s halfmoves in PGN notation. Any sequence of moves will be accepted as long as the final configuration has the desired property. More technical details are given at the end of this problem statement.
1. a4 b5 2. axb5 Nc6 3. b6 Nf6 4. b7 Nd5 5. bxa8=N Ndb4 6. f3 g6
7. g4 Bh6 8. Bh3 Nd3+ 9. Kf1 O-O 10. Kg2
This is not a valid solution to any subproblem. It is just an arbitrary sequence of moves. The example has valid syntax that can be correctly parsed. Note that in turn 5 the white pawn got promoted to a knight instead of a queen.
Your submissions will be parsed with the chess.pgn.read_game
method of the python-chess library, version 0.8.1. Hence, we expect you to submit the record of a game in a valid PGN notation. The library should be pretty tolerant – it should be able to parse anything valid, including comments, headers, NAGs and games with multiple variations (i.e., branches of play). Still, we recommend that you just submit a plain ASCII log that is as simple as possible. The example above probably contains all the notation you’ll need to use.
In particular, if the notation of your game contains variations, we give you no guarantee about which branch we will choose to evaluate.