質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

3回答

242閲覧

すごろくゲームのサイコロを徐々に減らしたいです

kkaaa

総合スコア13

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2019/01/05 07:19

次のような東海道53次を旅するゲームを考えているのですが、ルールとして、最初にプレーヤーがもつサイコロの数を3つとして、一回サイコロを振るたびにサイコロを減らしていく、という事を行いたいのですがなかなかうまくいかず、苦戦しています。
最終的にはif(s=0)でゲームオーバーのページに飛ばしたいのですが,
どこを改善するべきでしょうか..
お願いいたします,,,

<html> <head> <meta charset="utf-8"> <title>東海道53次の旅</title> <script src="info.js"></script> </head> <body> <input type="button" value="賽を投げまする" onclick="sai();saih()"> <input type="button" value="賽の数を数える" onClick="howmanysai()"> <input type="button" value="賽のために稼ぎに出る" onClick="location.href='game1.html'"> <script type="text/javascript"> i=0; </script> </body> </html>

goURL

1goURL[0] = "final3.html"; 2goURL[1] = "final4.html"; 3goURL[2] = "final5.html"; 4goURL[3] = "final6.html"; 5goURL[4] = "final7.html"; 6goURL[5] = "final8.html"; 7goURL[6] = "final9.html"; 8goURL[7] = "final10.html"; 9goURL[8] = "final11.html"; 10goURL[9] = "final12.html"; 11goURL[10] = "final13.html"; 12goURL[11] = "final14.html"; 13goURL[12] = "final15.html"; 14goURL[13] = "final16.html"; 15goURL[14] = "final17.html"; 16goURL[15] = "final18.html"; 17goURL[16] = "final19.html"; 18goURL[17] = "final20.html"; 19goURL[18] = "final21.html"; 20goURL[19] = "final22.html"; 21goURL[20] = "final23.html"; 22goURL[21] = "final24.html"; 23goURL[22] = "final25.html"; 24goURL[23] = "final26.html"; 25goURL[24] = "final27.html"; 26goURL[25] = "final28.html"; 27goURL[26] = "final29.html"; 28goURL[27] = "final30.html"; 29goURL[28] = "final31.html"; 30goURL[29] = "final32.html"; 31goURL[30] = "final33.html"; 32goURL[31] = "final34.html"; 33goURL[32] = "final35.html"; 34goURL[33] = "final36.html"; 35goURL[34] = "final37.html"; 36goURL[35] = "final38.html"; 37goURL[36] = "final39.html"; 38goURL[37] = "final40.html"; 39goURL[38] = "final41.html"; 40goURL[39] = "final42.html"; 41goURL[40] = "final43.html"; 42goURL[41] = "final44.html"; 43goURL[42] = "final45.html"; 44goURL[43] = "final46.html"; 45goURL[44] = "final47.html"; 46goURL[45] = "final48.html"; 47goURL[46] = "final49.html"; 48goURL[47] = "final50.html"; 49goURL[48] = "final51.html"; 50goURL[49] = "final52.html"; 51goURL[50] = "final53.html"; 52goURL[51] = "final54.html"; 53goURL[52] = "final55.html"; 54goURL[53] = "final56.html"; 55 56 57n = Math.floor(Math.random() * 5)+1; 58s=3; 59function sai(){ 60 61 alert(n+"が出たみたいですよ!!"); 62 63 if(i+n<54){ 64location.href = goURL[i+n]; 65} 66else{ 67 alert("残念!勢い余って目的地を通り過ぎました。。。"); 68} 69} 70function saih(s){ 71s--; 72 return s; 73} 74 75function howmanysai(){ 76 77 78 alert("あなたの手持ちの賽の数は"+saih(s)+"です♩"); 79 80}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

javascript

1 2<!DOCTYPE html> 3<html lang="ja"> 4<meta charset="UTF-8"> 5<title></title> 6<style> 7ol li { display: none; list-style: none; border:1px green solid; width: 400px; height: 400px;} 8ol li:first-of-type { display: list-item; } 9</style> 10 11 12<body> 13<ol id="hoge"> 14 <li>Start!! 日本橋 15 <li>品川<li>川崎<li>神奈川<li>程(保土)ヶ谷<li>戸塚<li>藤沢<li>平塚<li>大磯<li>小田原<li>箱根<li>三島<li>沼津<li><li>吉原<li>蒲原(かんばら)<li>由比<li>興津(おきつ)<li>江尻<li>府中<li>鞠子(まりこ)<li>岡部<li>藤枝<li>島田<li>金谷<li>日坂(にっさか)<li>掛川<li>袋井<li>見付<li>浜松<li>舞坂<li>新居<li>白須賀<li>二川(ふたがわ)<li>吉田<li>御油(ごゆ)<li>赤坂<li>藤川<li>岡崎<li>池鯉鮒(ちりゅう)<li>鳴海<li><li>桑名<li>四日市<li>石薬師<li>庄野<li>亀山<li><li>坂下<li>土山<li>水口(みなくち)<li>石部<li>草津<li>大津 16 <li>Goal!! 京都三条 17</ol> 18<p> 19 <input type="button" value="賽を投げまする"> 20 <input type="button" value="賽の数を数える"> 21</p> 22<script> 23const 24 COUNT = 3; 25 26let current = 1, cnt = COUNT; 27 28function move () { 29 if (0 < cnt--) { 30 let 31 li = [...document.querySelectorAll ('#hoge li')], 32 rnd = Math.floor (Math.random () * 6) + 1; 33 34 alert ('賽の目は、' + rnd); 35 li.forEach (e => e.style.display = 'none'); 36 current += rnd; 37 if (current >= li.length) 38 current = li.length -1; 39 li[current].style.display = 'list-item'; 40 } 41 else 42 alert ('Game Over!!'); 43} 44 45function disp () { 46 alert ('残りの賽の数は、' + cnt); 47} 48 49 50function handler (e) { 51 switch (e.target.value) { 52 case '賽を投げまする' : 53 move (); 54 break; 55 56 case '賽の数を数える' : 57 disp (); 58 break; 59 } 60} 61 62document.addEventListener ('click', handler, false); 63</script>

投稿2019/01/15 04:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問いただきありがとうございます!
URL引数とかはどうでしょうか
英語のサイトなので分かりやすいと思います
html-online.com
参考リンクだけですがとりあえず取り急ぎ。

追記
初期化部分をこのように

javascript

1n = Math.floor(Math.random() * 5)+1; 2s=parseInt(getUrlParam("s",3)); 3function getUrlParam(parameter, defaultvalue){ 4 var urlparameter = defaultvalue; 5 if(window.location.href.indexOf(parameter) > -1){ 6 urlparameter = getUrlVars()[parameter]; 7 } 8 return urlparameter; 9}

location href部分をこのように
location.href = goURL[i+n]+"?s="+s;
すれば出来ると思います。

投稿2019/01/05 11:03

編集2019/01/05 22:49
bochan2

総合スコア2050

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkaaa

2019/01/05 12:20

回答有難うございます 試してみます
kkaaa

2019/01/05 13:12

至らないことに私には少々難しいかったです。。 もう少し詳しく教えていただけないでしょうか?
kkaaa

2019/01/05 23:43

未熟者の私に回答本当に感謝しております泣 試してみたのですが、ページが飛ばない問題に直面しております。。 自己解決欄に載せてみたので、確認のほどお願いします。。
kkaaa

2019/01/05 23:48

この場合、 function howmanysaiの alert("あなたの手持ちの賽の数は"+〇〇+"です♩"); この〇〇の部分はsにすべきなのかsaih(s)にすべきなのでしょうか? なん度もすみません
guest

0

goURL = new Array(); goURL[0] = "final3.html"; goURL[1] = "final4.html"; goURL[2] = "final5.html"; goURL[3] = "final6.html"; goURL[4] = "final7.html"; goURL[5] = "final8.html"; goURL[6] = "final9.html"; goURL[7] = "final10.html"; goURL[8] = "final11.html"; goURL[9] = "final12.html"; goURL[10] = "final13.html"; goURL[11] = "final14.html"; goURL[12] = "final15.html"; goURL[13] = "final16.html"; goURL[14] = "final17.html"; goURL[15] = "final18.html"; goURL[16] = "final19.html"; goURL[17] = "final20.html"; goURL[18] = "final21.html"; goURL[19] = "final22.html"; goURL[20] = "final23.html"; goURL[21] = "final24.html"; goURL[22] = "final25.html"; goURL[23] = "final26.html"; goURL[24] = "final27.html"; goURL[25] = "final28.html"; goURL[26] = "final29.html"; goURL[27] = "final30.html"; goURL[28] = "final31.html"; goURL[29] = "final32.html"; goURL[30] = "final33.html"; goURL[31] = "final34.html"; goURL[32] = "final35.html"; goURL[33] = "final36.html"; goURL[34] = "final37.html"; goURL[35] = "final38.html"; goURL[36] = "final39.html"; goURL[37] = "final40.html"; goURL[38] = "final41.html"; goURL[39] = "final42.html"; goURL[40] = "final43.html"; goURL[41] = "final44.html"; goURL[42] = "final45.html"; goURL[43] = "final46.html"; goURL[44] = "final47.html"; goURL[45] = "final48.html"; goURL[46] = "final49.html"; goURL[47] = "final50.html"; goURL[48] = "final51.html"; goURL[49] = "final52.html"; goURL[50] = "final53.html"; goURL[51] = "final54.html"; goURL[52] = "final55.html"; goURL[53] = "final56.html"; n = Math.floor(Math.random() * 5)+1; s=parseInt(getUrlParam("s",3)); function getUrlParam(parameter, defaultvalue){ var urlparameter = defaultvalue; if(window.location.href.indexOf(parameter) > -1){ urlparameter = getUrlVars()[parameter]; } return urlparameter; } function sai(){ alert(n+"が出たみたいですよ!!"); if(i+n<54){ location.href = goURL[i+n]+"?s="+s; } else{ alert("残念!勢い余って目的地を通り過ぎました。。。"); } } function saih(s){ s--; return s; } function howmanysai(){ alert("あなたの手持ちの賽の数は"+saih(s)+"です♩"); } function chance(){ x=Math.floor(Math.random() * goURL.length); location.href = goURL[x]; }

投稿2019/01/05 23:40

kkaaa

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問