c++ - 将二维数组与 0 进行比较 (c++)

标签 c++ arrays

我用 do.while 做了一个循环,试图让游戏的变化轮流发生。现在,我想在两个数组中的任何一个变为 0 时停止它,并显示获胜者。这是一款战舰游戏。

do{ for(int k;toc=1;k++){
    objec1();

     if(toc!=1)
      break;

       }

     for(int k;toc2=1;k++){
        objec2();   
        if(toc2!=1){

            break;
           }

           }

        if(jug1[i][j]==0){ //Here is where the loop must stop
    correct1=true;
 cout<<"\n\tEl The player 2 is the winner\n";
 }
if(jug2[i][j]==0){
    correct1=true;
 cout<<"\n\tPlayer 1 is the winner \n";
 }
 } while(!correct1); 

按照我的代码,它不会在必须时停止循环。现在,我想检查当数组为 0 时是否停止循环,更改标志并显示获胜者。原始代码更广泛。认为一切都已正确初始化。

最佳答案

首先,我认为如果您修复格式、将内容分解为函数并使用更好的变量名,您会更容易解决问题。目前很难阅读和理解。

其次,您所说的操作非常昂贵。如果能避免这样检查就更好了。例如,维护非零条目的计数,并将其用作检查条件。或者,如果您有关于哪些战列舰在场的信息,只需查看它们何时都已离开。

无论如何,这里有一个函数可以找出“[二维]数组何时充满0”。您可以从另一个函数调用它。

/**
 * array is a 2-d array used by Battleship game
 * i is the outer array size
 * j is the inner array size
 */
bool isAllZeros(int **array, int i, int j) {
    for (int m = 0; m < i; m++) {
        for (int n = 0; n < j; n++) {
            if (0 != array[i][j]) {
                return false;
            }
        }   
    }   

    return true;
}

关于c++ - 将二维数组与 0 进行比较 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824230/

相关文章:

c++ - 是否应允许模板模板参数接收从先前参数解析的参数?

python - 在 python numpy 数组中指定每个对象的数据类型

javascript - 过滤对象日期时间的javascript数组,这样就没有重叠

arrays - 如何声明将与嵌套对象一起使用的模型?

java - 如何将我的 toString 方法的字符串数组转换为字符串

c++使用计算参数调用父类(super class)构造函数

c++ - 我可以将运算符作为参数发送给函数吗?

c++ - 在 std::string 中是否有等效的方法来执行 CString::GetBuffer ?

javascript - 在 JavaScript 中,如何检查一个数组是否包含另一个数组中的所有元素(包括计数)?

c++ - 高级QCompleter