如何识别棋盘上的棋子走动?来者有分!

zcwhgj 2004-11-03 03:36:08
比如象棋软件,走子之前棋盘是一种状态,走了一招之后棋盘是另一种状态,哪么我想请问,如何通过程序识别这种走子前后的状态,以确定是哪一个棋子走棋了?
...全文
214 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
marcopolo 2004-11-09
  • 打赏
  • 举报
回复
lionwys加konista的方法就可以实现了
konista 2004-11-08
  • 打赏
  • 举报
回复
用数据判断,每个棋子都是对象,再搞个链表记录每一步棋子的活动情况
ddslayers 2004-11-08
  • 打赏
  • 举报
回复
若是围棋的话,还是根据棋盘格子是否被占用判断方便一些~---------agree
zcwhgj 2004-11-04
  • 打赏
  • 举报
回复
有些朋友会错我的意了.
25475360 2004-11-04
  • 打赏
  • 举报
回复
取点的颜色就行了,
将士象马车炮兵这几个字总有几个点的位置的颜色不一样的,
取其中几个点的颜色作为标识依据就行了,

如果你担心原来编程的人让棋在棋盘上有偏差,那你就要先对棋盘的网格扫描定位
再算偏移,然后对照标识点的颜色数据就OK了
chlchen 2004-11-04
  • 打赏
  • 举报
回复
接分!!!!!!1
virusletter 2004-11-04
  • 打赏
  • 举报
回复
一个棋一个对象。点击时判断旗子。落顶重画。
arvid_gs 2004-11-04
  • 打赏
  • 举报
回复
在棋盘的位置(X,Y),此回合是否走动,上一次(或几次)在棋盘的位置(这个试结构大小,以便于悔棋)
syy64 2004-11-03
  • 打赏
  • 举报
回复
用模型作呀。
konista 2004-11-03
  • 打赏
  • 举报
回复
typedef struct Step
{
int index; //第index步
int x0; //移动前的x坐标
int y0; //移动前的y坐标
int x1; //移动后的x坐标
int y1; //移动后的y坐标
int id; //棋子ID,是車还是马..
struct Step * next; //下一步
}STEP, * PSTEP;
lionwys 2004-11-03
  • 打赏
  • 举报
回复
把每个棋子作为一个对象,即是一个类,然后对着各类进行onmouseover ,onclick 等响应就可以了
bjxiaoye 2004-11-03
  • 打赏
  • 举报
回复
为什么用图象呢..其实每个棋子和棋盘都是一个抽象.用数据来说明问题多好
zcwhgj 2004-11-03
  • 打赏
  • 举报
回复
s6283(瞎忙) 你说的是一个方法,但就怕两者的图像可能会有一些微小的差异,这个办法没有解决.

I_Love_CPP(我爱C++):对我就是做一个不相干的程序.
s6283 2004-11-03
  • 打赏
  • 举报
回复
我提个思路,预先保留好每个棋子的图像,下棋前保存好屏幕原始的图像,等下棋后再把下棋后的图像与原来的图像做比较,比如把图像的内容相减,得到大于0的区域应该就是所下的棋的图像,再和棋子的图像做比较得到那个棋在移动
I_Love_CPP 2004-11-03
  • 打赏
  • 举报
回复
你做这个后台程序究竟是象棋程序的后台操作还是另外一个不相干的程序哦?

如果是程序自己识别自己走的是那个棋还容易,你要让另外一个程序去监控就很麻烦了,简直就不能实现。
zcwhgj 2004-11-03
  • 打赏
  • 举报
回复
可能我表达的不清楚:我的意思是有一个象棋软件,它由人和电脑在下棋,哪么,我做一个后台程序来监视这个下棋的进程,也就是要知道人走了哪一些棋,还有电脑自己又走了哪一些棋.

如何去识别,这是一个程序对另一个程序界面的识别.
try876 2004-11-03
  • 打赏
  • 举报
回复
UP
zhangnanonnet 2004-11-03
  • 打赏
  • 举报
回复
每个棋子都应该保存一个结构信息,比如:在棋盘的位置(X,Y),此回合是否走动,上一次(或几次)在棋盘的位置(这个试结构大小,以便于悔棋),等等.呵呵,其实我也没有做过,就是临时想想觉得应该是这样
flyincloud2000 2004-11-03
  • 打赏
  • 举报
回复
若是围棋的话,还是根据棋盘格子是否被占用判断方便一些~
flyincloud2000 2004-11-03
  • 打赏
  • 举报
回复
每个棋子都设一个标志,走了之后该标志置1,其余清0。
加载更多回复(2)

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