回答編集履歴

6

文言の修正

2017/10/11 17:27

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- アドバイスするだけのつもりでしたが作ってしまいました。。すみません。。(^ ^;
13
+ アドバイスするだけのつもりでしたが作ってしまいました。。(^ ^;
14
14
 
15
15
 
16
16
 
@@ -136,4 +136,4 @@
136
136
 
137
137
 
138
138
 
139
- コード全体としては参考程度にどうぞ。
139
+ 「あいこの時やり直し」等は入れていないです。コード全体は参考程度にどうぞ。

5

リンクの追加

2017/10/11 17:27

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -1,4 +1,8 @@
1
1
  `setInterval`を使えばいいと思います。
2
+
3
+
4
+
5
+ [WindowOrWorkerGlobalScope.setInterval()](https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval)
2
6
 
3
7
 
4
8
 
@@ -62,9 +66,9 @@
62
66
 
63
67
  disp2.innerHTML = "";
64
68
 
65
- disp2.innerHTML += "あなた : " + arr[i] + "<br />";
69
+ disp2.innerHTML += "PC : " + pc_hand + "<br />";
66
70
 
67
- disp2.innerHTML += "PC : " + pc_hand + "<br /><br /><br />";
71
+ disp2.innerHTML += "あなた : " + arr[i] + "<br /><br />";
68
72
 
69
73
  disp2.innerHTML += "この勝負、"+["引き分け","勝ち","負け"][(function(pc,ply){
70
74
 
@@ -104,6 +108,8 @@
104
108
 
105
109
  <br />
106
110
 
111
+ <br />
112
+
107
113
  <div id="display2"></div>
108
114
 
109
115
  </body>

4

コード修正

2017/10/11 17:23

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -66,15 +66,15 @@
66
66
 
67
67
  disp2.innerHTML += "PC : " + pc_hand + "<br /><br /><br />";
68
68
 
69
- disp2.innerHTML += "この勝負、"+["引き分け","勝ち","負け"][(function(n,m){
69
+ disp2.innerHTML += "この勝負、"+["引き分け","勝ち","負け"][(function(pc,ply){
70
70
 
71
- var r = m-n;
71
+ var r = pc-ply;
72
72
 
73
73
  while(r<0) r+=3;
74
74
 
75
75
  return r;
76
76
 
77
- })(i,arr.indexOf(pc_hand))];
77
+ })(arr.indexOf(pc_hand),i)];
78
78
 
79
79
  disp2.innerHTML += "<br /><button onclick='game();'>リセット</button>";
80
80
 
@@ -131,5 +131,3 @@
131
131
 
132
132
 
133
133
  コード全体としては参考程度にどうぞ。
134
-
135
- (※判定部分がうまくいっていないので修正中です。まだ完成していません。。すみません)

3

注釈追記

2017/10/11 17:06

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -131,3 +131,5 @@
131
131
 
132
132
 
133
133
  コード全体としては参考程度にどうぞ。
134
+
135
+ (※判定部分がうまくいっていないので修正中です。まだ完成していません。。すみません)

2

ミスの修正

2017/10/11 16:53

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -118,7 +118,7 @@
118
118
 
119
119
 
120
120
 
121
- コード中の`var timer setInterval(...,250);`となっているところで一定間隔での処理を開始しています。
121
+ コード中の`var timer = setInterval(...,250);`となっているところで一定間隔での処理を開始しています。
122
122
 
123
123
  `...`のところには実行したい処理の関数を渡してください。(例えば`hoge()`という関数を渡したければ`hoge`と書いてください。)
124
124
 

1

コードの編集など

2017/10/11 16:39

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  <script>
26
26
 
27
- window.addEventListener("load",function(){
27
+ function game(){
28
28
 
29
29
  var arr=["グー","チョキ","パー"];
30
30
 
@@ -32,7 +32,11 @@
32
32
 
33
33
  var disp2 = document.getElementById("display2");
34
34
 
35
+ disp2.innerHTML = "";
35
36
 
37
+
38
+
39
+ // setIntervalで処理を繰り返させる -> timerにidを代入
36
40
 
37
41
  var timer = setInterval(function(){
38
42
 
@@ -44,23 +48,13 @@
44
48
 
45
49
 
46
50
 
47
- function judge(n,m){
48
-
49
- var r = m-n;
50
-
51
- while(r<0) r+=3;
52
-
53
- return r;
54
-
55
- }
56
-
57
-
58
-
59
51
  var btns = document.querySelectorAll("input");
60
52
 
61
53
  Array.prototype.forEach.call(btns,function(elm,i){
62
54
 
63
55
  elm.addEventListener("click",function(){
56
+
57
+ // 止めたいときにはclearIntervalに止めたいidを代入
64
58
 
65
59
  clearInterval(timer);
66
60
 
@@ -72,13 +66,27 @@
72
66
 
73
67
  disp2.innerHTML += "PC : " + pc_hand + "<br /><br /><br />";
74
68
 
75
- disp2.innerHTML += "この勝負、"+["引き分け","勝ち","負け"][judge(i,arr.indexOf(pc_hand))];
69
+ disp2.innerHTML += "この勝負、"+["引き分け","勝ち","負け"][(function(n,m){
70
+
71
+ var r = m-n;
72
+
73
+ while(r<0) r+=3;
74
+
75
+ return r;
76
+
77
+ })(i,arr.indexOf(pc_hand))];
78
+
79
+ disp2.innerHTML += "<br /><button onclick='game();'>リセット</button>";
76
80
 
77
81
  },false);
78
82
 
79
83
  });
80
84
 
85
+ }
86
+
87
+
88
+
81
- },false);
89
+ window.addEventListener("load",game,false);
82
90
 
83
91
  </script>
84
92
 
@@ -110,4 +118,16 @@
110
118
 
111
119
 
112
120
 
121
+ コード中の`var timer setInterval(...,250);`となっているところで一定間隔での処理を開始しています。
122
+
123
+ `...`のところには実行したい処理の関数を渡してください。(例えば`hoge()`という関数を渡したければ`hoge`と書いてください。)
124
+
125
+ `250`のところでは間隔を指定しています。ミリ秒で与えてください。(`250`は0.25秒のことです。)
126
+
127
+
128
+
129
+ `clearInterval(timer)`で処理を止めています。
130
+
131
+
132
+
113
- 参考程度にどうぞ。
133
+ コード全体としては参考程度にどうぞ。