<commit_before>Feature: Playing Dots and Boxes
  * game begins with empty grid of dots
  * players take turns at adding a horizontal or vertical line
    between two un-joined adjacent dots.
  * a player who completes the fourth side of a 1x1 box earns a point,
    writes their initials in the box and gets another turn.
  * game is over when there are no more lines that can be placed
  * winner is the player with most boxes
  * the board can be of any size 2x2, 5x5 works well for experts
  * a grid of 1x2 would look like:
    +---+---+
    |   |   |
    +---+---+

  * a 2x2 grid would look like:
    +---+---+
    |   |   |
    +---+---+
    |   |   |
    +---+---+

  Scenario: Player joins two dots on the grid
  Given a grid of size 1x2:
    |box|   d1  |  d2   |present|
    | 1 | {0,0} | {0,1} | false |
    | 1 | {0,1} | {1,1} | false |
    | 1 | {1,1} | {1,0} | false |
    | 1 | {1,0} | {0,0} | false |
    | 2 | {1,0} | {1,1} | false |
    | 2 | {1,1} | {2,1} | false |
    | 2 | {2,1} | {2,0} | false |
    | 2 | {2,0} | {1,0} | false |

  When a player "foo" joins dots {1,1} and {1,0}
  Then the grid looks like:
    |box|   d1  |  d2   |present|
    | 1 | {0,0} | {0,1} | false |
    | 1 | {0,1} | {1,1} | false |
    | 1 | {1,1} | {1,0} | true  |
    | 1 | {1,0} | {0,0} | false |
    | 2 | {1,0} | {1,1} | true  |
    | 2 | {1,1} | {2,1} | false |
    | 2 | {2,1} | {2,0} | false |
    | 2 | {2,0} | {1,0} | false |
<commit_msg>improved feature narration<commit_after>Feature: Playing Dots and Boxes
  * game begins with empty grid of dots
  * players take turns at adding a horizontal or vertical line
    between two un-joined adjacent dots.
  * a player who completes the fourth side of a 1x1 box earns a point,
    writes their initials in the box and gets another turn.
  * game is over when there are no more lines that can be placed
  * winner is the player with most boxes
  * the board can be of any size 2x2, 5x5 works well for experts
  * a grid of 1x2 would look like:

 {1,0} {1,1} {1,2}
     +---+---+
     |   |   |
     +---+---+
 {0,0} {0,1} {0,2}


  * a 2x2 grid would look like:

  {2,0} {2,1} {2,2}
      +---+---+
      |   |   |
 {1,0}+---+---+{1,2}
      |   |   |
      +---+---+
  {0,0} {0,1} {0,2}


  Scenario: Player joins two dots on the grid
  Given a grid of size 1x2:
    |box|   d1  |  d2   |present|
    | 1 | {0,0} | {0,1} | false |
    | 1 | {0,1} | {1,1} | false |
    | 1 | {1,1} | {1,0} | false |
    | 1 | {1,0} | {0,0} | false |
    | 2 | {1,0} | {1,1} | false |
    | 2 | {1,1} | {2,1} | false |
    | 2 | {2,1} | {2,0} | false |
    | 2 | {2,0} | {1,0} | false |

  When a player "foo" joins dots {1,1} and {1,0}
  Then the grid looks like:
    |box|   d1  |  d2   |present|
    | 1 | {0,0} | {0,1} | false |
    | 1 | {0,1} | {1,1} | false |
    | 1 | {1,1} | {1,0} | true  |
    | 1 | {1,0} | {0,0} | false |
    | 2 | {1,0} | {1,1} | true  |
    | 2 | {1,1} | {2,1} | false |
    | 2 | {2,1} | {2,0} | false |
    | 2 | {2,0} | {1,0} | false |

{'fraction_non_alphanumeric': 0.1931629605044806, 'fraction_numerical': 0.07567208762031198, 'mean_word_length': 1.9233753637245392, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2622322', 'n_tokens_mistral': 1362, 'n_tokens_neox': 1292, 'n_words': 409}