cotuongpi 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CoTuongPi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,127 @@
1
+ Metadata-Version: 2.4
2
+ Name: cotuongpi
3
+ Version: 1.0.0
4
+ Summary: Cờ Tướng (Chinese Chess) trên terminal - chơi qua mạng LAN
5
+ Author: CoTuongPi
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/cotuongpi/cotuongpi
8
+ Keywords: chinese-chess,xiangqi,co-tuong,terminal,lan,game
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: End Users/Desktop
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Games/Entertainment :: Board Games
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: rich>=13.0
22
+ Dynamic: license-file
23
+
24
+ # CoTuongPi - Cờ Tướng trên Terminal
25
+
26
+ Thư viện chơi **Cờ Tướng** (Chinese Chess / Xiangqi) trên terminal với giao diện đẹp mắt và chế độ chơi qua mạng LAN.
27
+
28
+ ## Cài đặt
29
+
30
+ ```bash
31
+ pip install cotuongpi
32
+ ```
33
+
34
+ ## Sử dụng
35
+
36
+ ```bash
37
+ cotuongpi
38
+ ```
39
+
40
+ Hoặc:
41
+
42
+ ```bash
43
+ python -m cotuongpi
44
+ ```
45
+
46
+ ## Tính năng
47
+
48
+ - Chơi 2 người trên cùng máy tính
49
+ - Chơi qua mạng LAN (cùng WiFi) với hệ thống phòng
50
+ - Tuân thủ đầy đủ và nghiêm ngặt luật cờ tướng
51
+ - Giao diện terminal đẹp mắt với màu sắc (sử dụng Rich)
52
+ - Hiển thị nước đi hợp lệ khi chọn quân
53
+ - Theo dõi quân bị bắt và lịch sử nước đi
54
+ - Hoàn tác nước đi (chế độ local)
55
+ - Phát hiện chiếu, chiếu bí, hòa cờ (hết nước đi, lặp thế cờ)
56
+ - Hỗ trợ đầu hàng và xin hòa
57
+
58
+ ## Chơi qua mạng LAN
59
+
60
+ Cả hai người chơi cần kết nối chung một mạng WiFi.
61
+
62
+ ### Tạo phòng
63
+
64
+ 1. Chọn **"Chơi qua mạng LAN"**
65
+ 2. Chọn **"Tạo phòng"**
66
+ 3. Chia sẻ **mã phòng 4 ký tự** cho đối thủ
67
+
68
+ ### Tham gia phòng
69
+
70
+ 1. Chọn **"Chơi qua mạng LAN"**
71
+ 2. Chọn **"Tham gia phòng"**
72
+ 3. Nhập **mã phòng** hoặc **IP:PORT** (nếu UDP broadcast bị chặn)
73
+
74
+ ## Cách nhập nước đi
75
+
76
+ | Cách nhập | Ví dụ | Mô tả |
77
+ | ------------------ | --------- | ------------------------------ |
78
+ | Chọn quân | `e9` | Chọn quân ở cột e, hàng 9 |
79
+ | Chọn đích | `e8` | Di chuyển quân đã chọn tới e8 |
80
+ | Nhập trực tiếp | `e9 e8` | Di chuyển quân từ e9 tới e8 |
81
+ | Nhập không khoảng | `e9e8` | Tương tự |
82
+
83
+ ### Tọa độ
84
+
85
+ - **Cột**: `a` đến `i` (trái sang phải)
86
+ - **Hàng**: `0` đến `9` (trên xuống dưới)
87
+
88
+ ### Lệnh
89
+
90
+ | Lệnh | Phím tắt | Mô tả |
91
+ | ---- | -------- | --------------- |
92
+ | help | `h` | Trợ giúp |
93
+ | undo | `u` | Hoàn tác |
94
+ | resign | `r` | Đầu hàng |
95
+ | draw | `d` | Xin hòa |
96
+ | quit | `q` | Thoát |
97
+
98
+ ## Luật cờ tướng
99
+
100
+ ### Quân cờ
101
+
102
+ | Đỏ | Đen | Tên | Di chuyển |
103
+ | -- | --- | ------ | ---------------------------------------------- |
104
+ | 帥 | 將 | Tướng | 1 ô ngang/dọc, chỉ trong cung 3x3 |
105
+ | 仕 | 士 | Sĩ | 1 ô chéo, chỉ trong cung 3x3 |
106
+ | 相 | 象 | Tượng | 2 ô chéo (hình chữ điền), không qua sông |
107
+ | 馬 | 馬 | Mã | Hình chữ L, bị cản nếu có quân chắn chân |
108
+ | 車 | 車 | Xe | Thẳng ngang hoặc dọc, không giới hạn |
109
+ | 炮 | 砲 | Pháo | Di chuyển thẳng, ăn quân phải nhảy qua 1 quân |
110
+ | 兵 | 卒 | Tốt | Tiến 1 ô, sau khi qua sông được đi ngang |
111
+
112
+ ### Luật đặc biệt
113
+
114
+ - **Tướng đối mặt**: Hai tướng không được đứng cùng cột mà không có quân chắn giữa
115
+ - **Tượng không qua sông**: Tượng bị giới hạn ở nửa sân nhà
116
+ - **Mã bị cản chân**: Nếu ô kề (theo hướng đi) có quân thì không đi được
117
+ - **Pháo nhảy ăn**: Pháo di chuyển thẳng như xe, nhưng khi ăn phải nhảy qua đúng 1 quân
118
+ - **Lặp thế cờ**: Nếu cùng thế cờ xuất hiện 3 lần, ván cờ hòa
119
+
120
+ ## Yêu cầu
121
+
122
+ - Python >= 3.10
123
+ - Terminal hỗ trợ Unicode và màu sắc
124
+
125
+ ## License
126
+
127
+ MIT
@@ -0,0 +1,104 @@
1
+ # CoTuongPi - Cờ Tướng trên Terminal
2
+
3
+ Thư viện chơi **Cờ Tướng** (Chinese Chess / Xiangqi) trên terminal với giao diện đẹp mắt và chế độ chơi qua mạng LAN.
4
+
5
+ ## Cài đặt
6
+
7
+ ```bash
8
+ pip install cotuongpi
9
+ ```
10
+
11
+ ## Sử dụng
12
+
13
+ ```bash
14
+ cotuongpi
15
+ ```
16
+
17
+ Hoặc:
18
+
19
+ ```bash
20
+ python -m cotuongpi
21
+ ```
22
+
23
+ ## Tính năng
24
+
25
+ - Chơi 2 người trên cùng máy tính
26
+ - Chơi qua mạng LAN (cùng WiFi) với hệ thống phòng
27
+ - Tuân thủ đầy đủ và nghiêm ngặt luật cờ tướng
28
+ - Giao diện terminal đẹp mắt với màu sắc (sử dụng Rich)
29
+ - Hiển thị nước đi hợp lệ khi chọn quân
30
+ - Theo dõi quân bị bắt và lịch sử nước đi
31
+ - Hoàn tác nước đi (chế độ local)
32
+ - Phát hiện chiếu, chiếu bí, hòa cờ (hết nước đi, lặp thế cờ)
33
+ - Hỗ trợ đầu hàng và xin hòa
34
+
35
+ ## Chơi qua mạng LAN
36
+
37
+ Cả hai người chơi cần kết nối chung một mạng WiFi.
38
+
39
+ ### Tạo phòng
40
+
41
+ 1. Chọn **"Chơi qua mạng LAN"**
42
+ 2. Chọn **"Tạo phòng"**
43
+ 3. Chia sẻ **mã phòng 4 ký tự** cho đối thủ
44
+
45
+ ### Tham gia phòng
46
+
47
+ 1. Chọn **"Chơi qua mạng LAN"**
48
+ 2. Chọn **"Tham gia phòng"**
49
+ 3. Nhập **mã phòng** hoặc **IP:PORT** (nếu UDP broadcast bị chặn)
50
+
51
+ ## Cách nhập nước đi
52
+
53
+ | Cách nhập | Ví dụ | Mô tả |
54
+ | ------------------ | --------- | ------------------------------ |
55
+ | Chọn quân | `e9` | Chọn quân ở cột e, hàng 9 |
56
+ | Chọn đích | `e8` | Di chuyển quân đã chọn tới e8 |
57
+ | Nhập trực tiếp | `e9 e8` | Di chuyển quân từ e9 tới e8 |
58
+ | Nhập không khoảng | `e9e8` | Tương tự |
59
+
60
+ ### Tọa độ
61
+
62
+ - **Cột**: `a` đến `i` (trái sang phải)
63
+ - **Hàng**: `0` đến `9` (trên xuống dưới)
64
+
65
+ ### Lệnh
66
+
67
+ | Lệnh | Phím tắt | Mô tả |
68
+ | ---- | -------- | --------------- |
69
+ | help | `h` | Trợ giúp |
70
+ | undo | `u` | Hoàn tác |
71
+ | resign | `r` | Đầu hàng |
72
+ | draw | `d` | Xin hòa |
73
+ | quit | `q` | Thoát |
74
+
75
+ ## Luật cờ tướng
76
+
77
+ ### Quân cờ
78
+
79
+ | Đỏ | Đen | Tên | Di chuyển |
80
+ | -- | --- | ------ | ---------------------------------------------- |
81
+ | 帥 | 將 | Tướng | 1 ô ngang/dọc, chỉ trong cung 3x3 |
82
+ | 仕 | 士 | Sĩ | 1 ô chéo, chỉ trong cung 3x3 |
83
+ | 相 | 象 | Tượng | 2 ô chéo (hình chữ điền), không qua sông |
84
+ | 馬 | 馬 | Mã | Hình chữ L, bị cản nếu có quân chắn chân |
85
+ | 車 | 車 | Xe | Thẳng ngang hoặc dọc, không giới hạn |
86
+ | 炮 | 砲 | Pháo | Di chuyển thẳng, ăn quân phải nhảy qua 1 quân |
87
+ | 兵 | 卒 | Tốt | Tiến 1 ô, sau khi qua sông được đi ngang |
88
+
89
+ ### Luật đặc biệt
90
+
91
+ - **Tướng đối mặt**: Hai tướng không được đứng cùng cột mà không có quân chắn giữa
92
+ - **Tượng không qua sông**: Tượng bị giới hạn ở nửa sân nhà
93
+ - **Mã bị cản chân**: Nếu ô kề (theo hướng đi) có quân thì không đi được
94
+ - **Pháo nhảy ăn**: Pháo di chuyển thẳng như xe, nhưng khi ăn phải nhảy qua đúng 1 quân
95
+ - **Lặp thế cờ**: Nếu cùng thế cờ xuất hiện 3 lần, ván cờ hòa
96
+
97
+ ## Yêu cầu
98
+
99
+ - Python >= 3.10
100
+ - Terminal hỗ trợ Unicode và màu sắc
101
+
102
+ ## License
103
+
104
+ MIT
@@ -0,0 +1,38 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "cotuongpi"
7
+ version = "1.0.0"
8
+ description = "Cờ Tướng (Chinese Chess) trên terminal - chơi qua mạng LAN"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ {name = "CoTuongPi"},
14
+ ]
15
+ keywords = ["chinese-chess", "xiangqi", "co-tuong", "terminal", "lan", "game"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Intended Audience :: End Users/Desktop",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Topic :: Games/Entertainment :: Board Games",
26
+ ]
27
+ dependencies = [
28
+ "rich>=13.0",
29
+ ]
30
+
31
+ [project.scripts]
32
+ cotuongpi = "cotuongpi.app:main"
33
+
34
+ [project.urls]
35
+ Homepage = "https://github.com/cotuongpi/cotuongpi"
36
+
37
+ [tool.setuptools.packages.find]
38
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ """CoTuongPi - Cờ Tướng (Chinese Chess) trên terminal với chế độ LAN multiplayer."""
2
+
3
+ __version__ = "1.0.0"
@@ -0,0 +1,3 @@
1
+ from cotuongpi.app import main
2
+
3
+ main()