团队项目——AI五子棋(小程序)

团队展示:

  队名:未来的将来的明天在那里等你 小组

  队员:

  龙天尧(队长)(3116005190),林毓植(3116005188),黄晖朝(3116005178),梁竟(3116005183),林俊博(3116005185),林立新(3116005186)

  

  Github项目地址:https://github.com/holidaysss/AI-Gobang

  项目描述

    AlphaGo Zero在世界舞台上取得的巨大成功体现了人工智能算法的快速发展和其蕴含着的应用价值,本团队借鉴AlphaGo Zero算法思想和架构,简单实现五子棋的人工智能棋手,通过人工智能自我的不断下棋,不断训练,并且不断迭代更新自身-自训练模式,从而训练一个水平极高的人工智能棋手,让广大玩家体验一把与“AlphaGo Zero”的感觉。本团队提出的程序-AI五子棋不仅加入人工智能元素,并且以微信小程序的方式部署,为所有微信用户提供简洁方便的模式风格轻松进行五子棋游戏。

  需求分析: 

     面向用户分析:
      全体微信用户都可以很便捷地参与游戏,随时随地都可以简单的借助微信小程序的便利发起游戏对战。

     功能性需求
      a. 正常进行五子棋游戏
      b. 基于微信小程序开发
      c. 多种游戏模式的选择
      d. AI元素的加入
     技术需求
      a. 微信小程序前端开发
      b. 服务器部署
      c. python web开发
      d. AlphaGo Zero 算法理解和实现
      e. python的编程开发

  项目分组:   

    前端:
      AI五子棋基于小程序开发,小程序的前端语言用的是JavaScript。前端设计主要从两个角度进行编程开发:游戏设计,信息处理。

       游戏设计:
        1. 五子棋棋盘,棋子等图像界面的设计
        2. 五子棋基础规则设定
          a. 棋子可以根据玩家的指定位置落到棋盘的指定位置-坐标
          b. 玩家只可以按照规则下棋,不存在连续下棋,未同意下撤回棋子,同个位置下两遍等异常情况
        3. 游戏基础功能设定,比如开始游戏,再来一菊,放弃下棋等
        4. 可以根据后端指示的游戏状态执行对应操作,特别地,棋盘的胜负状态是由后端判断的。

       信息处理:
        1. 可以为每一个微信用户生成一个唯一的Token或者标识
        2. 可以与后端进行正确的信息通信,并且执行后端要求的请求。同时也可以正常地向后端发送信息
        3. 以JSON格式作为数据规范格式,当前数据格式

    后端
      采用开发简单且功能强大的Flask作为后端开发语言,由于Flask是python web框架,所以在结合同样是python实现的人工智能算法上的操作上更加方便。后端开发主要从两个角度入手:游戏开发,Web开发

      游戏开发:
        1. 完整编程开发五子棋游戏,可以正常生成棋盘,并且可以进行三种游戏模式:人机模式,人人模式,鸡鸡模式。
        1. 初步理解AlphaGo Zero的算法思想和技术,并且尝试实现算法,训练人工智能模型。
        2. 整合训练好的模型和算法逻辑称为一个可实例化的对象 - 称人工智能棋手(AI棋手)
      Web开发:
        1. 正确与前端进行信息交流
        2. 准确每一个用户生成临时棋盘环境,每个用户的棋盘游戏环境互不干扰。
        3. 合理存放用户的token标识等数据
        4. 同个用户标识可以在不同时间段内生成多个棋盘,但是每一个时间段只能对应一个棋盘环境
        5. 服务器web框架的部署,性能,效率,安全和稳定等方面的测试

  

