社区
C语言
帖子详情
关于五子棋的落子处理问题(含鼠标)
JustHere
2002-09-17 04:35:25
我在作五子棋,player用鼠标落子,鼠标的x,y值我可以知道,请问如何处理落子,我定义了一个二维数组来保存棋盘盘面,如何把落下子位置告诉系统,因为我只知道鼠标的像素值,但如何把它告诉我定义的数组,鼠标的位置是是一个象素,但我们都知道,我们下棋的时候,不可能很准确的点在棋盘的交叉点上,也就说,我们要有一个热区,不知道我的想法对不对,但这样一来,就很难处理了。
不知道,最佳的方法是什么
...全文
302
15
打赏
收藏
关于五子棋的落子处理问题(含鼠标)
我在作五子棋,player用鼠标落子,鼠标的x,y值我可以知道,请问如何处理落子,我定义了一个二维数组来保存棋盘盘面,如何把落下子位置告诉系统,因为我只知道鼠标的像素值,但如何把它告诉我定义的数组,鼠标的位置是是一个象素,但我们都知道,我们下棋的时候,不可能很准确的点在棋盘的交叉点上,也就说,我们要有一个热区,不知道我的想法对不对,但这样一来,就很难处理了。 不知道,最佳的方法是什么
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahao
2002-09-20
打赏
举报
回复
111是笔误:)
ahao
2002-09-20
打赏
举报
回复
唉。你的数学真差,真的
用户 昵称
2002-09-20
打赏
举报
回复
就是正方形了
JustHere
2002-09-20
打赏
举报
回复
不对吧。应该是
if( 219%20 > 20/2 )
x = 219-219%20+ 20;
else
x = 219-219%20;
if( 111%20 > 20/2 )
y = 111-111%20+ 20;
else
y = 111-111%20;
ahao
2002-09-20
打赏
举报
回复
:)这还不容易?
假设鼠标点在(219,111),棋盘一格20点,所求交叉点是(x,y)
那么:
if( 219%20 > 20/2 )
x = 219/20*20 + 20;
else
x = 219/20*20;
if( 109%20 > 20/2 )
y = 109/20*20 + 20;
else
y = 109/20*20;
wwlxmai
2002-09-20
打赏
举报
回复
交叉点为中心
的一个正方形中
hxy_sss
2002-09-20
打赏
举报
回复
把有效范围缩小,10变成5,在交叉点的5点半径内为有效。
JustHere
2002-09-20
打赏
举报
回复
交叉点很多,难道要我一个一个试啊 那效率很低啊
比如说(210,230)(230,230) 是交叉点 我设半径为10内是有效的值
如果我得到的x y 坐标是(219,230)(221,230)那你说怎么判断
(219,230)是(210,230)这个点
(221,230)是(230,230)这个点的
是不是用(x-210)*(x-210)+(y-210)*(y-210)<=10*10 xy为鼠标的坐标值
但是 你怎么知道xy是接近210 而不是接近230
ahao
2002-09-18
打赏
举报
回复
晕倒,这也难处理吗??
鼠标点的坐标和交叉点坐标一减取个绝对值
小于一个数不就可以了?
Alain_Delone
2002-09-18
打赏
举报
回复
可否以正方形区域代替,这样就可以以坐标定位了,每格的大小一定,好象和扫雷差不多吧
azuretttc
2002-09-18
打赏
举报
回复
由棋盘落子点的坐标可以求得以其为圆心的一个圆(半径自定),可得到其方程,经过简化,然后将鼠标位置坐标代入方程,看是否大于零,这样就可得到是否在落子区了!
complexity
2002-09-17
打赏
举报
回复
sandrowjw(Sandro)说得够明白了
就是判断鼠标是否在交叉点的一个二位临域里面
JustHere
2002-09-17
打赏
举报
回复
还有其他办法?
JustHere
2002-09-17
打赏
举报
回复
能否具体点
sandrowjw
2002-09-17
打赏
举报
回复
橡皮筋法,以准确位置为圆心的一个圆内都有效就可以了。
matlab面向对象开发
五子棋
程序
matlab面向对象编程编写的
五子棋
,可视化操作界面,可悔棋,自动判胜负。全部开源,帮助您提高编程能力。
单机
五子棋
(eclipse+java)
本
五子棋
游戏小程序仅为简单的单机
五子棋
,基本功能需求:可两人对下(用
鼠标
操作),能判断输赢。 1、下棋操作功能需求: (1)实现
鼠标
可操作黑白子轮流生成并
落子
。 (2)当相同颜色的棋子连成五子时,能弹出判断...
五子棋
c++实现
这是大家都喜欢玩的游戏
五子棋
的c++代码,编程的环境是VS2005.
五子棋
C代码
五子棋
超简洁C代码,代码量只有168行就可以执行
五子棋
基于mfc程序设计
五子棋
游戏
1.
鼠标
的左键按下为黑子,右键按下为红子,每个棋手
落子
的时间不能超过30s。 2.棋手的对弈开始的时候,执黑子的先下。 3.当出现提示“
落子
操作有误!”的情况可能是,第一个
落子
不是黑子;还有就是某个棋手
落子
操作...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章