Capture the agreed 34 requirements in REQUIREMENTS.md. Implementation details are omitted.
37 lines
2.7 KiB
Markdown
37 lines
2.7 KiB
Markdown
# Requirements
|
|
|
|
1. Players play curling in a mobile browser from a 2D overhead view.
|
|
2. The sheet is shown in portrait.
|
|
3. A room has two teams and an unlimited number of clients.
|
|
4. Each client picks Team 1 or Team 2 on that device.
|
|
5. Anyone on the team whose turn it is may throw.
|
|
6. Players join a room from a shareable link.
|
|
7. If the link has no room, the client creates one and writes that room into the URL.
|
|
8. A match has 10 ends. Each team has 8 stones per end.
|
|
9. Extra ends are played while the score is tied after 10 ends.
|
|
10. Hammer is random at the start. The team without hammer throws first in the end.
|
|
11. The team that scores gives hammer away. A blank end keeps hammer.
|
|
12. After a throw, that team has one fewer stone and the other team throws.
|
|
13. When all throws have completed, the end is scored.
|
|
14. Only stones touching the house can score.
|
|
15. The team closest to the tee scores one point for each of its stones nearer than the opponent's nearest stone.
|
|
16. If no stone can score, the end is 0-0.
|
|
17. Every client sees the current end, both scores, hammer, whose turn it is, stones remaining, stone positions, trajectories from all shots, and whether the match is over.
|
|
18. When the match ends, both scores are shown with a winner, or with no winner if tied.
|
|
19. A thrown stone starts at the hack and travels toward the broom. The player chooses initial speed and curl.
|
|
20. Clockwise curl moves the stone to the thrower's right.
|
|
21. Stones bounce off other stones. Stones do not bounce back from a sideline or the backline.
|
|
22. A stone is out if it touches a sideline. A stone must fully cross the backline to be out. A stone is out if it never fully crosses the hog line.
|
|
23. The ice is a curling sheet with a house, hog line, sidelines, and a backline on the 12-foot ring.
|
|
24. The default view frames the house, sidelines, and backline above the controls.
|
|
25. The player can pan up and down the sheet to the hog line.
|
|
26. On turn, the player drags to place the broom anywhere on the sheet, then throws.
|
|
27. The player sets throw weight on a 1 to 10 scale, including named weights hack, board, control, normal, and peel.
|
|
28. The player sets curl clockwise or counterclockwise. Clockwise is the default.
|
|
29. Throw controls work only on that team's turn and only while stones are not moving.
|
|
30. The HUD shows eight remaining-stone markers per team, a hammer marker, and a scoreboard with each end and a total.
|
|
31. After the stones stop and the end is scored, an end-result overlay appears. The player dismisses it.
|
|
32. All clients see the same stone motion. A stone that leaves play is hidden when it leaves the sheet.
|
|
33. Errors and the final result appear on the page as copyable text, not as a blocking alert.
|
|
34. Pinch-zoom is off. The client remembers the last team choice.
|