Kuroda Software Service
四角を表示してみよう
  [サイトマップ]

コンテンツ内メニュー

表示モード 全項表示  部分表示



マークの色と認証の関係

一般公開

無料認証

購入認証


認証についての説明

無料アカウント作成フォーム

有料ページ購入フォーム


ほかのコンテンツトップページ

四角を表示してみよう

迷路作成の準備として関数と配列について学習します。

*        関数って?

 HelloWorldをプログラムでは
CONSOLE.insertAdjacentText("beforeEnd", "Hello World\n");
で文字を表示していますが、もう一行別の文字を表示したいとすればどう書くべきでしょうか?
CONSOLE.insertAdjacentText("beforeEnd", "Other String\n");
を追加すれば確かに別の文字も表示されますが、同じことを2回書いていることに気づくはずです。これは面倒なので、1回にしてしまう工夫が関数です。次に実行するサンプルではPutという関数を定義し、その関数へ文字を渡すことで、表示動作を代行してもらいます。

*        配列って?

 プログラムでは、たくさんのデータを高速に扱う方法として「配列」という工夫があります。100個のデータがある場合、Data1、Data2、...Data100と名前を付けて操作していたのでは面倒ですよね。これをData[0]からData[99]までの100個として扱うのが配列です。配列を宣言する命令は次のように行います。
var Data = new Array(100);


*        2次元配列って?

 配列(1次元配列)は直線的に並んだデータと考えることが出来ます。では、和菓子が箱に入っているように縦横に並んだデータはどうしましょうか?

 JScriptの場合、2次元配列は1次元配列の各要素に、さらに配列を当てはめることで実現しています。

 Data[0]が最初の配列要素ならData[0] = new Array(100);と行うわけです。実際には、すべての1次元配列要素について操作を行いますので、繰り返し処理します。
for(var c = 0; c < Data.length; c++) Data[c] = new Array(100);


*        次のソースコードをhtaファイルにして実行してください。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

<title>Hello World</title>

<meta name="GENERATOR" content="Microsoft FrontPage 5.0">

<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

</head>

<body>

<input type="button" value="Button" ID="Button1" NAME="Button1" onclick="Main()">

<pre id="CONSOLE" style="color: white; background-color: black"></pre>

 

<script language="jscript">

//引数文字列を改行付きで表示

function Put(str)

{

    CONSOLE.insertAdjacentText("beforeEnd", str);

}

 

function Main()

{

    var Width = 10; var Height = 10;

    var Data = new Array(Height);

 

    for(var y = 0; y < Data.length; y++)

    {

        Data[y] = new Array(Width);

        for(var x = 0; x < Data[y].length; x++) Data[y][x] = "■";

    }

   

    Put("2次元配列の内容を表示します\n");

    for(var y = 0; y < Data.length; y++)

    {

        for(var x = 0; x < Data[y].length; x++) Put(Data[y][x]);

        Put("\n");

    }

}

</script>

</body>

</html>



実行結果の例

 

お問い合わせ
©クロダ ソフトウェア サービス programmed by hidebou