/// <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); }
/// <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();*/ }
/// <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); }
//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; }