Java 用于国际象棋棋盘游戏逻辑的持久套接字(Android)
我刚刚学习了Android和Java编程(里面有很多noob),我想问一些关于Android编程和Socket服务器的问题 我被指派创建一个简单的国际象棋应用程序(不包括AI), 将从TCP套接字中检索典当的位置: 服务器:xinuc.org 港口:7387 我被告知要使用套接字持久性,因为服务器将每秒更新典当的位置,典当的位置将以这种格式发送 [典当代码][水平位置][垂直位置][空格] 典当代码: K:白王 问:白皇后 白主教 N:白骑士 R:白车 k:黑国王 问:黑皇后 b:黑人主教 n:黑骑士 r:黑车 例如:Ka1 Qg3 Be6等 然后,我的应用程序必须调整检索到的位置,并相应地移动棋子 我读过一些关于Android Socket编程的教程,但仍然有点困惑,我使用了AsyncTask而不是Thread,因为我读到AsyncTask在这种情况下是一个更好的选择 在阅读并了解了一些之后,下面是我如何使用Socket(在doInBackground中)检索数据的: CMIIW,我不认为我上面放的从套接字检索数据的代码是最佳实践 这就是支持我下面问题的背景(很长很无聊),我这里有两个主要问题:Java 用于国际象棋棋盘游戏逻辑的持久套接字(Android),java,android,sockets,chess,Java,Android,Sockets,Chess,我刚刚学习了Android和Java编程(里面有很多noob),我想问一些关于Android编程和Socket服务器的问题 我被指派创建一个简单的国际象棋应用程序(不包括AI), 将从TCP套接字中检索典当的位置: 服务器:xinuc.org 港口:7387 我被告知要使用套接字持久性,因为服务器将每秒更新典当的位置,典当的位置将以这种格式发送 [典当代码][水平位置][垂直位置][空格] 典当代码: K:白王 问:白皇后 白主教 N:白骑士 R:白车 k:黑国王 问:黑皇后 b:黑人主教 n:
提前谢谢你你的问题太宽泛了。您可能需要指定需要帮助的部件。无论如何,我会尝试给出一些一般性的想法。我希望有帮助 模型
- 首先为棋子、棋手、棋手创建数据模型, 还有棋盘
- 然后确保通过TCP正确接收数据 网络。这是您应该掌握异步任务的地方。你先 了解AsyncTask的工作流程后,您可以使用开始开发自己的AsyncTask
- 您可以对棋子使用ImageButton,并使用 Android动画。谷歌GridView也是。我在Android上发现了两个基于网格的国际象棋实现:和
- 如果您是一名web开发人员,或者碰巧,您熟悉 Android Canvas API,这是一种更好的方式,为您提供更多的自由和准确性
- 另一种更耗时但更专业的用户界面设计方法 游戏,可能正在使用OpenGL ES for Android。你可以阅读,看一看,或者掌握关于这个主题的知识。如果你想要3D,一定要使用OpenGL
总之,有一些流行的游戏引擎可以帮助你 快速高效地成为专业的游戏开发者。Cocos2D 是我的最爱之一,它适合国际象棋比赛,而且是综合性的 托德·帕金斯在林达的作品
try {
clientSocket = new Socket(SERVERADD, SERVERPORT);
InputStreamReader inputStream = new InputStreamReader(clientSocket.getInputStream());
BufferedReader reader = new BufferedReader(inputStream);
String latestPosition = reader.readLine();
storedPosition=latestPosition;
} catch (UnknownHostException e) {
Log.d("Error Unknown Host", String.valueOf(e));
} catch (IOException e) {
Log.d("Error IOException", String.valueOf(e));
}