斜めできた+問題発生

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

斜めできた。眠い。

スポンサーリンク

斜め

右上

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で取得しようとしてしまって、エラーになってしまっているんだと思う。だから番兵って必要なのか。いや確かめたわけじゃないんだけど。取得できなかったときの処理を入れれば大丈夫かなぁ。大丈夫だといいなぁ。

参考

複数の初期化式と変化式 - 繰り返し処理 - Java入門
for文の初期化式と変化式に複数の式を記述する方法

コメント

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