JavaScriptでルーレットのプログラムを作る方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaScriptでルーレットのプログラムを作る方法について解説しています。setIntervalメソッドなどを使用すると一定時間ごとにプログラムを動作させることが出来ます。ストップボタンが押されるまで値や画像の表示を変えます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaScriptでルーレットのプログラムを作る方法について解説します。
実際のコードをもとに解説していきますので、理解を深めていきましょう。
また、入門向けのJavaSriptを学習できるサイトも紹介しているので、合わせてご覧ください。
そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJavaScript/jQuery講座の内容をもとにしています。

今回は、JavaScriptに関する内容だね!

どういう内容でしょうか?

JavaScriptでルーレットのプログラムを作る方法について詳しく説明していくね!

お願いします!
ルーレットのプログラムを作る方法
突然ですが、JavaScriptでルーレットのプログラムを作ってみましょう。スタートボタンを押すと数値がランダムに変わり、ストップボタンを押すと停止します。

このような場合、 setInterval() メソッドを使うと便利です。 setInterval() メソッドは一定の間隔ごとに関数を繰り返し呼び出します。間隔はミリ秒で指定します。
var id = setInterval(関数, 間隔);
setInterval() メソッドの戻り値を取得しておくことで、 clearInterval() メソッドにより繰り返し処理を停止させることが出来ます。
clearInterval(id);
詳細は公式ドキュメントを参考にしてください。
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval
実際に作ってみよう
今回のサンプルプログラムでは、setInterval() メソッドを使いルーレットのプログラムを作成します。また、1〜99の乱数の作成には以下のメソッドを使っています。
Math.random()
0以上1未満の乱数を生成する
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Math.floor(x)
小数点以下を切り捨てる
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
サンプルプログラム
それでは、サンプルプログラムを見てみましょう。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<style type="text/css">
.outline {
text-align:center;
}
.roulette {
display: inline-block;
border:1px solid #000000;
font-size:40px;
width:60px;
}
</style>
<script language="javascript" type="text/javascript">
var roulette;
// ルーレットを開始
function start() {
roulette = setInterval(function() {
// 1〜99の範囲でランダムな数値を作成
var idx = Math.floor( Math.random() * 99 ) + 1;
// ルーレット
document.getElementById("roulette").innerHTML = idx;
}, 100);
}
// ルーレットを停止
function stop() {
if(roulette) {
clearInterval(roulette);
}
}
</script>
</head>
<body>
<div class="outline">
<div class="roulette" id="roulette">1</div>
<br />
<input type="button" value="スタート" id="start" onclick="start();"/>
<input type="button" value="ストップ" id="stop" onclick="stop();"/>
</div>
</body>
</html>
実行結果は以下のようになります。複数並べるとスロットゲームもできそうですね。いろいろ改造して楽しんで下さい。

筆者プロフィール
| この記事を監修してくれた方
太田和樹(おおたかずき) 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |

内容分かりやすくて良かったです!

ゆかりちゃんも分からないことがあったら質問してね!

分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaScript・jQueryを使ったWebサービス公開を習得できるオンラインブートキャンプJavaScript/jQuery講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。