Example #1
0
        private void deck2PictureBox_MouseMove(object sender, MouseEventArgs e)
        {
            if (GraphicContext.GetCoorX(this, deck2PictureBox) != -1 && GraphicContext.GetCoorY(this, deck2PictureBox) != -1)
            {
                // Con trỏ di chuyển qua ô khác chưa ?
                if (GraphicContext.GetCell(GraphicContext.GetCoorX(this, deck2PictureBox)) != mouseCellX || GraphicContext.GetCell(GraphicContext.GetCoorY(this, deck2PictureBox)) != mouseCellY)
                {
                    // Đặt lại tọa độ con trỏ
                    mouseCellX = GraphicContext.GetCell(GraphicContext.GetCoorX(this, deck2PictureBox));
                    mouseCellY = GraphicContext.GetCell(GraphicContext.GetCoorY(this, deck2PictureBox));

                    deck2PictureBox.Refresh();

                    // Vẽ outline ô đã chọn
                    GraphicContext.DrawOuterFrameCell(mouseCellX, mouseCellY, 5, this, deck2PictureBox);
                }
            }
            else
            {
                // Con trỏ rời bàn cờ
                mouseCellX = 0;
                mouseCellY = 0;

                // Repaint
                deck2PictureBox.Refresh();
            }
        }
Example #2
0
        private void deckPictureBox_MouseMove(object sender, MouseEventArgs e)
        {
            if (currentShip != -1)
            {
                // Check xem con trỏ có ở trên bàn cờ không ?
                if (GraphicContext.GetCoorX(this, deckPictureBox) != -1 && GraphicContext.GetCoorY(this, deckPictureBox) != -1)
                {
                    // Xét ô mà con  trỏ đang nằm
                    if (GraphicContext.GetCell(GraphicContext.GetCoorX(this, deckPictureBox)) != mouseCellX || GraphicContext.GetCell(GraphicContext.GetCoorY(this, deckPictureBox)) != mouseCellY)
                    {
                        // Đặt lại tọa độ
                        mouseCellX = GraphicContext.GetCell(GraphicContext.GetCoorX(this, deckPictureBox));
                        mouseCellY = GraphicContext.GetCell(GraphicContext.GetCoorY(this, deckPictureBox));

                        // Vẽ lại bàn, tránh hiện tượng vẽ full ô
                        deckPictureBox.Refresh();

                        // Nằm ngang
                        if (shipRotation)
                        {
                            // Vẽ tàu với độ dài tương ứng.
                            for (int i = 0; i < Game.shipLengths[currentShip]; i++)
                            {
                                // Nếu không chạm rìa bàn cờ
                                if (mouseCellX + i <= 9)
                                {
                                    //Tô outline cell
                                    GraphicContext.DrawInnerFrameCell(mouseCellX + i, mouseCellY, currentShip, this, deckPictureBox);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                        else
                        {
                            // Nằm dọc.
                            for (int i = 0; i < Game.shipLengths[currentShip]; i++)
                            {
                                if (mouseCellY + i <= 9)
                                {
                                    GraphicContext.DrawInnerFrameCell(mouseCellX, mouseCellY + i, currentShip, this, deckPictureBox);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    // Ra ngoài rìa bàn cờ
                    if (mouseCellX != 0 || mouseCellY != 0)
                    {
                        mouseCellX = 0;
                        mouseCellY = 0;

                        deckPictureBox.Refresh();
                    }
                }
            }
        }