如何编写函数统计值为true的bool数量?宾果游戏行列完成数统计需求
宾果游戏行/列完成数实现方案
完全可以通过函数/属性实现该计数需求,以下提供两种可选实现方案:
方案1:沿用现有零散变量实现
如果暂时不想调整已开发完成的行/列状态赋值逻辑,可直接通过判断对应变量的值累加计数,以类C#语法为例:
// 已完成行数属性 public int CompletedRows { get { int count = 0; if (row1) count++; if (row2) count++; if (row3) count++; if (row4) count++; return count; } } // 已完成列数属性 public int CompletedColumns { get { int count = 0; if (column1) count++; if (column2) count++; if (column3) count++; if (column4) count++; return count; } }
方案2:数组存储优化方案(更推荐)
当前零散定义8个布尔变量的方式扩展性较差,后续调整网格大小、增加新逻辑的成本很高,建议将行、列的完成状态改为数组存储:
// 替换原有8个独立变量的定义,数组下标0对应第一行/列,下标3对应第四行/列 bool[] rows = new bool[4]; bool[] columns = new bool[4];
原有修改行状态的代码同步调整即可,比如原来的row1 = true;改为rows[0] = true;。调整后计数逻辑可以写得非常简洁:
// 已完成行数 public int CompletedRows => rows.Count(r => r); // 已完成列数 public int CompletedColumns => columns.Count(c => c);
如果使用其他编程语言,核心逻辑完全一致,本质就是统计布尔集合中值为true的元素数量即可。
内容的提问来源于stack exchange,提问作者Alex Cretney
相关产品推荐
相关产品推荐

