<commit_before>We use this page to keep track of what we're doing next, what comes after that, and to record when we get things done.

1. We are working on things under **In Progress**. When we finish them, we move them to the very bottom of the page under the **DONE** heading and prefix them with a date and a comma.
2. Then, we move 3 or 4 items from the **Prioritized** section into **In Progress**
3. Around that time, we pick a few replacements from the **Identified** section that we think can and should be 
next priorities.
4. We may, if we see fit, pull items from the **BLUESKY** and break them down into some **Identified** tasks.

The **BLUESKY** section is for speculative ideas and awesome ideas. It doesn't mean we're going to specifically do that.


# In Progress

* [Show required winning streak length in an active game](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/7)

# BACKLOG

# Prioritized

* Send chat messages on enter
* Expire open game invite after 60 seconds.
* Invite another player to play a game privately, without the game showing up in "Open Games" where other people can 
hijack the game before your opponent can join.
* Prevent a streak-length from being larger than the board size. This relates to issue 4, [Create game form validation](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/4)
* BUG: [clicking too fast ends up sending too many scores](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/8) (Rohan from HBM)

## Exercises for CoderDojo Week 1

* Create exercise for showing who is the current player in a game
* Create exercise for keeping track of personal head-to-head results scoreboard
* Create exercise for displaying head-to-head reuslts on a global scoreboard as results become available
* Create exercise for adding sound when a move is made (different for X and O)
  * Create exercise for allowing specifying a custom sound for each player
* Create exercise for playing a cheer when a player wins on their screen and a boo or aww shucks on the losing 
player's screen
* Create exercise for animating the drawing of a player's move
  * Pop in, fade in, swipe in, etc (Angular animations)  
* Create exercise for allowing avatar image selection for player (small icon) and game move icon (should they be diff? What about a gallery of avatars and a common border color or superimposed transparent X or O?)

# Identified

* Allow forfeit of an Active Game
* Create exercise for adding global chatroom
* Create exercise for adding game-specific chatroom
* Create exercise for adding private messaging
* Create exercise for adding invitation-based game (game doesn't start until the other player accepts)
* Create ability to login with Facebook
* Create ability to like on Facebook
* Add more social button support (AddThis.com?)

# BLUESKY

* How about a game where there are more tiles, but you have to get at least 2-3-in-a-row, or 3, or 4?
  * What if you could give up a turn in exchange for removing the opponent's move?
  * What if you could get extra points for have more than 3 in a row, regardless of if you made it to 6 or more?
* What about a game where you had time limits for moves and got more points for moving quickly?
* What about a game where you get points specifically for blocking paths of the opponent?
* How about a game where there can be more than 2 players?
  * Like, 2 players is (2+1)^2, so maybe with 3 players the smallest size is (3+1)^2=16
  * And, with 4 players, it's 25
  * with 5, it's 36 squares
  * But, it's still a game of 3 in a row, but much harder!
* And, what about team games, where it's still multiple players, but it's played with alternating turns
  * For example, instead of just 3 in a row, it's 4 in a row, but 2 players per team
  * This would make for some funny situations<commit_msg>Update BACKLOG.md<commit_after>We use this page to keep track of what we're doing next, what comes after that, and to record when we get things done.

1. We are working on things under **In Progress**. When we finish them, we move them to the very bottom of the page under the **DONE** heading and prefix them with a date and a comma.
2. Then, we move 3 or 4 items from the **Prioritized** section into **In Progress**
3. Around that time, we pick a few replacements from the **Identified** section that we think can and should be 
next priorities.
4. We may, if we see fit, pull items from the **BLUESKY** and break them down into some **Identified** tasks.

The **BLUESKY** section is for speculative ideas and awesome ideas. It doesn't mean we're going to specifically do that.


# In Progress

* [Show required winning streak length in an active game](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/7)

# BACKLOG

# Prioritized

* Send chat messages on enter
* Expire open game invite after 60 seconds.
* Invite another player to play a game privately, without the game showing up in "Open Games" where other people can 
hijack the game before your opponent can join.
* Prevent a streak-length from being larger than the board size. This relates to issue 4, [Create game form validation](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/4)
  * Related: truly, honestly, require a Game Name. Without a game name, there is no challenge channel and it "blows up" 
* BUG: [clicking too fast ends up sending too many scores](https://github.com/JogoShugh/CoderDojoPonceSprings.TicTacToe/issues/8) (Rohan from HBM)

## Exercises for CoderDojo Week 1

* Create exercise for showing who is the current player in a game
* Create exercise for keeping track of personal head-to-head results scoreboard
* Create exercise for displaying head-to-head reuslts on a global scoreboard as results become available
* Create exercise for adding sound when a move is made (different for X and O)
  * Create exercise for allowing specifying a custom sound for each player
* Create exercise for playing a cheer when a player wins on their screen and a boo or aww shucks on the losing 
player's screen
* Create exercise for animating the drawing of a player's move
  * Pop in, fade in, swipe in, etc (Angular animations)  
* Create exercise for allowing avatar image selection for player (small icon) and game move icon (should they be diff? What about a gallery of avatars and a common border color or superimposed transparent X or O?)

# Identified

* Login or Register: Default focus to the username field
* Allow forfeit of an Active Game
* When a game is created with the same name as a previous game, figure out a way for this not to conflict -- perhaps generate a UUID for the channel name, instead of using the game name
* Create exercise for adding global chatroom
* Create exercise for adding game-specific chatroom
* Create exercise for adding private messaging
* Create exercise for adding invitation-based game (game doesn't start until the other player accepts)
* Create ability to login with Facebook
* Create ability to like on Facebook
* Add more social button support (AddThis.com?)

# BLUESKY

* How about a game where there are more tiles, but you have to get at least 2-3-in-a-row, or 3, or 4?
  * What if you could give up a turn in exchange for removing the opponent's move?
  * What if you could get extra points for have more than 3 in a row, regardless of if you made it to 6 or more?
* What about a game where you had time limits for moves and got more points for moving quickly?
* What about a game where you get points specifically for blocking paths of the opponent?
* How about a game where there can be more than 2 players?
  * Like, 2 players is (2+1)^2, so maybe with 3 players the smallest size is (3+1)^2=16
  * And, with 4 players, it's 25
  * with 5, it's 36 squares
  * But, it's still a game of 3 in a row, but much harder!
* And, what about team games, where it's still multiple players, but it's played with alternating turns
  * For example, instead of just 3 in a row, it's 4 in a row, but 2 players per team
  * This would make for some funny situations
{'fraction_non_alphanumeric': 0.056781552194396234, 'fraction_numerical': 0.009918175055789735, 'mean_word_length': 4.164532650448144, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2922769', 'n_tokens_mistral': 2248, 'n_tokens_neox': 2118, 'n_words': 1289}