Compare commits

..

No commits in common. "9f5c88ddbf4c40a2573e4cec67da71eff0bbc77d" and "05cc67532b971850accddcb70ac52d4b846c05c4" have entirely different histories.

4 changed files with 43 additions and 14 deletions

View File

@ -1,9 +1,5 @@
# 陆战棋 # 陆战棋
本项目将实现双人在线对局陆战棋。
## 简介
陆战棋又称军棋是中国近代一种根据军队中的军衔而设计的双人、四人棋类。棋盘上每方有三十个停靠点包括二十五个兵站、五个圆形的行营和两个碉堡形的大本营。棋盘上的线分为两种铁路线、公路线。两方势力通过三条铁路连接每两条铁路之间有一个“山界”。每一方有25枚棋子先夺得对方军旗者为胜。 陆战棋又称军棋是中国近代一种根据军队中的军衔而设计的双人、四人棋类。棋盘上每方有三十个停靠点包括二十五个兵站、五个圆形的行营和两个碉堡形的大本营。棋盘上的线分为两种铁路线、公路线。两方势力通过三条铁路连接每两条铁路之间有一个“山界”。每一方有25枚棋子先夺得对方军旗者为胜。
| 棋子 | 数量 | 说明 | | 棋子 | 数量 | 说明 |
@ -21,6 +17,7 @@
| 排长 | 3 | 可吃以下任何棋子 | | 排长 | 3 | 可吃以下任何棋子 |
| 工兵 | 3 | 可以吃地雷 | | 工兵 | 3 | 可以吃地雷 |
## 规则 ## 规则
1. 双方将己方全部棋子按规则秘密地布置在己方棋盘的兵站或大本营中; 1. 双方将己方全部棋子按规则秘密地布置在己方棋盘的兵站或大本营中;
@ -39,13 +36,15 @@
14. 己方司令被消灭后强制向敌方明示己方军旗所在位置; 14. 己方司令被消灭后强制向敌方明示己方军旗所在位置;
15. 成功攻击敌方军旗或敌方已失去所有机动力时则为获胜! 15. 成功攻击敌方军旗或敌方已失去所有机动力时则为获胜!
## 实现 ## 功能
- [x] 棋盘底图 本项目将实现双人在线陆战棋的对局。
- [ ] 虚拟棋盘
- [ ] 布子规则 - [ ] 棋盘
- [ ] 比赛计时 - [ ] 显示底图
- [ ] 兵站、行营、大本营
- [ ] 棋子可以按规则放入兵站、行营、大本营
- [ ] 轮流行棋 - [ ] 轮流行棋
- [ ] 行棋规则 - [ ] 行棋规则
- [ ] 吃子规则 - [ ] 吃子
- [ ] 输赢判断 - [ ] 输赢判断

21
package-lock.json generated
View File

@ -476,6 +476,20 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@ -1560,6 +1574,13 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
}, },
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
"function-bind": { "function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",

View File

@ -4,8 +4,8 @@
"description": "陆战棋", "description": "陆战棋",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
"dev": "nodemon server.js", "dev": "nodemon server",
"start": "node server.js", "start": "node server",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"repository": { "repository": {

View File

@ -1,5 +1,14 @@
const client = io() const client = io()
client.on('message', (message) => { client.on('role', (name) => {
console.log(message) role.innerText = name
}) })
client.on('player', (player) => {
gameButton.classList = player
gameButton.innerText = player == 'player1' ? '玩家1' : '玩家2'
})
gameButton.onclick = () => {
client.emit('click')
}