游戏玩家列表设计

游戏玩家列表概述

玩家登录游戏后,开始等待其他玩家的进入,如图 18.12 所示。在登录游戏的表单下面,显示玩家列表,在另一位玩家未进入之前,显示 “等待其他用户加入”,如果另一位玩家进入后,则可以开始游戏。

image 2024 04 18 11 32 57 796
Figure 1. 图18.12 游戏玩家列表的界面

游戏玩家列表的实现

从图 18.12 所示的界面可以发现,游戏玩家列表只有对战双方,而且背景颜色分别是白色和黑色,代表五子棋棋子的颜色。

在 public 文件夹下创建 index.html 文件,其中使用不同的 CSS 样式,将玩家列表以及玩家的状态显示出来,并使用 Canvas 技术绘制棋盘。index.html 文件中的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>五子棋online</title>
	<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <link rel="stylesheet" media="screen and (min-width:900px)" href="style.css">
	<link rel="stylesheet" media="screen and (max-width:500px)" href="mobile_style.css">
  <link rel="shortcut icon" href="favicon.ico" />
  <link rel="bookmark" href="favicon.ico" type="image/x-icon" />
</head>
<body onbeforeunload="checkLeave()" style="background-color: #1abc9c">

<h1>五子棋</h1>

<div id="current">
	<!-- <div id="currentPlayer"></div> -->
	<!-- <div id="winner"></div> -->
  <div class="infoWrapper">
    <div class="info">
      <label for="user">用户名:</label>
      <input type="text" name="user" id="user">
    </div>
    <div class="info">
      <label for="room">房间号:</label>
      <input type="number" name="text" id="room">
    </div>
  </div>
  <button id="enter">进入</button>
</div>
<div class="userWrapper">
  <div class="userInfo"></div>
  <div class="waitingUser"></div>
</div>
<div class="chessBoard">
 <canvas id="chess" width="450px" height="450px"></canvas>
  <canvas id="layer" width="450px" height="450px"></canvas>
</div>

<form id="action">
  <!-- <button id="restart" value='重新开始' onclick='reStart()'>
  重新开始
  </button> -->
  <!-- <button type="button" class="first" value='黑棋优先' onclick='blackFirst()'>黑棋优先</button>
  <button type="button" class="first" value='白棋优先' onclick='whiteFirst()'>白棋优先</button> -->
  <!-- <button type="button" id="cancelOne" onclick='cancel()'>撤销一步</button> -->
  <input type="color" id="colorSelect" name="color" value="#DEB887">
</form>

<script src="https://cdn.bootcss.com/socket.io/2.2.0/socket.io.js"></script>
<script src="chessBoard.js"></script>
</body>
</html>