当前位置:C++技术网 > 资讯 > 毕业设计-幼儿飞行棋之做后感(6)

毕业设计-幼儿飞行棋之做后感(6)

更新时间:2016-05-20 08:34:37浏览次数:1+次

  前面讲完单机版的飞行棋,现在来谈谈网络版的飞行棋。

  当时的我为了赶毕业设计,对数据结构没有考虑情况,建了一个链表,用来保存用户邀请的情况,而没有建数据结构来保存当前游戏的状态,导致有用户的游戏情况出现问题,就无法挽回。

  这个链表保存的是UserID和bIsJoin,bIsJoin等于true表示该玩家已经被邀请了或者在游戏中,等于false表示空闲状态,可以被其他玩家邀请,因为会出现许多邀请,所以需要有链表来保存每个邀请队列。

  当邀请结束游戏开始,直接用这个邀请队列决定游戏开始的顺序,并保存游戏顺序。

  因为单机版的已经做好,所以当网络版的开始游戏,就很简单了,记录当前游戏状态,下一步的游戏状态,每走一步,都判断是否已经结束。

  我当时做的C/S架构是以客户端为主体,服务器辅助,服务器主要是传递玩家之间的游戏信息,而其他的游戏判断信息和状态信息都是由客户端自己处理的。

  写完代码,还要做一份答辩PPT,写出流程和优缺点,当时想了想,我这个东西到处都是缺点,都不知道在哪里找优点,最后耗尽脑筋,想出了几点:

           我们这个联网对战优点有:
                 1.考虑到飞行棋是小型游戏,不会存在太大量的数据,于是我将游戏信息保存在内存,没有连接数据库,节省了连接                    数据库的时间,这样游戏运行起来会快点。
                 2.游戏逻辑的实现主要集中在客户端,服务器只是用来传递游戏消息,从而减轻了服务器的压力。
            缺点:
                 1.没有电脑同玩,必须要四个人联网对战。
                 2.因为没有连接数据库,当客户端断开连接时,游戏将无法进行下去,没有断线重连的机制。

  就是这样,我顺利地过了答辩,结束我的大学时期,好怀念当时的大学编程,自由自在,跟随自己的思维来做,现在出来工作了,基本都是被项目催着干,好累。