2007年05月23日

確認ウィンドウを出してみた。

【cinfirm】
前回は「ALERT」という命令文を勉強しました。
今日は「confirm」です。
これは「確認ウィンドウ」と言われているらしいですが、何かの質問があって「OK」「キャンセル」の二つのボタンが表示されます。
実は前の漢字の読みの練習を作ったときは、一度はじめてしまうと途中でやめられないのが非常に気になってしまいました。いや、おもしろくてやめられないのならいいのですが、あれは非常に単調な練習なのにも関わらず、「OK」ボタンを押すとすぐさま次のウィンドウが開かれて、「ESC」キーを押しても全部の練習が終わるまで止まらない、という状況だったのです。

それで、途中に「続けますか?」と確認できたらいいなあ、と思っていました。それに使えそうなのが「confirm」です。さっそく調べてみました。参照元は「イヌでも分かるJavascript講座」です。(どうせイヌだよ)

で、本題ですが、
confirm("つづけますか?");
これだけで確認ウィンドウが出せるようです。

ただ、これだと確認するだけで、「答えによって対応を変える」という肝心の部分がありません。これには、if構文というのが役に立つらしいです。これは、エクセルで経験済みなので、私には簡単でした。要するにこういうことです。
if(信号は赤?) (ブレーキ) (そのまま進む)

つまり、最初の括弧に条件を書いて、その条件どおりの場合は、次の括弧に書いてある処理をして、条件が合わないときは最後の括弧の処理をするわけです。エクセルの場合はカンマ必要でしたが、javascriptの場合はいらないらしい。そうすると、
if (confirm("つづけますか?")) alert(次の漢字を表示); else alert("おつかれさまでした");

となります。

しかし、ここで躓きました。次の漢字を一つだけ表示するのならできるのですが、複数の漢字を並べられないのです。どうも、ifの後は命令文を羅列するだけではいけないようです。

そういえば、エクセルの場合は括弧を何重にも重ねることで、これを回避できました。で、適当にやってみたら、javascriptでもできるようです。最初は[]を使ったのですが、それでも動かなかったので{}を使ってみたら動きました。

全部書いてみると、こんな感じです。
alert("一日");
alert("ついたち");
alert("二日");
alert("ふつか");
alert("三日");
alert("みっか");
alert("四日");
alert("よっか");
alert("五日");
alert("いつか");
if (confirm("つづけますか?"))
{
alert("六日");
alert("むいか");
alert("七日");
alert("なのか");
alert("八日");
alert("ようか");
alert("九日");
alert("ここのか");
alert("十日");
alert("とおか");
}
else alert("おつかれさまでした!");

要するに、一日から五日までの練習が終わったら、一度、練習を続けるか、やめるかが選択できるわけです。

こういう条件分岐ができると、なんか「おれってプログラマー?」と気軽に勘違いできそうですね。

本日の成果物はこちらです。
半分まで練習したら、後半もやるか聞いてくれる単語カード式漢字読み練習ファイルmemoribo2.html

今回の「confirm」に「変数」というのを組み合わせると、どうやら得点を計算してくれるコードも書けそうです。たとえば
一日=ついたち?
三日=ふつか?
というようなウィンドウを出していって、漢字の読みが正しければ「OK」、間違っていれば「キャンセル」を押すように指示するわけです。で、その選択が正しければ得点欄(変数)に一点ずつ加えていけばいいわけです。

そうすると、プログラムが学習者に評価を返すことができるようになるかもしれません。(なります、と言い切りたいところですが、まだやってないので)
posted by 村上吉文 at 04:57 | Comment(3) | TrackBack(0) | 日記 | このエントリーをはてなブックマークに追加
この記事へのコメント
さっそく進化してますね!
もういちどはF5なんですね♪

仮に専門家に頼むにしても
どうゆうことを、どれくらいの苦労で
できるかが推測できそうですね。
Posted by ミ ト at 2007年05月26日 00:10
おはようございます。
「ミト」さんって、この前五年ぶりにお会いした
ミトさんですよね?
カタカナだと、こっちのミトさんかと思ってしまったり。
http://tbn0.google.com/images?q=tbn:ulw5aQ4iNaC7tM:http://www.geocities.co.jp/Playtown-Denei/6783/mito.jpg
ちょっと思っているのは、どうせ言語を学ぶなら英語よりも何らかのプログラミング言語の方が役に立つかもと言うことです。

あ、あと梅田望夫さんのブログにも影響されたかな。
ここんとこです。
http://d.hatena.ne.jp/umedamochio/20070404/p1
Posted by 管理人 at 2007年05月26日 05:23
ありがとうございます。
姫さま!たちはお元気ですか?

英語も、もっとしなければなのですが、
使う機会や身近な達成感がないもので。

学習フラッシュゲームを自分で作れたらと
楽しそうですね。リンク先見てみます。
Posted by ミ ト at 2007年05月27日 11:27
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック