function:一般には関数、tonyuではメソッド(method) 。 同じ処理を何回も書くのは、面倒&バグの元。 その処理を何処かに別に書いておいて、それを呼び出せば楽だし、 その処理をキチンとバグ潰しておけば、デバッグも早いじゃんか〜てことで定義する。 メソッド化 1行埋まっているか判定するメソッドで説明  とりあえず function メソッド名() {} を書いておく function ckFill() {}  {}の中にいつもの様に処理を記述  まず1マス function ckLine(){ e=$map.get(1,s)!=$pat_tile+6; // map(1,s)は空白? }  一行 function ckFill() { for(x=1; x<=14; x++) { if($maap.get(x,s)==$pat_tile+6) break; } e=x>14; // 判定結果の代入。ifやwhile以外でも、||等もOK。 }  ローカル変数を定義:メソッド内だけで有効な変数の定義(var宣言) function ckFill() { var x,e; for(x=1; x<=14; x++) { if($maap.get(x,s)==$pat_tile+6) break; } e=x>14; }  戻り値を定義(return文):ない場合もある  またreturn文はメソッドの処理を抜ける文でもある。 function ckFill() { var x,e; for(x=1; x<=14; x++) { if($maap.get(x,s)==$pat_tile+6) break; } e=x>14; return e; }  引数を定義:拡張性を考慮する(後々変えられると便利そうな値は引数)  この例では、行位置、桁の左、桁の右、空白のパターン番号が渡せるといいかも s→y, $pat_tile+6→sp, 1→l, 14→r function ckFill(l,r,y,sp) { var x,e; for(x=l; x<=r; x++) { if($maap.get(x,y)==sp) break; } e=x>r; return e; }  出来上がり 呼び出し元では fl=1; fr=14; ft=1; fb=18; for(s=ft; s<=fb;s++) { if(ckFill(fl,fb,s,$pat_tile+6)) delLine(fl,fr,r,s); // 埋まってる行は削除 } みたいにしてね