今のところ私はGRIDで定義されたグリッド値を取るコードの作業セットを作成しました。私はこのチェックをしているときに値が複数の範囲外の問題と一致するかどうかは不明です。私はすべてのコードを表示しているわけではありませんが、このコードは、値Eが基点となるグリッドのサイズ全体のforループにラップされています。このforループはxとyを使うので、e =グリッドのその点で見つかった値と仮定します。このコードの冗長性を減らし、機能を失うことなくずっと簡単にすることが可能かどうかは、私が疑問に思っていたこと以外はすべてです。グリッド上で隣り合った8つの値を調べる方が良いですか?
//assume e has been checked to be in bounds already but the outside squares have not
//(and that they need to have there data changed if out of bounds to = e and if not then they need to be changed to the value at that point in the grid)
double a=0,b=0,c=0,d=0,f=0,g=0,h=0,i=0;
boolean ay = false,by= false,cy= false,dy= false,fy= false,gy= false,hy= false,iy= false;
if (x==0)
{a=e;d=e;g=e;
ay = true;dy = true;gy = true;}
if (y==0)
{a=e;b=e;c=e;
ay = true;by = true;cy = true;}
if (x== grid.length-1)
{c= e;f=e;i=e;
cy = true;fy = true;iy = true;}
if (y== grid.length-1)
{g=e;h=e;i=e;
gy = true;hy = true;iy = true;}
if (ay== false)
a =grid(y-1, x-1);
if (by== false)
b= grid(y-1,x);
if (cy== false)
c =grid(y-1,x+1);
if (dy== false)
d =grid(y,x-1);
if (fy== false)
f =grid(y,x+1);
if (gy== false)
g =grid(y+1,x-1);
if (hy== false)
h= grid(y+1,x);
if (iy== false)
i =grid(y+1,x+1);
編集: このコードはグリッドからデータを取得し、傾きの計算のためにそれを使用することを意味します。所定のポイントにデータがない(または範囲外である)場合、データには中心の値が与えられます。このコード部分の目的は、配列のデータをチェックするときにヌルポイントエラーが発生しないようにすることです。
は私がうんざりしてそれを閉じて作るいくつかの質問があります。私が助ける力を持っているよりも勇敢です。 – OldCurmudgeon
皆さんが明確にする必要がある場合は、私のポストに詳細を書き込んだり、ここに掲載して嬉しいです。 –
おそらくちょうどそのコードが**想定しているものを正確に記述することです**。 – OldCurmudgeon