微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

循环遍历 C# 中的网格按钮以计算黑色方块

如何解决循环遍历 C# 中的网格按钮以计算黑色方块

在这里做错了很多事情,我连续 7 个小时试图解决这个问题,陷入了死胡同。我正在尝试用 wpf c# 制作一个 picross 游戏。我有每一行的标签一个 10x10 的网格,每个单元格中都有按钮,你可以点击这些按钮变成黑色。我想也许我可以做单独的方法来检查行是否正确或列是否正确,我现在正在处理行部分。它看起来像这样:

 public string rowValue(int r) { //finds the value of a row,converts it to a string to see if it matches one of the labels below
          
            int a = 0; //how many of the first chunk are there
            string result = "";

            foreach (System.Windows.Controls.Button myBtn in GrdPuzzle.Children) {
                if (Grid.GetRow(myBtn) == r)
                {
                    if (myBtn.Background == Brushes.Black)
                    {
                        a++;
                    }

                }
           
            }

            result = a.ToString();
            return result;

        }

应该识别标签匹配行并使标签文本绿色的部分如下所示:

        private void playGame() {

            gridInit();
          
            Random r = new Random();
            randomnum = r.Next(1,5);


                switch (randomnum) //randomize the puzzle
                {
                    case 1://bear
                        r1.Content = "1  2";
                        r2.Content = "6";
                        r3.Content = "7";
                        r4.Content = "7";
                        r5.Content = "6";
                        r6.Content = "8";
                        r7.Content = "8";
                        r8.Content = "7  1";
                        r9.Content = "10";
                        r10.Content = "2  2";

                        c1.Content = "1";
                        c2.Content = "3" + Environment.NewLine + "1" + Environment.NewLine + "3";
                        c3.Content = "10";
                        c4.Content = "8";
                        c5.Content = "8";
                        c6.Content = "9";
                        c7.Content = "9";
                        c8.Content = "8";
                        c9.Content = "2" + Environment.NewLine + "2";
                        c10.Content = "3";
                        break;

                    case 2://fox
                        r1.Content = "2  1";
                        r2.Content = "5";
                        r3.Content = "3  5";
                        r4.Content = "3  5";
                        r5.Content = "1  7";
                        r6.Content = "1  7";
                        r7.Content = "6";
                        r8.Content = "7";
                        r9.Content = "6";
                        r10.Content = "1  2";

                        c1.Content = "1" + Environment.NewLine + "1";
                        c2.Content = "2" + Environment.NewLine + "3";
                        c3.Content = "3" + Environment.NewLine + "3";
                        c4.Content = "7";
                        c5.Content = "5";
                        c6.Content = "8";
                        c7.Content = "10";
                        c8.Content = "6" + Environment.NewLine + "3";
                        c9.Content = "5";
                        c10.Content = "4" + Environment.NewLine + "1";
                        break;

                    case 3://dog
                        r1.Content = "2";
                        r2.Content = "2  4";
                        r3.Content = "9";
                        r4.Content = "2  1  2";
                        r5.Content = "8";
                        r6.Content = "5  2";
                        r7.Content = "8";
                        r8.Content = "9";
                        r9.Content = "9";
                        r10.Content = "7";

                        c1.Content = "1" + Environment.NewLine + "8";
                        c2.Content = "10";
                        c3.Content = "2" + Environment.NewLine + "6";
                        c4.Content = "8";
                        c5.Content = "2" + Environment.NewLine + "6";
                        c6.Content = "2" + Environment.NewLine + "1" + Environment.NewLine + "4";
                        c7.Content = "2" + Environment.NewLine + "6";
                        c8.Content = "8";
                        c9.Content = "2" + Environment.NewLine + "2";
                        c10.Content = "0";

                        break;
                    case 4://squirrel
                        r1.Content = "1  2";
                        r2.Content = "2  3";
                        r3.Content = "9";
                        r4.Content = "8  1";
                        r5.Content = "8  1";
                        r6.Content = "6  2";
                        r7.Content = "9";
                        r8.Content = "5";
                        r9.Content = "5";
                        r10.Content = "4";

                        c1.Content = "2" + Environment.NewLine + "1";
                        c2.Content = "7";
                        c3.Content = "6" + Environment.NewLine + "1";
                        c4.Content = "8";
                        c5.Content = "8";
                        c6.Content = "8";
                        c7.Content = "8";
                        c8.Content = "5" + Environment.NewLine + "3";
                        c9.Content = "3" + Environment.NewLine + "2";
                        c10.Content = "4";
                        break;

                }//end switch

            var rLabels = new List<Label> { r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 };
            var cLabels = new List<Label> { c1,c2,c3,c4,c5,c6,c7,c8,c9,c10 };



                foreach (var Label in rLabels)
                {
                    string aa = (Label.Name.ToString()).Substring(1);
                    int bb = Convert.ToInt32(aa);
                if (Label.Content.Equals(rowValue(bb - 1)))
                {
                    Label.Foreground = Brushes.Green;

                }
                else {
                    Label.Foreground = Brushes.Blue;
                }

                }//end foreach loop for rows

                foreach (var Label in cLabels)
                {
                    if (Label.Content.Equals(colValue()))
                    {
                        Label.Foreground = Brushes.Green;
                    }
                }//end foreach loop for columns


        }

它应该遍历所选拼图的标签数组,如果正确,则将一行与 rowValue 方法匹配,但它根本没有检测到任何正确的东西。如果我没有足够的意义,我很抱歉,因为我一整天都在做这件事,而且我太累了,只想解决这个问题。我试过使用调试工具,但我不太了解它,因为我不熟悉这个并且不擅长它,我试图简化/评论部分,我已经上过youtube,我已经用谷歌搜索过,我已经做了几乎所有的事情。如果有人能救我,我会比世界更感激它

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?