Skip to content

Commit

Permalink
docs: game intro
Browse files Browse the repository at this point in the history
  • Loading branch information
thangved committed Dec 12, 2023
0 parents commit 9e9ec44
Show file tree
Hide file tree
Showing 16 changed files with 1,085 additions and 0 deletions.
160 changes: 160 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Procon 2023 Docs
Binary file added docs/assets/logo-ctu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Procon 2023

![Demo](./demo.png)
5 changes: 5 additions & 0 deletions docs/intro/0-index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Giới thiệu Procon 2023

Procon 2023 với chủ đề tranh giành lãnh thổ

![Demo](./demo.png)
34 changes: 34 additions & 0 deletions docs/intro/1-how-to-play.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Lĩnh vực thi đấu

## Sân thi đấu

Sân thi đấu bao gồm một khu vực hình chữ nhật được chia theo chiều ngang và chiều dọc thành các khu vực nhỏ.
Bản thân toàn bộ sân thi đấu có dạng hình chữ nhật.
Sân thi đấu được chia thành **<u>tối đa 25 và tối thiểu 11 khu vực theo chiều ngang và theo chiều dọc</u>**, tương ứng.
Số lượng chia theo chiều ngang và chia theo chiều dọc có thể khác nhau. Số khu vực được chia trên sân sẽ khác nhau theo từng trận đấu.

## Thợ thủ công

**_Thợ thủ công_** của mỗi đội được bố trí sẵn trên sân thi đấu.
Số lượng Thợ thủ công khác nhau tùy theo lĩnh vực thi đấu.
**<u>Số lượng Thợ thủ công tối đa trên mỗi bảng là 5 và tối thiểu là 2</u>**.

## Khu vực và lãnh thổ

Ở một số khu vực bị chia cắt, Lâu đài và Ao được đặt trước.
**<u>Nếu một đội chiếm được khu vực có Lâu đài làLãnh thổ , nó có thể đạt điểm cao</u>** hơn các khu vực khác.
**<u>Thợ thủ công không bao giờ có thể di chuyển đến khu vực có Ao</u>**.
Vùng đất không có những thứ này được gọi là _**Đồng bằng**_.

**<u>Không có sự đối xứng</u>** ở các vị trí ban đầu của Ao, Lâu đài và Thợ thủ công.

Các lĩnh vực cạnh tranh sẽ được **<u>tiết lộ trước</u>**.
Chúng tôi đang lên kế hoạch tiết lộ chúng vào giữa tháng Bảy.
Một số sẽ được tiết lộ sớm hơn.
Một trong những trường được tiết lộ sẽ được sử dụng tại trận đấu vào ngày diễn ra cuộc thi.

Một thuộc tính được thêm vào mỗi khu vực được phân chia tùy thuộc vào diễn biến trò chơi: **Trung lập, Lãnh thổ****Tường**.
Ngoài ra còn có các thuộc tính nhóm cho Lãnh thổ và Tường, vì vậy có sáu loại khác nhau[^1] trong số này.
Tất cả các khu vực được phân chia là Trung lập ở cài đặt ban đầu.

[^1]: Nó ngụ ý rằng, có ba loại thuộc tính cho lãnh thổ: Lãnh thổ của chính mình, lãnh thổ của đối thủ, lãnh thổ của cả hai (sẽ được đề cập sau).
51 changes: 51 additions & 0 deletions docs/intro/2-craftsmen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Thợ thủ công

Mỗi thợ thủ công có thể thực hiện các chuyển động sau mỗi lượt:

## Ở lại (STAY)

Thợ thủ công giữ nguyên vị trí. Không có hành động nào được thực hiện.

## Di chuyển (MOVE)

Thợ thủ công di chuyển theo một trong tám hướng xung quanh vị trí hiện tại

- [x] Lên (UP)
- [x] Xuống (DOWN)
- [x] Trái (LEFT)
- [x] Phải (RIGHT)
- [x] Phía trên bên trái (UPPER_LEFT)
- [x] Phía trên bên phải (UPPER_RIGHT)
- [x] Phía dưới bên trái (LOWER_LEFT)
- [x] Phía dưới bên phải (LOWER_RIGHT)

Tuy nhiên, **<u>họ không được phép di chuyển đến nơi Bức tường của đội khác được định vị cũng như Ao</u>**.
Ngoài ra, chỉ một Thợ thủ công được phép trên một khu vực được chia.
Bất kỳ Thợ thủ công nào cũng không thể di chuyển đến khu vực có bất kỳ Thợ thủ công nào ở một lượt trước lượt hiện tại.
Nếu hai Thợ thủ công bất kỳ thông báo di chuyển đến cùng một khu vực, bất kỳ ai trong số họ không thể di chuyển đến đó.
Nếu bất kỳ Thợ thủ công nào thông báo di chuyển đến khu vực mà họ không được phép di chuyển, thì hành động được phép đối với Thợ thủ công đó chỉ là “Ở lại”.

## Xây dựng (BUILD)

Tường có thể được xây dựng ở bất kỳ khu vực nào trong **<u>bốn khu vực liền kề</u>**.

- [x] Trên (ABOVE)
- [x] Dưới (BELOW)
- [x] Trái (LEFT)
- [x] Phải (RIGHT)

