
上から 1, 2, 3, 4 桁で、ナンバーズ 4 の円盤と同じ数字の並びを配列にしてみました
let num_1_digit = [ 1, 0, 9, 8, 7, 6, 5, 4, 3, 2 ];
let num_2_digit = [ 1, 8, 5, 2, 9, 6, 3, 0, 7, 4 ];
let num_3_digit = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ];
let num_4_digit = [ 1, 4, 7, 0, 3, 6, 9, 2, 5, 8 ];
現在、作っている部分は以下です。
円盤は 1 秒間、約 3 回転している。
円盤が止まるまでは 約 0.2 秒。
let i = 0;
let d = new Date
while ( new Date() - d < 200 ) {
}
円盤が止まるまでは 約 0.2 秒は上記で概ね、良いと思いますが、
円盤の秒間、約 3 回転を表現する方法がわかりませんでした。
わかる方おりましたら、参考にさせて下さい。
宜しくお願い致します
No.3ベストアンサー
- 回答日時:
面白そうだったので、作ってみました。
わたしはナンバーズ4の抽選を見たことが無いので、
合っているかどうかは分かりませんが、
https://ts4-net.com/husya.html
このサイトを参考に、
>みずほ銀行のお嬢さんが スイッチを押すと矢が発射され
>発射間隔は約1秒ぐらいで
という条件を付加しています。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>numbers4</title>
</head>
<body>
<button onclick="roulette()">ルーレットを回す</button>
<button onclick="arrow()">矢を放つ</button>
<p id="num0"></p>
<p id="num1"></p>
<p id="num2"></p>
<p id="num3"></p>
<script>
let num_digit = [[1, 0, 9, 8, 7, 6, 5, 4, 3, 2],
[1, 8, 5, 2, 9, 6, 3, 0, 7, 4],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 4, 7, 0, 3, 6, 9, 2, 5, 8]];
let i = [0, 0, 0, 0]; // 初期値
const len = num_digit[0].length // 10個
const speed = 1000 / (3 * len); // 1秒に3回転
const timeLag = 200; // 0.2秒
let timer = []; // setIntervalする
let num = [];
num[0] = document.getElementById('num0');
num[1] = document.getElementById('num1');
num[2] = document.getElementById('num2');
num[3] = document.getElementById('num3');
function roulette() {
for (let j = 0; j < 4; j++) {
timer[j] = window.setInterval(function () {
i[j]++; // 1足して
i[j] %= len; //10で割った余り
num[j].textContent = num_digit[j][i[j]];
}, speed);
}
}
function arrow() {
for (let j = 0; j < 4; j++) {
setTimeout(function () {
window.clearInterval(timer[j]);
num[j].textContent = num_digit[j][i[j]];
}, timeLag + 1000 * j);
}
}
</script>
</body>
</html>
No.2
- 回答日時:
> このようなループは不可能ということですね。
そういう事、ですね。
大体、コンピュータ自体、計算が苦手な人間に代わり、計算を如何に早く終了するか、と言う事が主眼に設計されてます。
当然、単位時間毎にどれだけ大量の計算が行われるのか、と言うのが目的であって、貴方の言うように「時間に束縛されて計算する」ってのは本来の使用目的から言うと明らかにズレてるんですよ。
まぁ、大昔のPCだと例えばNEC-9801とかで前期型のマシンで動いてたゲームを後期型に持ってきて動かすとクロック数が違い過ぎてゲームが早回しになっちゃうような事があって、わざとwait命令(何秒間か停止させる)を挟んで、一定速度にする、なんつーテクニックもあった事もあったんですが、今のPCの環境だと推奨されません。
昔のPCだとシングルタスクだったんで、どっちみちゲームを起動すればPC丸ごとゲームに持っていかれたんで、wait命令を乱発しても他のソフトに影響は無かったんですが、今だとマルチタスク前提なんで、一つのソフトで「パフォーマンスをワザと落として」全体に影響を与える、と言うのは好まれないのです。
いずれにせよ、例えばこれはダイドードリンコの「当たり付き自販機」なんかでも同じなんですよ。貴方が硬貨入れて飲みたい缶のボタンを押した時点で全ての計算は終わってる。
結局貴方がその後「当たり」なのか「ハズレ」なのか待ってる時間は実は無駄で単なる演出です。ライトがピカピカ付いて光ってる部分が移動してても、これは「計算中」を表していない。もう結果は出てるのです。そういう演出、なだけですね。
同様に、コンピュータのおみくじなんかも、色々と演出されていますが、マジでスイッチ押した時点で結果は既に出てるのです。
写真: 桃太郎電鉄。
サイコロが転がる演出が成されてるが、これもコントローラのボタンが押された時点で「何の目が出るのか」は既に決定されている。「転がってる」のは演出であり、止まった目が「既に決定してる結果」と一致するようにプログラムされてるに過ぎない。

No.1
- 回答日時:
あー、分かった。
何やりたいか分かったわ。この質問でしょ?
https://oshiete.goo.ne.jp/qa/12530217.html
なんでそんな事したいんだろ、とか不思議に思ってたんだけど、合点が行ったわ。
なるほど。
ところで、残念なお知らせがあります。
こういうのって確かにあるよね?ゲームとかで。
でもね。実際はね。
「一瞬に計算は終わってる」の。
上のリンクで #1さんが言ってるように乱数使って一瞬に計算してるんですよ。
でね。例えばルーレットみたいになってるとして。
時間かけて回ってるのは映像的な演出なんですよ。実際は内部的にはもう、例えばスタートボタン的なモノ押したら結果はすぐ出てるのね。
だからこのテのゲームってのは「内側のロジック」と「映像的な演出」ってのが分離してるんです。もう結果は最初っから決まってるんだけど、そうじゃなく見えるように演出してるだけなんですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト配列の各メンバを...
-
Outlookのアカウントがあるとメ...
-
スマホ上で、左右スワイプで次...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンのID名を取得するには?
-
SCRIPT5007: 未定義または NULL...
-
JavaScriptでiframeの内容を「...
-
フォーカス移動抑止について
-
初心者javascript ウィンドウサ...
-
クリックすると別の文章を表示する
-
キーを押している間の時間を計...
-
JavaScriptからローカルにテキ...
-
ボタンを押してテキストエリア...
-
js doctype宣言を打つとプログ...
-
js プロトタイプ
-
ジャバスプリクトの質問
-
3の倍数の合計
-
「オブジェクトを指定してくだ...
-
Ajax:FireFoxだと動作しない
-
function の return 値を表示し...
-
iframeの中から親ページをスム...
-
【jquery】EasyUIのSubGridにMy...
-
jQuery 書き換えた文字列の内部...
-
リンクをクリックしてページの...
おすすめ情報