zoukankan      html  css  js  c++  java
  • 结对编程之黄金分割

    • 结对编程之队友信息

        队友:彭扬阳。博客地址http://www.cnblogs.com/zxyoyo/

        结对项目:黄金分割游戏。题目地址http://www.cnblogs.com/qingxu/p/5316897.html

       

    • 结对编程之队友介绍

        这次编程能很有幸和彭同学一组,彭同学平时是一个觉得沉默是金的同学,话不多,为人和善,最爱的就是动漫啦。团队沟通成本几乎是没有的,因为我们就隔着一个宿舍,喊一嗓子就可以商量项目。感觉上彭同学一个对编程有抱着崇高的敬意的人,轻易的不编程,编程也很慎重,能优化坚决优化,能简略坚决简略,所以有些地方还是有些小矛盾,比如有些地方,我觉得功能优化会带来过多的工作量已浪费过多的时间,而他还是觉得优化是必要的所以我们项目有点拖延,好吧不是一般的拖延。总的来说队友除了编程外平时还是个挺和蔼的人。合作愉快!!

    • 结对编程之项目详情

        分工这次项目我们采用的是c/s方式工作。所以分工能也挺明确的,我写服务端,用于接收并处理用户的数据并且转发给所有用户。彭同学写的是客户端,主要处理用户界面交互,数据的发送。

        规范:代码规范,大括号采用K&R风格。每个if, else, for, do, while后都要有一个大括号,即使有一条语句。变量名和函数名都采用首字母lowerCamelCase的命名规则。

        团队的工作

    以下的功能设计由我们一起完成

    1. 第一个用户进入界面可以选择创建游戏

     

      2.第二个用户选择加入游戏(如果用户选择创建游戏,服务端会自动加入到当前游戏中)   

      3.以下图是(1)创建玩家等待玩家加入游戏(2)有玩家加入(创建游戏的玩家界面)游戏后界面(3)选择加入游戏玩家后的界面(显示所有等待的玩家)

    创建玩家等待玩家加入

    4.创建玩家选择开始游戏,发送消息给服务端,服务端将创建游戏推送给所有玩家,玩家一起进入游戏

    5.游戏创建后进入游戏界面,有上把所有玩家输入的数列表,我这把分数,这把G值。。。。提示

    6.提交完分数后界面

    7.游戏接触弹出对话框提示,并且退出游戏

    • 结对编程之我的工作

      本人编写的是服务端,所以我介绍的就是我服务端的内容

     

    以下为服务端大致分块设计


    服务端程序设计图

              用于收发数据的udpClientService层,主要负责打包后数据的发送,接收,打包数据的解析。

              用于处理命令,并且执行相应操作的CoreService层,将解析完的命令进行具体的处理。

              保存全局游戏的GameData块,用于所有游戏数据的更新

            结对编程之通信数据协议

              这是我们的主要模块,通信协议的设定:命令

    GAME_JOIN

    1

    客户端发送给服务端加入游戏

    GAME_CREAT

    2

    客户端发送给服务端创建游戏

    GAME_BEGIN

    3

    客户端发送给服务端开始游戏

    GAME_SEND_G

    4

    客户端发送给服务端G值

    SERVICE_REPLY

    129

    服务端相应客户端

    GAME_RESULT

    130

    服务端返回一局的结果

    GAME_LODING

    131

    服务端返回正在等待玩家

    GAME_GAMER_LIST

    132

    服务端返回所有玩家列表

    GAME_DO_NOT_CREAT

    133

    服务端返回创建游戏失败

    GAME_CREATE_SUCESSED

    134

    服务端返回创建游戏成功

    GAME_GAMER

    135

    服务端返回一个用户的名

    GAME_OVER

    136

    服务端返回游戏结束

             传输数据格式的设定

    命令

    内容个数

    内容1

    内容结尾标志

    内容2

    内容结尾标志

    内容3

    内容结尾标志

     

              

              命令:占一个byte位。

              内容个数:占一个byte位。

              内容结尾标志:占3个byte位格式如下

    0xFF

    0x00

    0xFF

          源码各包说明

            communication:通信模块,用于接收命令,数据解析

            Core:核心服务模块,用于命令具体操作

            GameDataManger:用户数据保存模块,整个游戏数据保存块

            Until:工具模块,主要是一些小工具,比如从int转到char[],char[]转int的工具

    • 结对编程之感悟

      结对编程让我明白如何配合队友工作,沟通是最重要的。我们采用c/s模式最终要就是协议的约定,在协议的约定上我们是小心又谨慎。我想这也是每个结对编程的需要注重的。

     项目源码

     
     
     
     
     
     
     
     
  • 相关阅读:
    如何自建appender扩展Log4j框架
    在O(1)时间删除链表结点
    My First GitHub
    JAVA序列化和反序列化
    [转]Vim 复制粘帖格式错乱问题的解决办法
    Centos清理内存 内存回收释放及内存使用查看的相关命令
    Spark HA 的搭建
    Ambari安装
    Hadoop HA的搭建
    Hadoop32位和64位的查询
  • 原文地址:https://www.cnblogs.com/QuanQingli/p/5372570.html
Copyright © 2011-2022 走看看