public void refreshBoard(Board b)
        {
            if (tblBoard.InvokeRequired)
            {
                refreshBoardDelegate r = new refreshBoardDelegate(refreshBoard);
                this.Invoke(r, new object[] { b });
            }
            else
            {
                if (!created)
                {
                    tblBoard.SuspendLayout();
                    this.tblBoard.ColumnCount = b.getWidth();
                    this.tblBoard.RowCount    = b.getHeight();
                    for (int i = 0; i < b.getWidth(); i++)
                    {
                        for (int j = 0; j < b.getHeight(); j++)
                        {
                            Label t = new Label();
                            Field f = b.getField(i, j);
                            Stone s = f.getStone();
                            t.Dock        = DockStyle.Fill;
                            t.AutoSize    = false;
                            t.Font        = new Font("Arial", 20);
                            t.AllowDrop   = true;
                            t.DragDrop   += new System.Windows.Forms.DragEventHandler(this.tblBoard_DragDrop);
                            t.DragEnter  += new System.Windows.Forms.DragEventHandler(this.tblBoard_DragEnter);
                            t.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tblBoad_Click);
                            switch (f.getType())
                            {
                            case Field.Types.DoubleLetter:
                                t.BackColor = Color.LightSalmon;
                                break;

                            case Field.Types.DoubleWord:
                                t.BackColor = Color.LightGreen;
                                break;

                            case Field.Types.TripleLetter:
                                t.BackColor = Color.DarkSalmon;
                                break;

                            case Field.Types.TripleWord:
                                t.BackColor = Color.DarkGreen;
                                break;

                            default:
                                break;
                            }

                            if (s != null)
                            {
                                t.Text = s.letter + "(" + s.value + ")";
                            }
                            else
                            {
                                t.Text = "";
                            }
                            tblBoard.Controls.Add(t, i, j);
                        }
                    }
                    tblBoard.ResumeLayout();
                    created = true;
                }
                else
                {
                    tblBoard.SuspendLayout();
                    for (int i = 0; i < b.getWidth(); i++)
                    {
                        for (int j = 0; j < b.getHeight(); j++)
                        {
                            Field f = b.getField(i, j);
                            Stone s = f.getStone();
                            switch (f.getType())
                            {
                            case Field.Types.DoubleLetter:
                                ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.LightSalmon;
                                break;

                            case Field.Types.DoubleWord:
                                ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.LightGreen;
                                break;

                            case Field.Types.TripleLetter:
                                ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.DarkSalmon;
                                break;

                            case Field.Types.TripleWord:
                                ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.DarkGreen;
                                break;

                            default:
                                break;
                            }

                            if (s != null)
                            {
                                ((Label)tblBoard.GetControlFromPosition(i, j)).Text = s.letter + "(" + s.value + ")";
                            }
                            else
                            {
                                ((Label)tblBoard.GetControlFromPosition(i, j)).Text = "";
                            }
                        }
                    }
                    tblBoard.ResumeLayout();
                }
                board = b;
            }
        }
        public void refreshBoard(Board b)
        {
            if (tblBoard.InvokeRequired)
            {
                refreshBoardDelegate r = new refreshBoardDelegate(refreshBoard);
                this.Invoke(r, new object[] { b });
            }
            else
            {
                if (!created)
                {
                    tblBoard.SuspendLayout();
                    this.tblBoard.ColumnCount = b.getWidth();
                    this.tblBoard.RowCount = b.getHeight();
                    for (int i = 0; i < b.getWidth(); i++)
                    {
                        for (int j = 0; j < b.getHeight(); j++)
                        {
                            Label t = new Label();
                            Field f = b.getField(i, j);
                            Stone s = f.getStone();
                            t.Dock = DockStyle.Fill;
                            t.AutoSize = false;
                            t.Font = new Font("Arial", 20);
                            t.AllowDrop = true;
                            t.DragDrop += new System.Windows.Forms.DragEventHandler(this.tblBoard_DragDrop);
                            t.DragEnter += new System.Windows.Forms.DragEventHandler(this.tblBoard_DragEnter);
                            t.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tblBoad_Click);
                            switch (f.getType())
                            {
                                case Field.Types.DoubleLetter:
                                    t.BackColor = Color.LightSalmon;
                                    break;
                                case Field.Types.DoubleWord:
                                    t.BackColor = Color.LightGreen;
                                    break;
                                case Field.Types.TripleLetter:
                                    t.BackColor = Color.DarkSalmon;
                                    break;
                                case Field.Types.TripleWord:
                                    t.BackColor = Color.DarkGreen;
                                    break;
                                default:
                                    break;
                            }

                            if (s != null)
                            {
                                t.Text = s.letter + "(" + s.value + ")";
                            }
                            else
                            {
                                t.Text = "";
                            }
                            tblBoard.Controls.Add(t, i, j);
                        }
                    }
                    tblBoard.ResumeLayout();
                    created = true;
                }
                else
                {
                    tblBoard.SuspendLayout();
                    for (int i = 0; i < b.getWidth(); i++)
                    {
                        for (int j = 0; j < b.getHeight(); j++)
                        {
                            Field f = b.getField(i, j);
                            Stone s = f.getStone();
                            switch(f.getType()){
                                case Field.Types.DoubleLetter:
                                    ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.LightSalmon;
                                    break;
                                case Field.Types.DoubleWord:
                                    ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.LightGreen;
                                    break;
                                case Field.Types.TripleLetter:
                                    ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.DarkSalmon;
                                    break;
                                case Field.Types.TripleWord:
                                    ((Label)tblBoard.GetControlFromPosition(i, j)).BackColor = Color.DarkGreen;
                                    break;
                                default:
                                    break;
                            }

                            if (s != null)
                            {
                                ((Label)tblBoard.GetControlFromPosition(i, j)).Text = s.letter + "(" + s.value + ")";
                            }
                            else
                            {
                                ((Label)tblBoard.GetControlFromPosition(i, j)).Text ="";
                            }
                        }
                    }
                    tblBoard.ResumeLayout();
                }
                board = b;
            }
        }