現在、掃海艇プログラムに取り組んでおり、その中の隣人を明らかにするために少し助けが必要です. 現在、私のプログラムが明らかにするためにできることは次のとおりです
1 は選択されたボタンで、行は入力する必要があるものです。現在、選択したボタンの周りのボタンは、入力できるものです。
必要に応じてコードを投稿できます。
事前に助けてくれてありがとう。
1 は地雷、4 はアレイ上のフラグ付きスポット
public int findneighbors(int row, int col) {
int count = 0;
if (board[row][col] == 2)
try {
if (board[row][col + 1] == 1 || board[row][col + 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row + 1][col + 1] == 1 || board[row + 1][col + 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row + 1][col - 1] == 1 || board[row + 1][col - 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row - 1][col - 1] == 1 || board[row - 1][col - 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row][col + 1] == 1 || board[row][col + 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row + 1][col] == 1 || board[row + 1][col] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row - 1][col] == 1 || board[row - 1][col] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row][col - 1] == 1 || board[row][col - 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (board[row - 1][col + 1] == 1 || board[row - 1][col + 1] == 4)
count ++;
}
catch( ArrayIndexOutOfBoundsException e)
{
}
return count;
}
public int buttonFloodFill(int r, int c)
{
int loopCount = 0;
int rowCount = 1;
int colCount = 1;
while (loopCount < 1)
{
try {
if (g.getFloodValue(r,c + colCount) == true) {
board[r][c + colCount].setText(Integer.toString(g.findneighbors(r,c + colCount)));
board[r][c + colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r,c - colCount) == true) {
board[r][c - colCount].setText(Integer.toString(g.findneighbors(r,c - colCount)));
board[r][c - colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r + rowCount,c + colCount) == true) {
board[r + rowCount][c + colCount].setText(Integer.toString(g.findneighbors(r + rowCount,c + colCount)));
board[r + rowCount][c + colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r + rowCount,c - colCount) == true) {
board[r + rowCount][c - colCount].setText(Integer.toString(g.findneighbors(r + rowCount,c - colCount)));
board[r + rowCount][c - colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r - rowCount,c - colCount) == true) {
board[r - rowCount][c - colCount].setText(Integer.toString(g.findneighbors(r - rowCount,c - colCount)));
board[r - rowCount][c - colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r - rowCount,c + colCount) == true) {
board[r - rowCount][c + colCount].setText(Integer.toString(g.findneighbors(r - rowCount,c + colCount)));
board[r - rowCount][c + colCount].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r - rowCount,c) == true) {
board[r - rowCount][c].setText(Integer.toString(g.findneighbors(r - rowCount,c)));
board[r - rowCount][c].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
try {
if (g.getFloodValue(r + rowCount,c) == true) {
board[r + rowCount][c].setText(Integer.toString(g.findneighbors(r+ rowCount,c)));
board[r + rowCount][c].setEnabled(false);
}
}
catch( ArrayIndexOutOfBoundsException e)
{
}
rowCount ++;
colCount ++;
loopCount ++;
}
return 0;
}