Beispiel #1
0
        private void leerTramaPropiedades(String origen, String destino, String segundoByte)
        {
            string propiedadComprada = segundoByte.Substring(3, 5);
            int    posicionPropiedad = board.GetHousePositionFromBits(propiedadComprada);

            if (jugadorLocal.GetIdAsString() != destino)
            {
                byte origenByte   = Convert.ToByte(origen);
                int  origenNumber = Convert.ToInt32(origenByte);

                HouseSquare propiedad = (HouseSquare)board.GetSquares()[posicionPropiedad];
                Trace.WriteLine("Owner: " + origenNumber);
                Trace.WriteLine("Player: " + board.getPlayer(origenNumber).getID());
                propiedad.setOwner(origenNumber);

                this.BeginInvoke((MethodInvoker) delegate()
                {
                    lbxHistoria.Items.Add("Jugador " + origen + " compró la propiedad " + board.GetSquares()[posicionPropiedad].getName());
                });

                this.comPort.Write(Instruccion.FormarTrama(
                                       Instruccion.FormarPrimerByte(origen, destino, Instruccion.PrimerByte.PROPIEDADES),
                                       Convert.ToByte("000" + propiedadComprada, 2)
                                       ), 0, 4);
            }
            else
            {
                this.BeginInvoke((MethodInvoker) delegate()
                {
                    lbxPropiedades.Items.Add(posicionPropiedad + " " + board.GetSquares()[posicionPropiedad].getName());
                    lbxHistoria.Items.Add("Compré la propiedad " + board.GetSquares()[posicionPropiedad].getName());
                });
            }
        }
Beispiel #2
0
        private void leerTramaTirarDados(String origen, String destino, String segundoByte)
        {
            string dado1Str = segundoByte.Substring(2, 3);
            string dado2Str = segundoByte.Substring(5, 3);

            int dado1 = Convert.ToInt32(dado1Str, 2);

            Trace.WriteLine("Dado 1: " + dado1);
            int dado2 = Convert.ToInt32(dado2Str, 2);

            Trace.WriteLine("Dado 2: " + dado2);

            if (jugadorLocal.GetIdAsString() != destino)
            {
                this.BeginInvoke((MethodInvoker) delegate()
                {
                    this.btnRollDices.Enabled      = false;
                    this.btnFinalizarTurno.Enabled = false;
                    lbxHistoria.Items.Add("Jugador que le toca: " + origen);
                });
                dice1.Image = (Image)Properties.Resources.ResourceManager.GetObject("dado" + dado1);
                dice2.Image = (Image)Properties.Resources.ResourceManager.GetObject("dado" + dado2);
                // Actualizamos la posicion del jugador que se esta moviendo
                var jugadorMoviendose = board.getPlayer(Convert.ToInt32(origen, 2));
                Trace.WriteLine("Actualizando posicion del jugador que se movio. Id: " + jugadorMoviendose.getID());

                if ((ultimoOrigen == origen) && (dado1 == dado2))
                {
                    dobles++;
                    if (dobles == 3)
                    {
                        dobles = 0;
                        jugadorMoviendose.SetPoisitionX(9);
                        jugadorMoviendose.SetPoisitionY(360);
                        jugadorMoviendose.setIsInJail(true);
                    }
                }
                else
                {
                    dobles = 0;
                    int newPosition = Board.normalizePosition(jugadorMoviendose.getCurrentPosition() + dado1 + dado2);
                    if (jugadorMoviendose.getCurrentPosition() > newPosition)
                    {
                        jugadorMoviendose.getMoney().addMoney(200);
                    }
                    jugadorMoviendose.setPosition(newPosition);
                    Square pos = board.GetSquares()[newPosition];
                    jugadorMoviendose.SetPoisitionX(pos.GetPositionX());
                    jugadorMoviendose.SetPoisitionY(pos.GetPositionY());
                    if (pos.GetType() == typeof(HouseSquare))
                    {
                        HouseSquare posHouse = (HouseSquare)pos;
                        pos = (HouseSquare)pos;
                        if ((posHouse.getOwner() != jugadorMoviendose.getID()) && (posHouse.getOwner() >= 0))
                        {
                            Trace.WriteLine(jugadorMoviendose, jugadorMoviendose.getName() + " lost " + posHouse.getRent() + " money to " + board.getPlayer(posHouse.getOwner()).getName());
                            jugadorMoviendose.getMoney().substractMoney(posHouse.getRent());
                            board.getPlayer(posHouse.getOwner()).getMoney().addMoney(posHouse.getRent());
                            Trace.WriteLine("Owner money: " + board.getPlayer(posHouse.getOwner()).getMoney().getMoney());
                            actualizarDatosJugadorLocal();
                        }
                    }
                    Trace.WriteLine(String.Format("Posicion del jugador {0}: {1}, {2} (Casilla: {3})",
                                                  jugadorMoviendose.getID(),
                                                  jugadorMoviendose.GetPositionX(),
                                                  jugadorMoviendose.GetPositionY(),
                                                  newPosition));
                }
                tablero.Invalidate();


                this.comPort.Write(Instruccion.FormarTrama(
                                       Instruccion.FormarPrimerByte(origen, destino, Instruccion.PrimerByte.TIRAR_DADOS),
                                       Instruccion.FormarSegundoByteDados(dado1Str, dado2Str)
                                       ), 0, 4);
            }
            else if (jugadorLocal.GetIdAsString() == origen)
            {
                if (jugadorLocal.getIsInJail())
                {
                    this.BeginInvoke((MethodInvoker) delegate()
                    {
                        this.btnRollDices.Enabled      = false;
                        this.btnFinalizarTurno.Enabled = true;
                        lbxHistoria.Items.Add("Carcel");
                    });
                }
                else
                {
                    if (dado1 != dado2)
                    {
                        // Aqui deberiamos hacer las acciones que si de comprar, etc
                        this.BeginInvoke((MethodInvoker) delegate()
                        {
                            this.btnFinalizarTurno.Enabled = true;
                        });
                    }

                    else if (dado1 == dado2)
                    {
                        this.BeginInvoke((MethodInvoker) delegate()
                        {
                            this.btnRollDices.Enabled      = true;
                            this.btnFinalizarTurno.Enabled = false;
                            lbxHistoria.Items.Add("Dobles");
                        });
                    }
                }
            }
            else if (jugadorLocal.GetIdAsString() == destino)
            {
                Trace.WriteLine(String.Format("Jugador local: {0}  Destino: {1}", jugadorLocal.GetIdAsString(), destino));
                this.BeginInvoke((MethodInvoker) delegate()
                {
                    this.btnRollDices.Enabled = true;
                    lbxHistoria.Items.Add("SOY YO: " + jugadorLocal.GetIdAsString());
                });
            }
            else // Creo que nunca llegara hasta aqui
            {
                Trace.WriteLine("No creo que pase");
            }
        }