-
Notifications
You must be signed in to change notification settings - Fork 4.7k
[Stage 1] clarify requirements of the nonograms task #1751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
85f6345
to
850cd9f
Compare
Please, check the formatting and run Prettier |
- 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). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 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. |
There was a problem hiding this comment.
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.
- 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). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 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. |
Title of Pull Request
🤔 This is a ...
Description
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.
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
Checklist