陪儿子上围棋课时我希望有一个能在freerunner手机上运行的打谱程序,用来记录儿子和同学的对局。我开始以为随便找一个打谱程序,在freerunner手机环境编译一下就可以了。但我找来cgoban、quarry编译、运行后,发现这些程序不太适合手机环境。我觉得我的需求很简单,就自己用GTK写了一个简单的打谱程序dapu。
dapu是在Windows平台、VC6环境用GTK开发的。平常写程序,总要琢磨用户的需求。现在给自己写程序,就很随意了。我主要实现了记谱、复盘的功能。棋谱有一个叫sgf 的通用格式。但我嫌麻烦,没有做sgf,自己定义了一个简单格式,下图是Windows环境的运行效果。
源程序未做任何修改,在ubuntu上编译一下,就可以运行了:
然后在poky的OpenEmbedded环境构建后,放到freerunner上运行。构建很顺利,运行后发现棋子画得不对。加一行打印就找到原因了。我定义:
#define STONE_EMPTY 0 // 无子
#define STONE_BLACK -1 // 黑子
#define STONE_WHITE 1 // 白子
#define STONE_BLACK_LAST -2 // 最后黑子
#define STONE_WHITE_LAST 2 // 最后白子
typedef char Color;
我将棋子类型定义为char,用-1表示黑子。这在VC和gcc on pc上没有问题。在VC和gcc on pc上,char默认是signed char。但在gcc on ARM上,char默认是unsigned char。所以,在我判断:
if (stone == STONE_BLACK) {...}
时,freerunner是在比较255和-1是否相等,所以把棋子画错了。只要把棋子类型的定义改为:
typedef signed char Color;
就可以在freerunner手机上正确运行了。
在windows上开发花了好几个晚上。移植到ubuntu和freerunner手机用了半小时。
分享到:
相关推荐
java编写的一个象棋打谱程序,可以二人对弈,记忆棋谱
用Java语言写的中国象棋打谱软件程序,是进行课程设计和学习制作管理系统的好资料。
象棋打谱小程序 布局篇 整个棋盘区域从低往上共分为三层: 棋盘部分:包括背景图、棋盘网格、田字格斜线、炮位置标识、兵/卒位置标识以及楚河汉界 棋子部分:包括红方和黑方共32个棋子 操作标识部分:包括当前选中...
易语言围棋打谱程序源码,围棋打谱程序,下棋子,悔棋,计时和提醒,写说明1
围棋打谱程序易语言源码,提供大家参考,有很多功能。
VC6写的数独游戏的打谱和自动计算程序 我从网上随便下了3个数独游戏 11.sodu 22.sodu 33.sodu 解了一下还挺快的
围棋打谱程序,java applet版
围棋 助手 一个很好的围棋打谱软件围棋 助手 一个很好的围棋打谱软件围棋 助手 一个很好的围棋打谱软件围棋 助手 一个很好的围棋打谱软件围棋 助手 一个很好的围棋打谱软件围棋 助手 一个很好的围棋打谱软件围棋 ...
易语言源码围棋打谱程序.rar
围棋打谱程序.zip易语言项目例子源码下载围棋打谱程序.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
[纯C语言 + Win32 API]一步一步写个围棋程序之十九:打谱状态试下
新浪围棋棋谱打谱程序V1.0 已经完成的功能: 1.棋谱导入 2.棋谱显示 3.前进/后退 未完成: 1. 导出 2. 变招 3. 棋谱下载...
新浪围棋棋谱打谱程序V1.0 已经完成的功能: 1.棋谱导入
是一个自解压文件。 这是一个围棋打谱程序。没有AI。debug 和 release 文件夹中有可执行文件。
资源介绍:易语言围棋打谱程序源码资源作者:易语言游戏源码开发资源界面:资源下载:
一想起递归程序就心烦,所以此程序的目标是打谱程序。说实话VISUAL STUDIO 2019很一般。VS对移动开发不切实际的追求还是像当年追求WEB开发一样执着与倔犟。这个时代本是应用为王的时代,可是微软永远让自己变得...
编写一个简单的象棋打谱程序。备注:不是对弈程序。 功能列表: 1、输入棋谱(比如:炮二平五等等),可以自动复盘(显示正确的走子) 2、可以支持局面的每一步回退,直到最初开局 3、页面必须支持PC/手机的响应式...
java环境运行
python象棋打谱