参考资料
AlphaGo Zero的主要论文文献,互联网上的AlphaGo Zero算法研究文章,AlphaGo Zero 相关的知识文章,微信小程序游戏类型开发知识文章,python后端开发知识文章,服务器搭建配置知识文章,python必要运行环境搭建配置知识文章。
AlphaZero: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
AlphaGo Zero: Mastering the game of Go without human knowledge

  队员风采:天尧

          人设:活泼可爱

           擅长:即兴伴奏,python

           一句话:“想要成绩好,上课不迟到。”

       毓植

          人设:天真浪漫

           擅长:唱歌,python

           一句话:“百分之五十的见解, 百分之五十的直觉。”

         

         晖朝

          人设:沉着冷静

           擅长:太极,python

           一句话:“饮一壶浊酒,删了库就走”

         竟竟

            人设:拾金不昧

           擅长:安卓,Java

           一句话:“听立新的。”

         俊博

          人设:宠辱不惊

          擅长:游戏,python

           一句话:“None”

         立新

          人设:能说会道

           擅长:数学,辩论,python

           一句话:“爱你,爱你,爱你,每天都要一起。”

  团队合照:

  

  (明天再拍。。。)

  团队特色:男团

二、选题要求

  • 确立团队选题,确定之后每个团队需要写描述要做的究竟是什么系统,预期的用户量是多少。
  • 围绕选题项目内容的 真实、可用、有价值(有情怀 作为加分项)目标来分别阐述。
  • 建立和初步熟悉团队git的协作方式。项目后续的代码、文档都要通过Coding.net增量式管理。实现文档的版本化和增量式管理。
  • 请立刻建立团队项目的git仓库。

三、团队安排

1. 团队计划

第 6 

1.团队组队、团队博客

 

2.团队介绍、成员展示、角色分配、选题确定

 

3.制定团队计划安排,团队贡献分的规定

第7周

1.需求规格说明书

 

2.原型设计,队员估计任务难度并学习必要的技术

 

3.编码规范完成、平台环境搭建完成、初步架构搭建

第8周

1.原型改进(给目标用户展现原型,并进一步理解需求)

 

2.架构设计,WBS, 团队成员估计各自任务所需时间

 

3.测试计划

第9周

1. 团队项目Alpha任务分配计划

 

2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交

第10周

1.用户反馈+测试计划改进

 

2. 团队Alpha阶段个人总结

 

3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理

第11周

1. 团队项目Alpha博客:事后分析

 

2. 每个团队有一人必须离开,自己寻找下一个接纳自己的团队。团队发博客宣布离队和接纳的成员。

第12周

1. 团队项目Beta任务分配计划,介绍新成员

 

2. 连续7天的Beta敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交

第13周

1. 团队项目Beta博客:发布说明、测试报告、展示博客

 

2. 团队Beta阶段个人总结

第14周

1. 团队项目Beta博客:事后分析, 宣布每人的贡献分

第15周

1.团队整个阶段总结,分析用户数据,整理文档,保证以后的团队能接手。

2. PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划    
· Estimate · 估计这个任务需要多少时间 ·  · 
Development 开发    
· Analysis · 需求分析 (包括学习新技术) ·  · 
· Design Spec · 生成设计文档 ·  · 
· Design Review · 设计复审 (和同事审核设计文档) ·  · 
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) ·  · 
· Design · 具体设计 ·  · 
· Coding · 具体编码 ·  · 
· Code Review · 代码复审 ·  · 
· Test · 测试(自我测试,修改代码,提交修改) ·  · 
Reporting 报告    
· Test Report · 测试报告 ·  · 
· Size Measurement · 计算工作量 ·  · 
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 ·  · 
合计      

3. 团队成员绩效评估方法

成员的绩效 = 团队获得的分数 + 个人的团队贡献分
在项目alpha 和 beta 阶段评审后, 团队会得到一个项目分数(每个成员都会得到同样的分数,做为自己的原始分数的一部分)。团队成员的努力程度不同,达成目标的程度不同,帮助同伴的付出不同,那就要在“团队贡献分” 上有所区分。 所有人贡献分的总和为 20N,其中N为团队的人数。 在alpha/beta 之后,团队按照自己制定的规则,把 (20N)瓜分给每人,这就是 “团队贡献分”。
要求:请每人阅读教材 “人、绩效和职业道德”一章,然后团队开一个讨论会,协商讨论团队贡献分的分配规则。每人得分为自然数,并且每个人分数不能相同。 请写一个团队博客详细说明每个团队的成员计划如何帮助团队完成任务,以及团队贡献分的分配规则。

