コード例 #1
0
        internal Spielfeld(List <Player> player)
        {
            Spieler        = player;
            aktZug.spieler = 0;
            greenFigures   = new Figure[4] {
                new Figure(-1, ColConst.col_green), new Figure(-2, ColConst.col_green), new Figure(-3, ColConst.col_green), new Figure(-4, ColConst.col_green)
            };
            redFigures = new Figure[4] {
                new Figure(-1, ColConst.col_red), new Figure(-2, ColConst.col_red), new Figure(-3, ColConst.col_red), new Figure(-4, ColConst.col_red)
            };
            blueFigures = new Figure[4] {
                new Figure(-1, ColConst.col_blue), new Figure(-2, ColConst.col_blue), new Figure(-3, ColConst.col_blue), new Figure(-4, ColConst.col_blue)
            };
            yellowFigures = new Figure[4] {
                new Figure(-1, ColConst.col_yellow), new Figure(-2, ColConst.col_yellow), new Figure(-3, ColConst.col_yellow), new Figure(-4, ColConst.col_yellow)
            };

            InitializeComponent();
            greenButtons = new Button[4] {
                btnFigGruen0, btnFigGruen1, btnFigGruen2, btnFigGruen3
            };
            redButtons = new Button[4] {
                btnFigRot0, btnFigRot1, btnFigRot2, btnFigRot3
            };
            blueButtons = new Button[4] {
                btnFigBlau0, btnFigBlau1, btnFigBlau2, btnFigBlau3
            };
            yellowButtons = new Button[4] {
                btnFigGelb0, btnFigGelb1, btnFigGelb2, btnFigGelb3
            };
            aktSpielerLabel.Content    = Spieler[aktZug.spieler].Name;
            aktSpielerLabel.Foreground = ColConst.getColorBrush(Spieler[aktZug.spieler].Farbe);
        }
コード例 #2
0
 private void nextPlayer()
 {
     if (aktZug.spieler >= Spieler.Count - 1)
     {
         aktZug.spieler = 0;
     }
     else
     {
         aktZug.spieler++;
     }
     aktSpielerLabel.Content    = Spieler[aktZug.spieler].Name;
     aktSpielerLabel.Foreground = ColConst.getColorBrush(Spieler[aktZug.spieler].Farbe);
     LblAusgabe.Content         = "Du bist dran";
 }
コード例 #3
0
        /// <summary>
        ///  If you click on the dice, it will roll a number for you. This number is shown to you on the dice, and in a label above there is a text with it aswell.
        ///  If you roll the same number twice, it say it to you
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Dice_Click(object sender, RoutedEventArgs e)
        {
            if (aktZug.zugstatus <= Zugstatus.hausVoll3 && aktZug.zugstatus > Zugstatus.spielVorbei)
            {
                Random dice = new Random();
                int    number;



                number = dice.Next(1, 7);

                switch (number)
                {
                case 1:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border1.png", UriKind.Relative));
                    break;

                case 2:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border2.png", UriKind.Relative));
                    break;

                case 3:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border3.png", UriKind.Relative));
                    break;

                case 4:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border4.png", UriKind.Relative));
                    break;

                case 5:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border5.png", UriKind.Relative));
                    break;

                case 6:
                    ImgDice1.Source = new BitmapImage(new Uri(@"Assets/dieWhite_border6.png", UriKind.Relative));
                    break;
                }

                rolledDice = number;

                if (number != prevnum)
                {
                    LblAusgabe.Content = "Es wurde eine " + number + " gewürfelt!";
                }
                else
                {
                    LblAusgabe.Content = "Schon wieder eine " + number + "!";
                }

                zugkontrolle.checkWurf(aktZug, rolledDice, getAktFigures());
                if (aktZug.zugstatus == Zugstatus.naechsterSpieler)
                {
                    aktZug.zugstatus = Zugstatus.ersterWurf;
                    nextPlayer();
                }
                aktSpielerLabel.Content    = Spieler[aktZug.spieler].Name;
                aktSpielerLabel.Foreground = ColConst.getColorBrush(Spieler[aktZug.spieler].Farbe);



                prevnum = number;
            }
        }
