我想用C#winfrom做一个五子棋的游戏,请问一下怎样使鼠标点击一下出现一个棋子?

AAAAzzzz1f 2018-04-11 11:44:53
棋盘的坐标应该怎样确定呀
求大佬解答一下
...全文
1009 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹腚腚凉 2018-04-17
  • 打赏
  • 举报
回复
引用 10 楼 u011785544 的回复:
我的思路是一个棋子是一个自定义控件 自定义控件有个状态 控制是否显示该棋子 程序总体有个记录 方便设置下一次显示的棋子是黑色还是白色 棋子未显示时 是一个小的十字,整个棋盘是由这些十字拼接而成,点击十字,设置棋子显示,这样一颗棋子就下好了
每一个棋子记录在矩阵里,观测矩阵里面是否有符合规则的棋子连线,笨的办法是全部遍历, 聪明的方法是遍历落子点的棋子,上下左右斜角是否有5个数字是一样的,黑子记0白的记1。
  • 打赏
  • 举报
回复
引用 10 楼 u011785544 的回复:
我的思路是一个棋子是一个自定义控件 自定义控件有个状态 控制是否显示该棋子 程序总体有个记录 方便设置下一次显示的棋子是黑色还是白色 棋子未显示时 是一个小的十字,整个棋盘是由这些十字拼接而成,点击十字,设置棋子显示,这样一颗棋子就下好了
这种做法就是前期很好,后期很累。 正确的做法是根据棋盘先生成一个虚拟的棋盘(19*19或可自定义)数组,然后根据规则计算这个数组的赢棋算法。 最后才是将这个数组渲染到gui,利用鼠标点击生成每一步的落子记录,根据落子记录变更渲染。 这样你最初就做好了赢棋判断,同时还实现了棋谱导入导出和悔棋等功能。
Veary 2018-04-17
  • 打赏
  • 举报
回复
我的思路是一个棋子是一个自定义控件 自定义控件有个状态 控制是否显示该棋子 程序总体有个记录 方便设置下一次显示的棋子是黑色还是白色 棋子未显示时 是一个小的十字,整个棋盘是由这些十字拼接而成,点击十字,设置棋子显示,这样一颗棋子就下好了
musewintter 2018-04-16
  • 打赏
  • 举报
回复
在form窗体设置鼠标点击事件 然后自己去试着慢慢调试位置
Veary 2018-04-16
  • 打赏
  • 举报
回复


我现在只差一个算法确定谁赢
  • 打赏
  • 举报
回复
简单来说,棋盘上每一个的坐标,其实就是左上角的 x,y 加上每一行的宽度和高度。但是有的人并不是这个肤浅的问题,而是没有建模、没有控件、没有事件处理问题。你自己一旦有一点设计,那么你的设计机制才决定了下一步的技术。
  • 打赏
  • 举报
回复
先把你现有的设计说明一下,你的基础决定了下一步的做法。
zzyhost 2018-04-15
  • 打赏
  • 举报
回复
面向对象、GDI+
desperaso 2018-04-14
  • 打赏
  • 举报
回复
五子棋不太懂,给个象棋、围棋的参考下 https://pan.baidu.com/s/1kUKZnSF
Chasmれ 2018-04-13
  • 打赏
  • 举报
回复
https://download.csdn.net/download/fsj43/9408341为什么不做成拖动的然后在设置位置?
xuzuning 2018-04-12
  • 打赏
  • 举报
回复
设棋盘 左边距 dx 上边距 dy 格线长 dw 则在 MouseDown(或 MouseUp)事件中 棋子中心x = (int)((e.X - dx)/dw) + dx; 棋子中心y = (int)((e.Y - dy)/dw) + dy;

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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