【发布时间】:2020-06-14 20:06:33
【问题描述】:
所以,我想做的是一场三连胜的比赛,到目前为止,我已经成功地做到了,但是在获得胜利方面我有点挣扎,因为我需要检查一下行、列或对角线的所有元素都是相同的。
到目前为止,我已经设法通过使用布尔值、计数器和 for 循环来使其工作。这是我的代码外观的示例
//Code to check the rows horizontally
public void checkH(){
int cont1 = 0;
Boolean winner1 = false;
for(int i=0;i<size;i++){
if(a[0][i]==1 || a[1][i]==1 || a[2][i]==1){
cont1++;
if(cont1==3){
winner1 = true;
}
所以,正如你们所看到的,我在该代码中所做的是告诉程序,如果任一行中的数组等于 1,并且当它遍历所有位置时是否发生相同的情况行,然后计数器将加一,一旦计数器达到 3,布尔值将为真,并且会有赢家,但这里有一个问题:例如,如果 2D 数组看起来像这样:
int a[][] = {{1,0,0},
{1,1,0},
{0,0,0}};
然后计数器仍然打到三个,即使它们没有对齐。我知道我没有在程序中指定那种条件,但这就是我正在努力解决的问题。我想做的是能够用循环来制作那个条件,这样我就不必用 if 语句填充整个事情。
你们可以在这方面给我的任何线索将不胜感激。提前致谢!
【问题讨论】:
标签: arrays if-statement boolean