vendredi 29 septembre 2017

Get the value of a dice in a 5dice game from another window

I'm developing a 5 dice game in WPF. I have a usercontrol where I made the design of a dice. Then on my mainWindow I added this usercontrol 5 times (so this are my dices).

I have a class named ScoreCheck. In that class I write the code to get the value of the dice (1, 2, 3, 4, 5 or 6).

The problem is that I can do something like this in my usercontrol dice:

int worp = rand.Next(1, 7);
switch (worp)
            {
                case 1:
                    dso1.Fill = new SolidColorBrush(steenkleur);
                    dso2.Fill = new SolidColorBrush(steenkleur);
                    dso3.Fill = new SolidColorBrush(steenkleur);
                    dso4.Fill = new SolidColorBrush(oogkleur);
                    dso5.Fill = new SolidColorBrush(steenkleur);
                    dso6.Fill = new SolidColorBrush(steenkleur);
                    dso7.Fill = new SolidColorBrush(steenkleur);
                    break;

                case 2:
                    dso1.Fill = new SolidColorBrush(steenkleur);
                    dso2.Fill = new SolidColorBrush(steenkleur);
                    dso3.Fill = new SolidColorBrush(oogkleur);
                    dso4.Fill = new SolidColorBrush(steenkleur);
                    dso5.Fill = new SolidColorBrush(oogkleur);
                    dso6.Fill = new SolidColorBrush(steenkleur);
                    dso7.Fill = new SolidColorBrush(steenkleur);
                    break;

                case 3:
                    dso1.Fill = new SolidColorBrush(steenkleur);
                    dso2.Fill = new SolidColorBrush(steenkleur);
                    dso3.Fill = new SolidColorBrush(oogkleur);
                    dso4.Fill = new SolidColorBrush(oogkleur);
                    dso5.Fill = new SolidColorBrush(oogkleur);
                    dso6.Fill = new SolidColorBrush(steenkleur);
                    dso7.Fill = new SolidColorBrush(steenkleur);
                    break;

                case 4:
                    dso1.Fill = new SolidColorBrush(oogkleur);
                    dso2.Fill = new SolidColorBrush(steenkleur);
                    dso3.Fill = new SolidColorBrush(oogkleur);
                    dso4.Fill = new SolidColorBrush(steenkleur);
                    dso5.Fill = new SolidColorBrush(oogkleur);
                    dso6.Fill = new SolidColorBrush(steenkleur);
                    dso7.Fill = new SolidColorBrush(oogkleur);
                    break;

                case 5:
                    dso1.Fill = new SolidColorBrush(oogkleur);
                    dso2.Fill = new SolidColorBrush(steenkleur);
                    dso3.Fill = new SolidColorBrush(oogkleur);
                    dso4.Fill = new SolidColorBrush(oogkleur);
                    dso5.Fill = new SolidColorBrush(oogkleur);
                    dso6.Fill = new SolidColorBrush(steenkleur);
                    dso7.Fill = new SolidColorBrush(oogkleur);
                    break;

                case 6:
                    dso1.Fill = new SolidColorBrush(oogkleur);
                    dso2.Fill = new SolidColorBrush(oogkleur);
                    dso3.Fill = new SolidColorBrush(oogkleur);
                    dso4.Fill = new SolidColorBrush(steenkleur);
                    dso5.Fill = new SolidColorBrush(oogkleur);
                    dso6.Fill = new SolidColorBrush(oogkleur);
                    dso7.Fill = new SolidColorBrush(oogkleur);
                    break;
            }

Console.WriteLine(worp);

So now I get the value of all dices. Something like this: 2 6 4 1 5 1.

But I don't want this. I want them dice by dice on another window so I can check the score. So on my mainWindow I named my dices: dice1, dice2, dice3, dice4 and dice5. So I want to do something like this in my ScoreCheck.

var mwaanspreken = Application.Current.Windows.OfType<MainWindow>().SingleOrDefault();
Console.WriteLine(mwaanspreken.steen1.worp);

But then my output is always 0.

So does anyone know how to get the value of my dice from another window?




Aucun commentaire:

Enregistrer un commentaire