コード例 #4
0
        private void moveFigure(Button figure, int color)
        {
            if (aktZug.zugstatus == Zugstatus.spielVorbei)
            {
                return;
            }
            if (aktZug.zugstatus > Zugstatus.hausVoll3 && color == Spieler[aktZug.spieler].Farbe)
            {
                int selectedFigure = fieldPositions.whichFigure(getAktFigures(), figure.Margin);
                if (aktZug.zugstatus == Zugstatus.rausgehen)
                {
                    if (getAktFigures()[selectedFigure].relPos < 0)
                    {
                        getAktFigures()[selectedFigure].relPos = 0;
                        drawFigure(figure, selectedFigure);
                        aktZug.zugstatus = Zugstatus.ersterWurf;
                    }
                    else
                    {
                        //nachricht: du musst raus
                    }
                }
                else if (aktZug.zugstatus == Zugstatus.vorHausWegziehen)
                {
                    if (getAktFigures()[selectedFigure].relPos == 0)
                    {
                        getAktFigures()[selectedFigure].relPos += rolledDice;
                        drawFigure(figure, selectedFigure);
                        if (rolledDice != 6)
                        {
                            aktZug.zugstatus = Zugstatus.naechsterSpieler;
                        }
                        else
                        {
                            aktZug.zugstatus = Zugstatus.ersterWurf;
                        }
                    }
                    else
                    {
                        //nachricht: du musst weg vorm Haus
                    }
                }
                else if (aktZug.zugstatus == Zugstatus.ziehen)
                {
                    if (getAktFigures()[selectedFigure].relPos > 0 && (getAktFigures()[selectedFigure].relPos + rolledDice) < 40 &&
                        !fieldPositions.checkSameColPos(getAktFigures(), getAktFigures()[selectedFigure].relPos + rolledDice))
                    {
                        getAktFigures()[selectedFigure].relPos += rolledDice;
                        drawFigure(figure, selectedFigure);
                        if (rolledDice == 6)
                        {
                            aktZug.zugstatus = Zugstatus.ersterWurf;
                        }
                        else
                        {
                            aktZug.zugstatus = Zugstatus.naechsterSpieler;
                        }
                    }
                    else if ((getAktFigures()[selectedFigure].relPos + rolledDice) > 39 && (getAktFigures()[selectedFigure].relPos + rolledDice) < 44)
                    {
                        int  tempPos;
                        bool zulaessigInGarage = true;
                        if (getAktFigures()[selectedFigure].relPos + 1 < 40)
                        {
                            tempPos = 40;
                        }
                        else
                        {
                            tempPos = getAktFigures()[selectedFigure].relPos + 1;
                        }

                        while (tempPos <= getAktFigures()[selectedFigure].relPos + rolledDice)
                        {
                            if (fieldPositions.checkSameColPos(getAktFigures(), tempPos))
                            {
                                zulaessigInGarage = false;
                            }
                            tempPos++;
                        }
                        if (zulaessigInGarage)
                        {
                            getAktFigures()[selectedFigure].relPos += rolledDice;
                            drawFigure(figure, selectedFigure);
                            if (aktZug.zugstatus == Zugstatus.spielVorbei)
                            {
                                return;
                            }
                            else if (rolledDice == 6)
                            {
                                aktZug.zugstatus = Zugstatus.ersterWurf;
                            }
                            else
                            {
                                aktZug.zugstatus = Zugstatus.naechsterSpieler;
                            }
                        }
                    }
                }
                if (aktZug.zugstatus == Zugstatus.naechsterSpieler)
                {
                    nextPlayer();
                    aktZug.zugstatus = Zugstatus.ersterWurf;
                }
            }
            aktSpielerLabel.Content    = Spieler[aktZug.spieler].Name;
            aktSpielerLabel.Foreground = ColConst.getColorBrush(Spieler[aktZug.spieler].Farbe);
        }