标题:五子棋遇到的一些问题
取消只看楼主
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
结帖率:50%
已结贴  问题点数:20 回复次数:5 
五子棋遇到的一些问题
   想了很久有些地方不是看得很明白,所以上来问问。。。。。。。。。。
   五子棋棋盘如下面所示:
     

问题:
1、当我们下棋时单击左键,由OnLButtonDown函数响应,得到点击位置的坐标(x,y),这个坐标是不是以像素为单
    位?
 2、对应的棋盘的坐标是以什么为单位?是怎么实现的?
 3、单击左键得到的坐标是很精确的,棋盘的坐标(线交叉的地方)也是一个精确的值,这两个值在我们点击棋盘的时候
    相等的机率是很低的,既然这个不等,那在画棋子的时候怎么办?
 4、棋盘上有很多个小的方格,如果我很巧合的点击在了方格的正中间时,那在画棋子时该画在哪里。
 5、这段代码看的不是很明白:
    void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
   {
        int x1,y1;
        x1=(int)(point.x-7)/29 ;  //这里减7后在整除29是什么意思????
        y1=(int)(point.y-7)/29 ;
        twzq.downzi(x1,y1);
        if (twzq.twinner.winner==1)
        {
            CMyDlg::MessageBox("白棋获胜!" );
            twzq.draw();
        }
        if (twzq.twinner.winner==2)
        {
            CMyDlg::MessageBox("黑棋获胜!" );
        twzq.draw();
   }
 6、还有这段代码:
    void wzq::DrawQZ(int nx,int ny,bool style)//画棋子
    {
        if (wzq::dcseted==false)return;
        if (nx>15||ny>15) return;
        if (style==false )
        {
            dc->BitBlt(nx*29+7,ny*29+7,28,28,mask,0,0,MERGEPAINT);  //这里乘29在加7世什么意思???
            dc->BitBlt(nx*29+7,ny*29+7,28,28,qzb,0,0,SRCAND);
        }
        else
        {
            dc->BitBlt(nx*29+7,ny*29+7,28,28,mask,0,0,MERGEPAINT);
            dc->BitBlt(nx*29+7,ny*29+7,28,28,qzh,0,0,SRCAND);
        }
    }
  暂时提这几个问题,如果还有问题的话再提出来,刚刚学VC不久,所以有很多问题不明白,希望高手解释一下,先谢
  过了
搜索更多相关主题的帖子: 五子棋 
2010-04-16 21:40
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
   恩 29是一个格子的宽度,那乘29或除29又是为什么呢,我实在想不通,还有加7、减7也想不明白。。。。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-17 12:41
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
还有就是在画棋子的时候为什么要用到两次BitBlt()函数。。。。。。。。。。。。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-17 17:09
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
回复 6楼 天使梦魔
那这么说来,那个“7”指的是一个格子的像素了?????????

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-18 18:05
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
回复 8楼 zmh886
  29是棋盘上一格的宽度没错。

       但7如果是棋盘外面的宽度的话,那就该减去14才对啊,棋盘的四边都有剩余啊。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-18 18:31
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
  而且我试了一下,棋盘外部那部分的宽度是20

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-18 18:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-303299-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125552 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved