Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Làm cách nào để tạo bàn cờ vua trong lập trình C#?

  1. #1
    Ngày gia nhập
    12 2006
    Bài viết
    23

    Thumbs up Làm cách nào để tạo bàn cờ vua trong lập trình C#?

    Mình đang tìm hiểu về vấn đề này nhưng vẫn chưa làm được. Mong các bạn hướng dẫn mình các cách tạo bàn cờ vua?
    (Mong hướng dẫn kỹ 1 chút)
    Mình xin cám ơn.

  2. #2
    Ngày gia nhập
    07 2007
    Bài viết
    44

    Bạn dùng UserControl đi, mình nghĩ cái này không khó mà, không biết phải chi tiết như thế nào.

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Tớ nghĩ là cậu nên vẽ một cái ảnh bàn cờ trong photoshop đã rồi tạo user control rồi load vào đặt tên là bàn cờ cứ thế mà dùng trong main

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Bạn tạo 2 user control là ChessCellUI và ChessBoardUI. Sau đó bên board tạo các cell là xong
    Keep moving forward!

    ... Retired ...

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Tạo các cell thế nào Mèo Đen ? Đừng nói là GUI+ nhé. Cực hình nữa rồi, Cứ làm 1 cái image ko phải là đơn giản hơn sao ?

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Mặc định Làm cách nào để tạo bàn cờ vua trong lập trình C#?

    Vấn đề nó hơi dài nên nói trong vài chữ không được. Túm lại vẫn phải load hình lên thôi.

    Post lên đoạn code tạo cell nè. Xem chơi thôi nha

    Code:
    public partial class ChessCellUI : UserControl
        {
            private static int CellSize = 64;
    
            private ChessCell _Cell;
    
            public ChessCell Cell
            {
                get { return _Cell; }
                set { _Cell = value; }
            }
    
            private Color _ColorEffect = ColorManager.GetNoneColor();
    
            public Color ColorEffect
            {
                get { return _ColorEffect; }
                set {
                        _ColorEffect = value;
                        Invalidate();
                    }
            }
    
            public ChessCellUI()
            {
                InitializeComponent();
    
                this.Size = new Size(CellSize, CellSize);
            }
    
            protected override void OnPaint(PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                int sumPos = _Cell.Position.X + _Cell.Position.Y;
    
                if (sumPos % 2 == 0)
                {
                    g.DrawImage(ResourceManager.GetBlackImg(), 0, 0);
                }
                else
                {
                    g.DrawImage(ResourceManager.GetWhiteImg(), 0, 0);
                }
    
                g.DrawString(_Cell.Position.X + "," + _Cell.Position.Y, this.Font, Brushes.Blue, 0, 0);
    
                // if the cell have a piece
                if(_Cell.Piece != null)
                {
                    g.DrawImage(ResourceManager.GetPieceImg(_Cell.Piece), 0, 0, CellSize, CellSize);
                }
    
                if (_ColorEffect != ColorManager.GetNoneColor())
                {
                    DrawColorEffect(g, _ColorEffect);
                }
    
                base.OnPaint(e);
            }
    
            public void DrawColorEffect(Graphics g, Color c)
            {
                Brush bru = new SolidBrush(c);
                g.FillRectangle(bru, 0, 0, this.Width, this.Height);
                
                g.DrawRectangle(new Pen(ColorManager.GetCellBorderColor()),
                                    0, 0, this.Width - 1, this.Height - 1);
            }
    
            public delegate void MouseEnterHandler(ChessCellUI currCell);
            public event MouseEnterHandler mouseEnterHandler;
    
            public delegate void MouseLeaveHandler(ChessCellUI currCell);
            public event MouseLeaveHandler mouseLeaveHandler;
    
            public delegate void MouseDownHandler(ChessCellUI currCell);
            public event MouseDownHandler mouseDownHandler;
    
            protected override void OnMouseEnter(EventArgs e)
            {
                if (mouseEnterHandler != null)
                    mouseEnterHandler(this);
    
                base.OnMouseEnter(e);
            }
    
            protected override void OnMouseLeave(EventArgs e)
            {
                if (mouseLeaveHandler != null)
                    mouseLeaveHandler(this);
    
                base.OnMouseLeave(e);
            }
    
            protected override void OnMouseDown(MouseEventArgs e)
            {
                if (mouseDownHandler != null)
                    mouseDownHandler(this);
                
                base.OnMouseDown(e);
            }
    
            public void ClearCell()
            {
                _Cell.Piece = null;
                Invalidate();
            }
        }
    Keep moving forward!

    ... Retired ...

  7. #7
    Ngày gia nhập
    12 2006
    Bài viết
    23

    Cám ơn các bạn rất nhiều.

  8. #8
    Ngày gia nhập
    01 2011
    Bài viết
    1

    tôi đang tìm code về việc vẽ và tô mau bàng cờ vua. Bạn nào có code thì vui lòng chia sẽ cho tôi với. thanks very much....!!!!!(nếu có thể thì bạn gởi thẳng vào địa chỉ này giúp tôi ngen, địa chỉ là "nakhoa90@yahoo.com.vn").

  9. #9
    Ngày gia nhập
    01 2008
    Bài viết
    120



    Bạn xem hình ảnh này có đúng ý bạn không? Bạn có thể xem chi tiết tại đây
    Đã mất công nghĩ thì nghĩ mẹ cái thật lớn vào !
    Y!H: trinhhoaithanh1905

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn