さて、不定期にお届けしている「実践!プログラミング」、今回は「ロト6の当選番号を予想する」の第2回です。
前回、乱数によりロト6の番号を予想するJavaScriptを書いてみました。
でも、このプログラムには大きく2つ不満点がありました。
ひとつは、番号がソートされていないので、ロト6の申込カードに予想番号をマークしにくいという点、そしてもう一つは、乱数ですので、数字が重複する場合があるという点です。
この二つの不満点を解消したロト6当選番号予想サイトVersion2を作ってみました。
コードは以下の通りです。
コードの中身
配列要素に重複があったら、再度配列要素を作り直すことを考えたので、「do{}while()」文を使ってみました。
「do{}while()」文は()内の条件が真である間{}内の処理を繰り返すので、()内に重複有無の判定条件を入れてあります。
ソートですが、配列要素を並び替えるには「配列名.sort()」とすればよいのですが、このソートは、数値を文字列に変換してからソートするので、これだけだと、例えば[20,7,1]という配列を昇順にソートすると[1,20,7]になってしまうのだそうです。
その問題を解決する方法を使っていますが、正直MDNの解説を読んでもよく分からなかったのでMDNの関数をそのまま使っています(^^;
詳しくは以下のサイトをご覧になるか、テックアカデミー無料体験をどうぞ。