あなたは「KMines」というコンピュータのゲームを知っている人が多く、Android Studioで携帯電話用のアプリケーションを作成します。 ゲームはうまくいきますが、選択したボックスの周囲にどれくらいの爆弾があるかを数えるコントロールが非常に多く、遅れているためです。 私は助けが必要です。ボックスに爆弾が入っていなければ、私のコントロールです。私はそれらを減らす方法を探しています。"KMines"ゲームで爆弾の数を数えるコントロールを減らす
if(mat_prato[y][x] == 0){
if(y == 0 && x == 0){ //The four corners of the map
if(mat_prato[y][x + 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
if(mat_prato[y + 1][x + 1] == 9)
c = c + 1;
} else if(y == 0 && x == 9){
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
if(mat_prato[y + 1][x- 1] == 9)
c = c + 1;
} else if(y == 9 && x == 9){
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x- 1] == 9)
c = c + 1;
} else if(y == 9 && x == 0){
if(mat_prato[y][x + 1] == 9)
c = c + 1;
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x+ 1] == 9)
c = c + 1;
} else if(y == 0 && 0 < x && x < 9){ // The sides of the map
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
if(mat_prato[y + 1][x + 1] == 9)
c = c + 1;
if(mat_prato[y][x + 1] == 9)
c = c + 1;
} else if(y == 9 && 0 < x && x < 9){
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y - 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x + 1] == 9)
c = c + 1;
if(mat_prato[y][x + 1] == 9)
c = c + 1;
} else if(x == 0 && 0 < y && y < 9){
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x + 1] == 9)
c = c + 1;
if(mat_prato[y][x + 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x + 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
} else if(x == 9 && 0 < y && y < 9){
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
} else if(0 < x && x < 9 && 0 < y && y < 9){ // The other cell in the center
if(mat_prato[y - 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y - 1][x] == 9)
c = c + 1;
if(mat_prato[y - 1][x + 1] == 9)
c = c + 1;
if(mat_prato[y][x - 1] == 9)
c = c + 1;
if(mat_prato[y][x + 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x - 1] == 9)
c = c + 1;
if(mat_prato[y + 1][x] == 9)
c = c + 1;
if(mat_prato[y + 1][x + 1] == 9)
c = c + 1;
}
if(c == 0){
mat_prato[y][x] = 10;
mThumb[position] = R.drawable.empty;
} else if(c == 1){
mat_prato[y][x] = 1;
mThumb[position] = R.drawable.one;
} else if(c == 2){
mat_prato[y][x] = 2;
mThumb[position] = R.drawable.two;
} else if(c == 3){
mat_prato[y][x] = 3;
mThumb[position] = R.drawable.three;
} else if(c == 4){
mat_prato[y][x] = 4;
mThumb[position] = R.drawable.four;
} else if(c == 5){
mat_prato[y][x] = 5;
mThumb[position] = R.drawable.five;
} else if(c == 6){
mat_prato[y][x] = 6;
mThumb[position] = R.drawable.six;
} else if(c == 7){
mat_prato[y][x] = 7;
mThumb[position] = R.drawable.seven;
} else if(c == 8){
mat_prato[y][x] = 8;
mThumb[position] = R.drawable.eight;
}
}
forループを使用します。また、コードを確実に(ループを使用して)クリーンアップすることができますが、ループにはほぼ同じ時間がかかります。したがって、これは遅い原因ではありません。 – tucuxi
どのように? exp37解決を –