プログラミングのハ ..
[2ch|▼Menu]
642: ボウズハゼ(宮城県)
10/06/19 17:35:15.38 TbsXmvj3
>>641
どのonclickも同じ関数を(クリックされた場所の番号を渡して)呼ぶようにして、その関数内で処理を分けるようにすればいい。
例えば関数fnを用意しておいて、ブロック表示の部分をこういうふうに書く。ちなみに固有のidを割り振ってある。
    //ブロック表示
    for(i=1; i<=yy; i++){
        for(j=1; j<=xx; j++){
            document.write('<span id="block_'+i+'_'+j+'" class="+empty[i][j]+" onClick="fn('+i+','+j+')">#</span>');
        }
        document.write("<br>");
    }
これで一つ一つのブロックが <span id="block_i_j" 〜〜 onclick="fn(i,j)">#</span> の形になった。
んで関数fnはこんな感じにする
    function fn(i,j)
    {
        if ( ita[i][j] == 9)
            alert("アウトーーーーーーーーーー!!!!!!");
        document.getElementById("block_"+i+"_"+j).innerHTML = ita[i][j];
    }
document.getElementById("block_"+i+"_"+j) でi,j番目のブロックのエレメントにアクセスできるので、後から中身を好きにできる。
fn(i,j) が "i,j番目のブロックを開く"って意味なら、fnを再帰的に呼び出して"ある条件を満たす他のブロックを一気に開く"って操作もできる。
    function fn(i,j)
    {
        if ( ita[i][j] == 9)
            alert("アウトーーーーーーーーーー!!!!!!");
        document.getElementById("block_"+i+"_"+j).innerHTML = ita[i][j];
        
        if(ita[i][j]==0)
            fn(i+1, j)
    }
↑クリックした場所が0ならもう1マス隣のを開く、とか。こんな感じでがんばれ。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4150日前に更新/150 KB
担当:undef