1)完成并提交1个对战服务平台程序和1个玩家Agent程序 2)开发1-3个能够自主决策、自行走子的智能玩家Agent程序 3)玩家Agent和服务Service程序采用 RESTful 接口技术通信,且接口通用化、标准化,便于不同组进行PK。
整个系统主要可分为服务端和客户端两部分。在架构设计图中,服务层(Platform)和接口层属于服务端, 主要负责实现对战平台的任务。即实现了一个全局的棋盘数据结构,供玩家Agent(通过接口层)来查询 当前棋盘的状态以及输赢状态(是否决出胜负)。在服务层中,以结构数组形式表示的所有玩家走子记录, 以二维数组形式表示的棋盘状态。而客户端部分包含服务层(Player)和人机交互UI层,实现的是智能的五 子棋玩家程序以及棋局的基本控制和可视化的功能。核心的五子棋走子算法策略包含于这一部分中。在棋 局中,Agent通过接口层于服务层(Platform)中获取棋盘状态,随后根据算法策略走子,走子返回到服务 层。服务层的棋盘状态在人机交互UI中显示。
main/Client/ 1 init.py 作为package的标志,自动生成。 2 Agent.py 玩家操作和AI算法。 main/sever/ 1 init.py 作为package的标志,自动生成。 2 chessboard.py 定义棋盘类,绘制棋盘的形状,切换先后手,判断输赢等。 3 Flask_sever.py Falsk框架和Restful接口设计。 4 Game.py 定义游戏对局类,判断游戏状态,记录落子,切换玩家等。 main/GUI/ 1 init.py 作为package的标志,自动生成。 2 login.py 初始界面设计,玩家连接服务器。 3 Choose_color.py 选择执字颜色界面,选择颜色,进入对局。 4 gobang.py 棋盘界面设计。 main/Img/ 1 Img 存放游戏所使用的贴图。 Main/ 1 init.py 作为package的标志,自动生成。 2 main.py 获取client端IP地址,并启动登录界面
1 Server端运行flask_server.py 2 玩家1运行main 3 玩家2运行main 4 玩家3运行main 5 玩家输入sever端IP进行连接 6 玩家选择持方并选择是否以AI身份进入 7 玩家点击start进入棋局 8 三个玩家进行对弈 注:若同一IP下运行多个玩家程序,因为多个相同IP发生冲突。请将IP获取方式改为自定义IP。(main.py下注释26行,运行27行反注释,main1,main2同样操作)
Copyright by 1851995 刘佳航(leader) 1852686 王晓程 1851996 佘韶亚 1851855 陈文基