Skip to content

Conversation

asfound
Copy link

@asfound asfound commented Feb 7, 2025

Title of Pull Request

🤔 This is a ...

  • 🌟 New task
  • 🌐 New module
  • ⚙️ Update to an existing task
  • 🔧 Update to an existing module
  • 🔗 Update or addition of external resources or links
  • 🐛 Fix in a task or related content
  • 🛠 Fix in a module or related content
  • ✏️ Fixed a typo or grammatical error
  • 🔗 Fixed a broken link
  • ❓ Other (specify: ****____****)

Description

  • Brief Overview:
    Clarified the requirements for the task based on discussions of students in the Discord channel. Required functionality and game states were specified. Technical requirements were also clarified.
  • Implementation Approach:
    Refined the specific behaviour expected from various game features. This includes ensuring accurate stopwatch functionality, save/reset/continue buttons functionality, time format, sound requirements and providing clearer instructions for the user interface. Additionally, some typos were corrected to improve clarity, and obvious game rules were explicitly defined to ensure better understanding.

Additional Information

  • Screenshots/Links:
  • Related Issues:

Checklist

  • ✅ I have performed a self-review of my own code.
  • 📝 I have commented my code, particularly in hard-to-understand areas.
  • 🔧 I have made corresponding changes to the documentation (if applicable).
  • 🚫 My changes generate no new warnings or errors.

@asfound asfound changed the title fix: clarify functional requirements of the nonograms task fix: clarify requirements of the nonograms task Feb 7, 2025
@asfound asfound changed the title fix: clarify requirements of the nonograms task docs: clarify requirements of the nonograms task Feb 7, 2025
@stardustmeg
Copy link
Collaborator

Please, check the formatting and run Prettier

@stardustmeg stardustmeg changed the title docs: clarify requirements of the nonograms task [Stage 1] clarify requirements of the nonograms task Feb 8, 2025
@WiiJoy WiiJoy requested a review from stardustmeg October 10, 2025 04:49
- for the game field: every 5 cells in rows and columns should be divided by a divider (bold line). For clues: every 5 cells in **rows** should be divided by a divider (for left clues); every 5 cells in **columns** should be divided by a divider (for top clues). Clues should be divided from game field by bold line.
- a player is able to fill in a cell in the grid, using left mouse-click. On a click event, trigger the functionality of changing the color of the grid to dark (black). When player clicks on dark cell - it will change to empty (white).
- end game when players fill all **black** cells correctly according to the clues. On a successful game solution, display "Great! You have solved the nonogram!" (in case you missed stop-watch implementation)
- game ends when player fills all the **black** (dark) cells correctly according to the clues and board can no longer be interacted with. Upon a successful solution solution, display "Great! You have solved the nonogram!" (in case the stop-watch implementation was skipped).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- game ends when player fills all the **black** (dark) cells correctly according to the clues and board can no longer be interacted with. Upon a successful solution solution, display "Great! You have solved the nonogram!" (in case the stop-watch implementation was skipped).
- game ends when player fills all the **black** (dark) cells correctly according to the clues and board can no longer be interacted with. Upon a successful solution, display "Great! You have solved the nonogram!" (in case the stop-watch implementation was skipped).

- the game should include sound effects for events such as mark a cell as black, flagging a cell as X, flagging a cell as empty and win game.
- the staging of the game is saved (for example, using localStorage) by clicking on button "Save game", so that when player clicks on button "continue last game", he can continue playing from where he left off.
- the game can be reset (restarted) without reloading the page (for example, by clicking on button `Reset game`). After clicking the button, the level of the game and template (picture) should remain unchanged - only the filled cells will be reset. Either implementation, resetting or not resetting the timer, is correct. The player can change the game template or game level (for example, you could implement menu with options) without reloading the page at any time.
- display the game duration in XX:XX format (minutes:seconds). The stop-watch starts after first click on the field (not on the clues) and stops when the game ends. After winning, if the duration was less than one minute, display 'Great! You have solved the nonogram in ## seconds!'; if it's one minute or more, display 'Great! You have solved the nonogram in ## minutes and ## seconds!'. If right-click (crossing-cell) is implemented, it should also start the stopwatch.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd leave it as it is.

Suggested change
- display the game duration in XX:XX format (minutes:seconds). The stop-watch starts after first click on the field (not on the clues) and stops when the game ends. After winning, if the duration was less than one minute, display 'Great! You have solved the nonogram in ## seconds!'; if it's one minute or more, display 'Great! You have solved the nonogram in ## minutes and ## seconds!'. If right-click (crossing-cell) is implemented, it should also start the stopwatch.
- display the game duration in XX:XX format (minutes:seconds). The stop-watch starts after first click on the field (not on the clues) and stops when the game ends. After winning, display 'Great! You have solved the nonogram in ## seconds!'. If right-click (crossing-cell) is implemented, it should also start the stopwatch.

- implement button "random game". When player clicks on button - the random template appears (both template and level must be chosen randomly by algorithm).
- implement "Solution" button near the field. When player clicks the button - the field will be filled in cells with right solution. Usage of the button doesn't mean winning and will not be recorded into winning table.
- the latest 5 win results are saved in the high score table. The table is sorted by time of the game using XX:XX format (for example, using LocalStorage). Every line should include: solved puzzle (either naming, or picture, or both); difficulty; stop-watch result.
- implement а "Random game" button. When the player clicks the button, a random template that is not equal to the current one appears (both template and level must be chosen randomly by algorithm).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- implement а "Random game" button. When the player clicks the button, a random template that is not equal to the current one appears (both template and level must be chosen randomly by algorithm).
- implement а "Random game" button. When the player clicks the button, a random template that is different from the current one appears (both template and level must be chosen randomly by algorithm).

- the game can be reset (restarted) without reloading the page (for example, by clicking on button `Reset game`). After clicking the button, the level of the game and template (picture) should remain unchanged - only the filled cells will be reset. Either implementation, resetting or not resetting the timer, is correct. The player can change the game template or game level (for example, you could implement menu with options) without reloading the page at any time.
- display the game duration in XX:XX format (minutes:seconds). The stop-watch starts after first click on the field (not on the clues) and stops when the game ends. After winning, if the duration was less than one minute, display 'Great! You have solved the nonogram in ## seconds!'; if it's one minute or more, display 'Great! You have solved the nonogram in ## minutes and ## seconds!'. If right-click (crossing-cell) is implemented, it should also start the stopwatch.
- the game should include different sound effects for each event: marking the cell dark, flagging the cell with an X, flagging the cell as empty, and winning the game. There should also be the possibility to turn off all the sound effects simultaneously.
- the staging of the current game is saved (for example, using localStorage) by clicking on button "Save game". This saves only one game, overwriting any previously saved game. When the player clicks 'Continue Last Game,' they can resume playing from where they left off. Crossed-cells (if implemented) are considered part of game staging.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- the staging of the current game is saved (for example, using localStorage) by clicking on button "Save game". This saves only one game, overwriting any previously saved game. When the player clicks 'Continue Last Game,' they can resume playing from where they left off. Crossed-cells (if implemented) are considered part of game staging.
- the staging of the current game is saved (for example, using localStorage) by clicking on button "Save game". This saves only one game, overwriting any previously saved game. When the player clicks 'Continue Last Game,' they can resume playing from where they left off. Crossed-cells and a timer (if implemented) are considered part of game staging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants