服务端检查规则不就行了??
请求端为客户端 接受端为服务端。。。。。。。。
建议所有棋子运算全做在服务端上。。。每当有命令的时候 服务端发命令刷新客户端
客户端发命令索取服务端上全部棋子位置资料 之后自我刷新
客户端有动静时 也发命令请求服务端 服务端验证是否移动合法 合法则发命令刷新客户端
也就是说客户端只是画个图而已
这样避免了2个人的游戏修改大战。。。
具体一点就是构建一个2维数组 分别代表横纵座标 数组的值代表是哪一个子。。
比如1是A方第一个车 2是第2个车 3是A方第一个马。。。
这样用一个2维数组就能反映一个棋盘的情况。。。
当客户端移动的时候 先保持画面不动 把客户端的数组改变成移动后的样子 不用验证
直接发给服务端 服务端接到客户端发来的棋表后 比较棋表的差异 就能得出2个变化的元素
就可以直接验证是否合法 这样2个元素的验证非常简单 比想象的简单 动手做一下就知道了 如果不合法 。。。你看着办。。。如果合法 替换自己的棋表 之后把棋表发回去 客户端刷新重画 一定要发棋表 不要发移动合法命令。。。那样有很多隐患
这样就完成了一个CS象棋。。。 CS算不算P2P啊。。。
至于网络传输量的问题 不用考虑 没有人下棋那么快的。。。就算有观战的功能。。。也不会出现太大的强度。。。。再说 数据量也不大 20X20=400 一次400B的数据量也不是很大 压缩了会更小
之所以用20X20是因为我不知道你说的是国际象棋还是中国象棋还是其它的什么象棋