C#做五子棋界面

x245322856 2014-09-15 10:10:50
我想用c#做五子棋界面,将棋盘的图片作为主窗体的背景。现在想每单击一个交叉点,就能将棋子的图片放到相应位置。棋子的图片在imagelist控件里。
目前,我已经实现了、每单击一个位置,就能把那个位置的棋盘坐标找到。


怎么实现点击一个位置,把棋子的图片放到目标位置呢?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace 五子棋
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private Point mm(int x, int y)
{
return new Point((x / 31 + 1 / 31), (y / 31 + 1 / 31));
}

protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
switch (e.Button)
{
case MouseButtons.Left:
label1.Text = (mm(e.X, e.Y).X + 1).ToString() + "," + (mm(e.X, e.Y).Y + 1).ToString();
System.Drawing.Graphics g = this.CreateGraphics();
imageList1.Draw(g, e.X, e.Y, 20, 20, 0);
break;
}
}
}
}

我那么写怎么没反应呢
...全文
778 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 x245322856 的回复:
我那么写怎么没反应呢
如果你只想低级的绘图,那么只能“疯狂地不断重绘”整个画面。
anabiosispe 2014-09-18
  • 打赏
  • 举报
回复
gdi+画图,Graphics.DrawImage()把棋子的图片画到棋盘上呗
卧_槽 2014-09-15
  • 打赏
  • 举报
回复
放个picturebox在那个位置不就得了。
bw555 2014-09-15
  • 打赏
  • 举报
回复
给你写个实现思路吧 定义一个19×19的二维数组,每个元素就3种状态 黑、白、空 重写onMouseDown,修改数组元素的状态,触发控件的刷新操作 重写onpaint,根据数组元素的状态进行绘制
bdmh 2014-09-15
  • 打赏
  • 举报
回复
你既然 已经知道坐标了,怎么就不会放棋子图片呢,如果你用的gdi+,就直接drawimage在那个坐标上
我叫小菜菜 2014-09-15
  • 打赏
  • 举报
回复
引用 1 楼 bw555 的回复:
给你写个实现思路吧 定义一个19×19的二维数组,每个元素就3种状态 黑、白、空 重写onMouseDown,修改数组元素的状态,触发控件的刷新操作 重写onpaint,根据数组元素的状态进行绘制
做这样的程序,一定要做到逻辑和UI分离。 连连看、五子棋、象棋等都是这样的,定义一个二维数组,使用数组的值进行逻辑判断和修改,修改完毕后再根据数组的值重绘UI

110,538

社区成员

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

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

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