**<u>Bất kỳ bức tường không thể được xây dựng trên khu vực có bất kỳ Lâu đài, Tường của đối thủ hoặc Thợ thủ công nào</u>**.
Nếu bất kỳ Thợ thủ công nào thông báo xây Tường trên một khu vực như vậy, thì hành động được phép đối với Thợ thủ công đó chỉ là "Ở lại".

## Phá hủy (DESTROY)

Bạn có thể loại bỏ **<u>Tường của mình hoặc Tường của đối thủ</u>** khỏi bất kỳ khu vực nào trong **<u>bốn khu vực lân cận</u>**.

- [x] Trên (ABOVE)
- [x] Dưới (BELOW)
- [x] Trái (LEFT)
- [x] Phải (RIGHT)

Khi một Bức tường bị phá hủy, khu vực đó trở thành Trung lập hoặc Lãnh thổ.
Điều kiện chuyển sang Neutral hoặc Territory sẽ được giải thích sau.
Nếu bất kỳ Thợ thủ công nào tuyên bố phá hủy một khu vực không có Tường nào được xây dựng, thì hành động được phép đối với Thợ thủ công đó chỉ là "Ở lại".
1 change: 1 addition & 0 deletions docs/intro/3-wall-teritories.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Tường, bao vây và lãnh thổ
1 change: 1 addition & 0 deletions docs/intro/4-scores.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Điểm
56 changes: 56 additions & 0 deletions docs/intro/5-game-progress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Tiến trình của trò chơi

**<u>Hai đội lần lượt</u>** thực hiện trò chơi. Một lượt tương ứng với hành động của mỗi đội.

| Turn | 1 | 2 | 3 | 4 | End |
| :---------: | :-------------: | :-------------------: | :--------------------: | :-------------------: | :--------------------: |
| First team | `POST[2]` | `POST[4]` | `POST[4]` | | |
| Status | `Initial state` | 1 (First team's turn) | 2 (Second team's turn) | 3 (First team's turn) | 3 (Second team's turn) |
| Second team | `POST[3]` | `POST[3]` | `POST[End]` | `POST[End]` | |

```mermaid
sequenceDiagram
autonumber
Client ->>+ Server: [GET] game information
Server ->>+ Database: Find game in the database
Database -->>- Server: Find game result
alt game is not existing
Server -->> Client: [GET] game information is failed
else game is existing
Server -->>- Client: Game information
loop
Client ->>+ Server: [POST] action
Server -->> Server: Validation action
alt action is invalid
Server -->> Client: [POST] action is not successfully
else action is valid
Server ->>+ Database: Store action to the database
Database -->>- Server: Stored action
Server -->>- Client: [POST] action successfully
end
end
end
```

Một trận đấu bao gồm **<u>hai trò chơi trong đó mỗi đội thực hiện lượt đi đầu tiên</u>**.
Cùng một sân thi đấu được sử dụng cho hai ván đấu trong trận đấu.
Sân sẽ được sử dụng trong trận đấu đó sẽ được công bố vào ngày thi đấu trước khi trận đấu bắt đầu.

Mỗi đội phải xác định **<u>hành động của tất cả Thợ thủ công</u>** và đưa họ vào hệ thống thi đấu trước khi lượt tiếp theo của đội bắt đầu.
Nếu hệ thống không nhận được các hành động phù hợp, tất cả Thợ thủ công của đội không thể thực hiện bất kỳ hành động nào và phải ở lại khu vực hiện tại.

Thời lượng của một lượt được lên kế hoạch từ `3` đến `15` giây.
Thời lượng có thể thay đổi tùy theo trận đấu, nhưng sẽ giữ nguyên trong một trận đấu.

Mỗi đội có thể tự do lấy thông tin sân thi đấu từ hệ thống thi đấu trong suốt trận đấu.

Sau mỗi lượt, trạng thái nhanh chóng được chuyển sang đội khác.
Có thể xảy ra trễ thời gian khi chuyển trạng thái, vì vậy Thông tin lượt sẽ được thêm vào thông tin sân thi đấu để người chơi có thể xác định xem trạng thái đã được chuyển hay chưa.

Thông tin về lĩnh vực thi đấu bao gồm tất cả các hành động của Thợ thủ công được thực hiện ở mỗi lượt.
Sau khi hoàn thành các lượt quy định, trò chơi kết thúc và người chiến thắng được đánh giá.
Số lượt mỗi trò chơi được lên kế hoạch từ 30 đến 100 lượt, nhưng sẽ thay đổi tùy theo trò chơi.
Hai ván trong trận đấu mà mỗi đội đi lượt đầu tiên **<u>có thể thi đấu cùng lúc</u>**.
1 change: 1 addition & 0 deletions docs/intro/6-winner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Xác định người chiến thắng
Binary file added docs/intro/demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
site_name: CTU.Word2Vec - Procon 2023

theme:
name: material
favicon: assets/logo-ctu.png
language: vi
logo: assets/logo-ctu.png
features:
- navigation.instant
- navigation.instant.prefetch
- navigation.instant.progress
- navigation.tracking
- navigation.tabs.sticky
- search.suggest
- header.autohide
- navigation.footer

plugins:
- search
- tags
- offline

extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/thangved/procon2023-docs
- icon: fontawesome/brands/facebook
link: https://fb.com/thangved

repo_url: https://github.com/thangved/procon2023-docs
repo_name: thangved/procon2023-docs

markdown_extensions:
- footnotes
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
Loading

0 comments on commit 9e9ec44

Please sign in to comment.