コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: riswot/TestProject
        //ловим клетку над которой отпустили фигуру
        //private void rectangle_Drop(object sender, DragEventArgs e)
        private void rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (IsFigureDragging&&(sender!=null)&&(CellMadeMove!=null)&&(sender is Rectangle))
            {
                Rectangle rec = sender as Rectangle;
                Cell cell = gameBoard.GetCellByRectangle(rec);
                cell.figure = CellMadeMove.figure;
                cell.figure.SetFigureToCell(cell.rown, cell.coln);
                CellMadeMove.SetCellDefaultcolor();
                CellMadeMove.figure = null;
                CellMadeMove = null;
                cell.figure.img = ImgOfDrugginFigure;
                IsFigureDragging = false;

            }
        }
コード例 #2
0
ファイル: MainPage.xaml.cs プロジェクト: riswot/TestProject
        //начинаем тащить фигуру
        private void img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Image img = sender as Image;

            if (img != null)
            {
                //определяем клетку
                CellMadeMove = gameBoard.GetCellByImg(img);

                if (CellMadeMove != null)
                {
                    ImgOfDrugginFigure = img;
                    if (CellMadeMove.GetCellCollor())
                        CellMadeMove.rectangle.Fill = new SolidColorBrush(Colors.Orange);
                    else
                        CellMadeMove.rectangle.Fill = new SolidColorBrush(Colors.Yellow);
                }
                else
                {
                    return;
                }
            }
            else
                return;

            // Запоминаем текущее положение мыши
            lastx = e.GetPosition(null).X;
            lasty = e.GetPosition(null).Y;

            // Начинаем тащить, "хватаем" картинку, что бы можно было её указывать координаты явно
            ((FrameworkElement)sender).CaptureMouse();
            //стивим флаг, что идет перетаскивание
            IsFigureDragging = true;
        }
コード例 #3
0
ファイル: MainPage.xaml.cs プロジェクト: riswot/TestProject
        /// Инициализируем игру
        private void InitGame()
        {
            //очищаем прошлые фигуры
            if (CanvasGameBoard.Children.Count > 0)
            {
                foreach (object obj in CanvasGameBoard.Children)
                {
                    if (obj is Image)
                        (obj as Image).Source = null;
                }
                CanvasGameBoard.Children.Clear();
            }

            //клетка которая сделал ход (в начале игры такой нет)
            CellMadeMove = null;

            //инициализируем новую доску
            gameBoard = new GameBoard();

            //создаем списки фигур
            if (FigureInGame == null)
                FigureInGame = new List<Figure>();
            else
                FigureInGame.Clear();

            if (FigureBit == null)
                FigureBit = new List<Figure>();
            else
                FigureBit.Clear();

            //инициализируем клетки
            for (int i=0; i<=7; i++)
            {
                for (int j=0; j<=7; j++)
                {
                    gameBoard.Cells[i,j] = new Cell(i+1,j+1);
                    //добавляем клетку на холст
                    CanvasGameBoard.Children.Add(gameBoard.Cells[i,j].rectangle);
                    //подписываем клетку на событие отпускание мыши при перетаскивании фигуры
                    gameBoard.Cells[i, j].rectangle.MouseLeftButtonUp += new MouseButtonEventHandler(rectangle_MouseLeftButtonUp);
                }
            }

            //инициализируем фигуры (делаем это отдельно иначе фигуры залазят под клетки)
            for (int i=0; i<=7; i++)
            {
                for (int j=0; j<=7; j++)
                {
                  switch (i)
                        {
                            //черные фигуры
                            case 0:
                                switch (j)
                                {
                                        case 0 : gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 2);
                                            break;
                                        case 1: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 3);
                                            break;
                                        case 2: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 4);
                                            break;
                                        case 3: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 6);
                                            break;
                                        case 4: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 5);
                                            break;
                                        case 5: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 4);
                                            break;
                                        case 6: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 3);
                                            break;
                                        case 7: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 2);
                                            break;
                                        default: break;
                                }
                                break;

                            //черные пешки
                            case 1:
                                gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, true, 1);
                                break;
                            //белые пешки
                            case 6:
                                gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 1);
                                break;
                            //белые фигуры
                            case 7:
                                switch (j)
                                {
                                        case 0 : gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 2);
                                            break;
                                        case 1: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 3);
                                            break;
                                        case 2: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 4);
                                            break;
                                        case 3: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 6);
                                            break;
                                        case 4: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 5);
                                            break;
                                        case 5: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 4);
                                            break;
                                        case 6: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 3);
                                            break;
                                        case 7: gameBoard.Cells[i, j].InitFigure(i + 1, j + 1, false, 2);
                                            break;
                                        default: break;
                                }
                                break;
                            default: break;
                        }
                        if ((gameBoard.Cells[i, j].figure != null) && (gameBoard.Cells[i, j].figure.img != null))
                        {
                            //добавляем фигуру в список фигур в игре
                            FigureInGame.Add(gameBoard.Cells[i, j].figure);
                            //добавляем фигуры на холст
                            CanvasGameBoard.Children.Add(gameBoard.Cells[i, j].figure.img);

                            //подписываем картинку фигуры на события мыши
                            gameBoard.Cells[i, j].figure.img.MouseLeftButtonDown +=new MouseButtonEventHandler(img_MouseLeftButtonDown);
                            gameBoard.Cells[i, j].figure.img.MouseLeftButtonUp +=new MouseButtonEventHandler(img_MouseLeftButtonUp);
                            gameBoard.Cells[i, j].figure.img.MouseMove +=new MouseEventHandler(img_MouseMove);
                        }
                  }
              }
        }
コード例 #4
0
ファイル: MainPage.xaml.cs プロジェクト: riswot/TestProject
        public Figure(int r, int c, bool IsBlack, int fnum, Cell _cell)
        {
            img = new Image();
            isBlack = IsBlack;

            if (_cell != null)
                cell = _cell;

            //привязываем картинку к фигуре
            if (isBlack)
            {
                switch (fnum)
                {

                    case 1: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/bpawn.png", UriKind.Relative));
                        break;
                    case 2: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/btower.png", UriKind.Relative));
                        break;
                    case 4: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/belephant.png", UriKind.Relative));
                        break;
                    case 3: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/bhorse.png", UriKind.Relative));
                        break;
                    case 5: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/bqueen.png", UriKind.Relative));
                        break;
                    case 6: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/bking.png", UriKind.Relative));
                        break;
                    default: break;
                }
            }
            else
            {
                switch (fnum)
                {
                    case 1: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/wpawn.png", UriKind.Relative));
                        break;
                    case 2: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/wtower.png", UriKind.Relative));
                        break;
                    case 4: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/welephant.png", UriKind.Relative));
                        break;
                    case 3: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/whorse.png", UriKind.Relative));
                        break;
                    case 5: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/wqueen.png", UriKind.Relative));
                        break;
                    case 6: img.Source = new BitmapImage(new Uri("/CheesMaster;component/ImagesFigure/wking.png", UriKind.Relative));
                        break;
                    default: break;
                }
            }
            SetFigureToCell(r, c);
            //img.SetValue(Grid.RowProperty, r);
            //img.SetValue(Grid.ColumnProperty, c);
        }