示例#1
0
        /// <summary>
        /// Metodo que asigna una imagen de la ficha del domino
        /// a cada ficha del jugador en la mesa, deacuerdo al
        /// valor de cada una de sus fichas.
        /// </summary>
        public void PaintPieceInPlayerHand(int PieceValue, int PiecePosition, int PlayerPosition)
        {
            if (PieceValue == 66)
            {
                return;
            }
            string pictureName;

            //Control[] pictureBoxPieces = PlayerGroupBoxes.ElementAt(PlayerPosition).Controls.Find("pictureBoxPlayer" + PlayerPosition + "Piece" + PiecePosition, false);
            //PictureBox pictureBoxPiece = (PictureBox)pictureBoxPieces[0];

            pictureName = SelectImageFileNameToPaint(PieceValue, PlayerPosition);
            int picturePostion = imageListPieces.Images.IndexOfKey(pictureName);

            //pictureBoxPiece.Image = imageListPieces.Images[picturePostion];


            ShowPiece piece = new ShowPiece(PieceValue, PlayerPosition, PiecePosition, (Bitmap)imageListPieces.Images[picturePostion]);

            if (myPosition == PlayerPosition)
            {
                //piece.MouseDown += new MouseEventHandler(piece_MouseDown);
                //piece.MouseMove += new MouseEventHandler(piece_MouseMove);
                //piece.MouseUp += new MouseEventHandler(piece_MouseUp);

                piece.MouseUp += new MouseEventHandler(piece_Click);
            }

            PlayerGroupBoxes[PlayerPosition].Controls.Add(piece);
        }
示例#2
0
        /// <summary>
        /// metodo que pone la ficha seleccionada por algun otro jugador.
        /// </summary>
        public void PutNewOnTablePiece(PieceData ficha)
        {
            string pictureName    = IdentifyPiecePictureName(ficha.PieceValue);;
            int    picturePostion = this.imageListPieces.Images.IndexOfKey(pictureName);

            //Se crea la ficha
            ShowPiece piece = new ShowPiece(ficha.PieceValue, (Bitmap)imageListPieces.Images[picturePostion], ficha.Rotacion);

            piece.Position(ficha.PosX, ficha.PosY);

            piece.Ubicación = ficha.Ubicacion;

            piece.MouseClick += new MouseEventHandler(piece_Click);


            //Se agrega a la mesa en la posición adecuada
            pnlTable.Controls.Add(piece);

            /* countPiece(piece.Ubicación);
             * lblCount.Text = this.FichasTotalIzq.ToString();*/
        }
示例#3
0
        /// <summary>
        /// metodo que coloca la ficha
        /// doble en la mesa.
        /// </summary>
        public void PutOnTablePieceInitial(int StartPieceInt)
        {
            string pictureName    = IdentifyPiecePictureName(StartPieceInt);;
            int    picturePostion = this.imageListPieces.Images.IndexOfKey(pictureName);


            ///this.pictureBoxPiece0.Image = this.imageListPieces.Images[picturePostion];

            MessageBox.Show("" + StartPieceInt);
            ShowPiece piece = new ShowPiece(StartPieceInt, this.pnlTable, (Bitmap)imageListPieces.Images[picturePostion]);


            //agrega a la ficha el evento del click, que se deberá  agregar cuando se asigna el turno
            //este metodo no debe estar aqui, ya que cuando se pone el doble 6, se pasa turno. Debe estar en el metodo pasar turno.
            piece.MouseClick += new MouseEventHandler(piece_Click);

            //para quitar el evento Click
            //piece.MouseClick -= new MouseEventHandler(piece_Click);

            pnlTable.Controls.Add(piece);
        }
示例#4
0
        //Click a la ficha
        private void piece_Click(object sender, EventArgs e)
        {
            if (!tengoTurno)//si no tengo turno no hago nada
            {
                //MessageBox.Show("Quiero macareno, que no tienes el turno.");
                return;
            }
            Activetile = sender as ShowPiece;
            //Si es la ficha de mi groupBox
            if ((PlayerGroupBoxes.ElementAt(myPosition).Controls.Contains(Activetile)) && !pClick)
            {
                ListPiecePanelCompare = new List <ShowPiece>();

                pClick = true;

                //La añade a la lista para luego compararla
                ListPiecePanelCompare.Add(Activetile);
            }
            //Si es del panel, y se ha hecho click pimero en el groupBox
            else if ((pnlTable.Controls.Contains(Activetile)) && pClick)
            {
                //La añade a la lista para luego compararla
                ListPiecePanelCompare.Add(Activetile);
                //Si hay una ficha en la mesa, muestra el menú para elegir dónde se quiere iniciar el juego:iqda o derecha
                if (pnlTable.Controls.Count == 1)
                {
                    MenuInicial.Show(pnlTable, ListPiecePanelCompare[1].Location.X, ListPiecePanelCompare[1].Location.Y);
                }
                else
                {
                    if (ColocarfichaJuego())
                    {
                        //si colocamos la ficha correctamente, la enviamos a los demas
                        //jugadores la ficha
                        PieceData ficha          = new PieceData(ListPiecePanelCompare[0].valorFicha, 0, 0, this.myPosition);
                        PieceData ficha_anterior = new PieceData((ListPiecePanelCompare[1] as ShowPiece).getValue(), 0, 0, this.myPosition);;
                        ficha.Rotacion  = ListPiecePanelCompare[0].GetRotaciones();
                        ficha.Ubicacion = ListPiecePanelCompare[0].Ubicación;
                        ficha.PosX      = ListPiecePanelCompare[0].Location.X;
                        ficha.PosY      = ListPiecePanelCompare[0].Location.Y;
                        DecrementPlayerAvailablePieces(this.myPosition);
                        //Manda al dispatcher la ficha puesta en el panel
                        dispatcher.RequestPutPiecePlayer(ficha, ficha_anterior);

                        //Si ponemos una ficha en un lado, se suma uno a esa posición, para controlar cuando llegue al borde
                        // countPiece(ficha.Ubicacion);
                        //  lblCount.Text = FichasTotalIzq.ToString();
                    }
                }



                pClick = false;
            }
            else
            {
                MessageBox.Show("¡ Seleccione Primero Una Ficha del Jugador !");
            }

            Activetile = null;
        }