天转凉了,注意保暖,好吗(需求规格说明书放在github了)的更多相关文章

  1. 软工实践-Beta 冲刺 (7/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  2. 软工实践-Beta 冲刺 (6/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  3. 软工实践-Beta 冲刺 (5/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  4. 软工实践-Beta 冲刺 (4/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  5. 一日游 + 进度psp

    假设我们全班同学及教师去吉林省吉林市1日游,请为这次活动给出规格说明书. 目录 1   引言 1.1   编写目的 1.2   项目背景 1.3   参考资料 2   需求分析 2.1   交通方式 ...

  6. <Git>git学习

    1.安装 分布式版本控制:工作电脑保存完整的代码,中央服务器挂了也可以使用 集中式版本控制:中央服务器挂了就凉凉 sudo apt-get install git git安装 检测安装成功 git 2 ...

  7. GitHub 热点速览 Vol.34:亚马逊、微软开源项目带你学硬核技术

    作者:HelloGitHub-小鱼干 摘要:站在巨人的肩膀上才能看得更远,本周上榜的 computervision-recipes 便是典型代表,这个由微软开源的计算机视觉最佳实践项目,多次上 Git ...

  8. 微凉大大,教你一步一步在linux中正确的安装Xcache加速php。

    首先,强烈吐槽,百度上的教程,都左复制右复制的,乱七八糟,缺东缺西的.借此微凉大大我提供我苦心整理好的教程.以便各位小菜能顺利的使用Xcache加速php,假设看完了,也操作了,还是失败了的话,请联系 ...

  9. 小米众筹新品---8H凉感慢回弹记忆绵枕 99元 上手开箱图

    在众目睽睽之下,商城终于成了杂货铺 众筹发布了第98期新品——8H凉感慢回弹记忆绵枕H1,售价为99元,主打舒适凉感,抗菌吸湿,三曲线护颈设计,3~5秒慢回弹. 本着程序员的读书历程:x 语言入门 — ...

随机推荐

  1. 【转】FluentAPI详细用法

    设置主键modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键modelBuilder.Entity<x>().HasK ...

  2. UIPath Level 2&3

    Level 3 走了很多弯路,但是学到了很多东西,贴一个Level3的吧,其他的省略了 认认真真独立做完Level3的两个POC,相信你对UIPath的理解会更深入一步 晚安,祝各位中秋节快乐!

  3. Java正则表达式实现港、澳、台身份证验证

    最近由于业务的要求,需要进行港.澳.台人员身份证验证,现在直接上代码,经供参考学习,也为自己积累一些工具类: package com.qiu.validate; public class regexV ...

  4. crontab 每分钟、每小时、每天、每周、每月、每年执行

    每分钟执行 * * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 每小时的第3和第 ...

  5. 在递归函数中使用JQuery.Deferred,异步请求中的同步执行...

    标题不知道怎么起合适,其实需求很简单: 黑色背景的容器在页面打开时是隐藏的,点击提交后显示. 然后开始执行递归方法,每次ajax请求完成时,更新容器内容. 在全部执行完成后输出“执行完成”. subm ...

  6. 数据分析---SQL(删除数据或表)

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  7. GDAL——命令使用专题——gdalinfo命令

    GDAL——命令使用专题——gdalinfo命令  前言 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用 ...

  8. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

  9. 不使用接口的 limit 控制分页的容量

    1.html中v-for 此时的v-for对象并不是在后台获取的数组list,而是计算属性的函数名pageList <div v-for="item in pageList" ...

  10. [Leetcode 40]组合数和II Combination Sum II

    [题目] Given a collection of candidate numbers (candidates) and a target number (target), find all uni ...