From 5a31135339951f8c267aa8a0f65bc4be3aa3887d Mon Sep 17 00:00:00 2001 From: zhaohaiyang Date: Fri, 5 Aug 2022 08:36:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B9=B6=E4=BF=AE=E6=94=B9in?= =?UTF-8?q?dex.html=E5=92=8Cserver.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 47 +++++++++++++++++++++++++++++++++++++++++++++++ server.js | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 index.html create mode 100644 server.js diff --git a/index.html b/index.html new file mode 100644 index 0000000..085c2b7 --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + + + 陆战棋游戏 + + + +

陆战棋游戏

+

+ + + + + diff --git a/server.js b/server.js new file mode 100644 index 0000000..1e3f608 --- /dev/null +++ b/server.js @@ -0,0 +1,40 @@ +const express = require('express') +const app = express() +app.use(express.static('public')) +const host = process.env.HOST || '0.0.0.0' +const port = process.env.PORT || 8000 +const server = app.listen(port, host, () => console.log(`陆战棋游戏运行在:http://${host}:${port}/`)) +const io = require('socket.io')(server) + +const clients = [] +let currentPlayer = null + +io.on('connection', (client) => { + // 来人了 + clients.push(client) + + const i = clients.indexOf(client) + if (i == 0) client.emit('role', '玩家1') + else if (i == 1) client.emit('role', '玩家2') + else client.emit('role', '旁观者') + + if (clients.length == 2) { + currentPlayer = client[0] + } else { + currentPlayer = null + } + io.emit('player', clients.length < 2 || currentPlayer != clients[1] ? 'player1' : 'player2') +}) + +client.on('click', () => { + if (clients.length >= 2 && client == currentPlayer) { + // 切换玩家 + if (currentPlayer === clients[0]) { + currentPlayer = clients[1] + io.emit('player', 'player2') + } else { + currentPlayer = clients[0] + io.emit('player', 'player1') + } + } +}) \ No newline at end of file