一直对编写战棋类游戏感兴趣,去年花了些时间来试验把原来C#编写的跳棋改成Android联网对战跳棋,但没有成功,最近再次努力,居然有所成果。
可能是去年想编一个兼顾单机玩和网络玩的游戏,过于抽象了,现在只考虑网络对战。
效果
人和电脑对战
两人对战
设计
主要有两个构件
客户端
com.pnp.chess.android 是客户端在 Android 上的实现
服务器
com.pnp.chess.server 是服务器端, Server 端使用 JavaWebServices 的 REST 来定位 User, Game 等资源
客户端和服务器用 Json 格式交换
服务器端是可以有若干 game, 每个game有一个或者两个 Player 的结构
联网对战的时候, 一个Games中有两个 Human User, 人机对战的时候, 服务器会构造 AI User.
由于 AI User 在服务器上, 所以人机对战也必须连接 Server
另外有 com.pnp.chess.common, 这是服务器和客户端共用代码的集合. ( 比如两端都需要都要用到 Step )