斜めできた+問題発生

スポンサーリンク
スポンサーリンク

斜めできた。眠い。

スポンサーリンク

斜め

右上

for(int urr = (r - 1),urc = (c + 1) ; -1 < urr || urc < 8 ; urr--, urc++){
    tv = getTextViewFromTag(urr, urc);
for (int inurr = (urr + 1),inurc = (urc - 1 ) ; (urr + StoneCount + 1) > inurr || (urc - StoneCount - 1) < inurc; inurr++, inurc--) {
        tv = getTextViewFromTag(inurr, inurc);

右下

for(int drr = (r + 1),drc = (c + 1) ; drr < 8 || drc < 8 ; drr++ , drc++){
    tv = getTextViewFromTag(drr, drc);
for (int indrr = (drr - 1),indrc = (drc - 1 ) ; (drr - StoneCount - 1) < indrr || (drc - StoneCount - 1) < indrc; indrr--, indrc--) {
    tv = getTextViewFromTag(indrr, indrc);

左下

for(int dlr = (r + 1),dlc = (c - 1) ; dlr < 8 || -1 < dlc ; dlr++ , dlc--){
    tv = getTextViewFromTag(dlr, dlc);
for (int indlr = (dlr - 1),indlc = (dlc + 1 ) ; (dlr - StoneCount - 1) < indlr || (dlc + StoneCount + 1) > indlc; indlr--, indlc++) {
    tv = getTextViewFromTag(indlr, indlc);

左上

for(int ulr = (r - 1), ulc = (c - 1) ; -1 <ulr || -1 < ulc ; ulr-- , ulc--){
    tv = getTextViewFromTag(ulr, ulc);
for (int inulr = (ulr + 1),inulc = (ulc + 1 ) ; (ulr + StoneCount + 1) > inulr || (ulc + StoneCount + 1) > inulc; inulr++, inulc++) {
    tv = getTextViewFromTag(inulr, inulc);

見てわかるように引っ繰り返す部分のfor文が長い。見栄え悪いな。やだな。

for文って変数2つ以上使えるんだね。初めて知った。条件式も論理演算子使えばいいと分かったし、発見が多いなぁ。

問題点

てっきり、これで完成~!と思って遊んでみたのだけれど、端っこに石を置こうとしたら強制終了してしまった。おそらくTextViewが無いのにfindviewwithtagで取得しようとしてしまって、エラーになってしまっているんだと思う。だから番兵って必要なのか。いや確かめたわけじゃないんだけど。取得できなかったときの処理を入れれば大丈夫かなぁ。大丈夫だといいなぁ。

参考

for文を使った繰り返し処理
Java で繰り返し処理を行う時に利用できる for 文の使い方について解説します。 for 文は繰り返し処理の中で決められた回数だけ繰り返しを行う場合によく使用されます。

コメント

タイトルとURLをコピーしました