# 黑白棋
## 文件夹结构
```
├─css
├─docs
├─image
└─js
├─Core // 游戏核心部件
│ │ Core.js // 游戏核心
│ │ Display.js // 显示组件基类
│ │ Player.js // 玩家组件基类
│ │
│ └─Event // 事件模块
│ Event.js // 事件组件基类
│ GameCoreReverseEvent.js // [游戏核心用] 棋子翻转事件
│ GameDisplayCheckerUpdatEvent.js // [显示组件用] 棋盘更新事件
│ GameEndEvent.js // [显示组件用] [玩家组件用] 游戏结束事件
│ GameRoundEvent.js // [显示组件用] [玩家组件用] 游戏回合事件
│ GameStartEvent.js // [显示组件用] [玩家组件用] 游戏结束事件
│
└─Game // 游戏的具体组件实现逻辑
```
## 游戏生命周期
游戏生命周期大概划分为下面几个状态:
1. 游戏初始化并开始
2. 回合模式
3. 游戏结束
以下列初始化代码为例:
```JavaScript
GameControl = new Core(); // 创建一个游戏核心 // /js/Core/Core.js
PlayerA = new Player(); // 创建玩家一 // /js/Core/Player.js
PlayerB = new Player(); // 创建玩家二 // /js/Core/Player.js
ADisplay = new Display(); // 创建渲染组件 // /js/Core/Display.js
/// 注: /js/Core/Player.js 和 /js/Core/Display.js 只有函数声明而没有具体的实现代码
/// 请继承一个新的类并把具体实现代码补充完整
/// 可见 /js/Game/ 中的例子
GameControl.Initialize(PlayerA,PlayerB,ADisplay); // 游戏初始化
```
### 游戏初始化并开始
```JavaScript
初始化开始
└───┐
V
GameControl.Initialize() // /js/Core/Core.js : Core.Initialize()
│
│ 初始化棋盘
│ 初始化玩家数据
│ 初始化游戏状态
│
└───┐
V
ADisplay.CheckerBoardUpdate()
│ /// /js/Core/Display.js : Display.CheckerBoardUpdate()
│ /// 棋盘刷新事件
│ /// 将初始化结束后的棋盘等其他参数传递给这个函数
┌───┘
└───┐
V
ADisplay.Event_GameStart()
│ /// /js/Core/Display.js : Display.Event_GameStart()
PlayerA.Event_GameStart()
│ /// /js/Core/Player.js : Player.Event_GameStart()
PlayerB.Event_GameStart()
│ /// /js/Core/Player.js : Player.Event_GameStart()
│
│ /// 游戏开始事件
┌───┘
└───┐
V
ADisplay.Event_Round()
│ /// /js/Core/Display.js : Display.Event_Round()
PlayerA.Event_Round()
│ /// /js/Core/Player.js : Player.Event_Round()
PlayerB.Event_Round()
│ /// /js/Core/Player.js : Player.Event_Round()
│
│ /// 游戏回合事件
┌───┘
┌───┘
V
初始化结束
```
### 游戏回合
```JavaScript
玩家下棋
└───┐
V
APlayer.PlaceChess() // /js/Core/Player.js : Player:PlaceChess() // 某玩家执行下棋操作
└───┐
V
GameControl.PlaceChess() // /js/Core/Core.js : Core:PlaceChess()
│
│
│ 判断落子合法性
│
├───┐
│ │ ↓ 不合法
│ │
│ V
│ 终止处理
│
│ ↓ 合法
│
│ 执行落子操作
│ 获取下一回合游戏状态
│
└───┐
V
ADisplay.CheckerBoardUpdate()
│ /// /js/Core/Display.js : Display.CheckerBoardUpdate()
│ /// 棋盘刷新事件
│ /// 将初始化结束后的棋盘等其他参数传递给这个函数
┌───┘
│
│
│ 判断下一回合游戏状态
├───┐
│ │ ↓ 游戏继续
│ │
│ │
│ V
│ ADisplay.Event_Round()
│ │ /// /js/Core/Display.js : Display.Event_Round()
│ PlayerA.Event_Round()
│ │ /// /js/Core/Player.js : Player.Event_Round()
│ PlayerB.Event_Round()
│ │ /// /js/Core/Player.js : Player.Event_Round()
│ │
│ │ /// 游戏回合事件
│ │
│ V
│ 回合结束
│
│
└───┐
│ ↓ 游戏结束
│
V
ADisplay.Event_GameEnd()
│ /// /js/Core/Display.js : Display.Event_GameEnd()
PlayerA.Event_GameEnd()
│ /// /js/Core/Player.js : Player.Event_GameEnd()
PlayerB.Event_GameEnd()
│ /// /js/Core/Player.js : Player.Event_GameEnd()
│
│ /// 游戏结束事件
┌───┘
V
游戏结束
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
人工智能学习总结成果,希望可以帮到大家,有疑问欢迎随时沟通~ 人工智能学习总结成果,希望可以帮到大家,有疑问欢迎随时沟通~ 人工智能学习总结成果,希望可以帮到大家,有疑问欢迎随时沟通~ 人工智能学习总结成果,希望可以帮到大家,有疑问欢迎随时沟通~ 人工智能学习总结成果,希望可以帮到大家,有疑问欢迎随时沟通~
资源推荐
资源详情
资源评论
收起资源包目录
《人工智能》--【人工智能导论大作业】【黑白棋】光与对立的故事.zip (54个子文件)
js
Game
GameDisplay.js 2KB
Players
HumanPlayer.js 1KB
AI
AIPlayer_Remi.js 190B
VirtualDisplay.js 905B
GreedyAIPlayer.js 2KB
VirtualPlayer.js 828B
MCTSAIPlayer_StatusNode.js 5KB
AIPlayer_Fran.js 188B
MCTSAIPlayer.js 7KB
AIPlayer.js 10KB
MinimaxAIPlayer.js 5KB
Core
Core.js 20KB
Display.js 1019B
Event
GameEndEvent.js 253B
Event.js 211B
GameStartEvent.js 158B
GameCoreReverseEvent.js 346B
GameDisplayCheckerUpdatEvent.js 805B
GameRoundEvent.js 354B
Player.js 1KB
sw.js 516B
Live2d
core
live2dcubismcore.min.js 125KB
Please copy cubism core for web 31B
framework
live2dcubismframework.js 46KB
LICENSE.txt 334B
live2dcubismpixi.js 19KB
pixi
pixi.min.js 428KB
loadModel.js 13KB
game.js 2KB
vue.js 333KB
LICENSE 1KB
manifest.json 267B
readme.md 1KB
CNAME 29B
docs
readme.md 5KB
img
logo.svg 15KB
bg.png 788KB
title-btn.svg 579B
bg_line.png 2KB
css
style.css 4KB
favicon.ico 19KB
index.html 7KB
live2d
fran21
idel.motion3.json 33KB
fran21.2048
texture_00.png 1.6MB
fran21.model3.json 519B
touch.motion3.json 33KB
fran21.moc3 111KB
fran21.physics3.json 10KB
remi1
idel.motion3.json 22KB
remi1.2048
texture_00.png 2.18MB
remi1.moc3 212KB
remi1.physics3.json 4KB
remi1.model3.json 516B
touch.motion3.json 22KB
共 54 条
- 1
资源评论
季风泯灭的季节
- 粉丝: 696
- 资源: 2920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功