public Puzzle(int pscale,Graphics pg,int pmargin,int pwidth,int pheight) { g = pg; scale = pscale; blackPen = new Pen(Color.Black); whitePen = new Pen(Color.White); bluePen = new Pen(Color.Blue); greenPen = new Pen(Color.Green); width = pwidth; height = pheight; margin = pmargin; lenth = Math.Min(width, height); lenth /= scale; Cells = new Cell[scale, scale]; for(int i=0;i<scale ;i++) { for (int j = 0; j < scale; j++) Cells[i, j] = new Cell(i, j,this,g); } for (int i = 0; i < scale;i++ ) { for (int j = 0; j < scale; j++) Cells[i, j].setNeighbours(); } }
/// <summary> /// 设置起点 /// </summary> /// <param name="c"></param> public void SetStart(Cell c) { if (this.Start != null) Start.Start = false; Start = c; Start.Start = true; }
/// <summary> /// 设置终点 /// </summary> /// <param name="c"></param> public void SetEnd(Cell c) { if (this.End != null) End.End = false; End = c; End.End = true; }
/// <summary> /// 在(相邻的)两个格子之间取消画线。 /// </summary> /// <param name="cell"></param> public void UnConnect2(Cell cell) { g.DrawLine(whitePen, this.CenterX, this.CenterY, cell.CenterX, cell.CenterY); }
/// <summary> /// 在(相邻的)两个格子之间画线。 /// </summary> /// <param name="cell"></param> public void Connect2(Cell cell) { g.DrawLine(bluePen, this.CenterX, this.CenterY, cell.CenterX, cell.CenterY); }
private void Form1_MouseDown(object sender, MouseEventArgs e) { CurrentMouseCell = p.CheckMouse(e.X, e.Y); }
public Node(Cell pcell) { cell = pcell; Children = new List<Node>(); }