回答編集履歴
1
並び順を気にしない判定処理に変更
answer
CHANGED
@@ -70,4 +70,45 @@
|
|
70
70
|
|
71
71
|
}
|
72
72
|
|
73
|
+
```
|
74
|
+
|
75
|
+
【追記】
|
76
|
+
並び順を気にしない場合、cpuの各要素と、usersの各要素をそれぞれ単純に比較すれば良いと思います。
|
77
|
+
おそらくユーザー入力で同じ数字を複数入力されていると期待する結果が得られないので、そこは工夫をする必要があると思います。例えば、「ユーザー入力の重複する数字を事前に削除しておく」などです。
|
78
|
+
|
79
|
+
必要な修正箇所だけ以下に抜粋します。
|
80
|
+
|
81
|
+
ユーザー入力の重複する数字を事前に削除する処理
|
82
|
+
```JavaScript
|
83
|
+
// ユーザ入力を受け取るusers配列を作成
|
84
|
+
for (var i = 0; i < 6; i++){
|
85
|
+
users[i] = Number(document.getElementById('user'+(i+1)).value);
|
86
|
+
}
|
87
|
+
// ユーザー入力の重複した数字を削除しておく
|
88
|
+
// users = [1,1,1,1,1,1]のとき、cpuの中に1が一つでもあれば一等賞になってしまうのを防ぐ
|
89
|
+
// users = [1,1,1,1,1,1] --> [1]
|
90
|
+
users = users.filter(function(x, i, self){
|
91
|
+
return self.indexOf(x) === i;
|
92
|
+
});
|
93
|
+
```
|
94
|
+
|
95
|
+
当選結果を判定する箇所
|
96
|
+
```JavaScript
|
97
|
+
// 当選結果を判定する
|
98
|
+
var matched = 0; // 一致した数
|
99
|
+
var is_lucky = false; // ラッキーナンバーが一致したかどうか
|
100
|
+
for(var i = 0; i < 6; i++){
|
101
|
+
if(users[i] === cpu[6]){
|
102
|
+
is_lucky = true;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
for(var i = 0; i < 6; i++){
|
107
|
+
for(var j = 0; j < users.length; j++){
|
108
|
+
if(cpu[i] === users[j]){
|
109
|
+
matched ++;
|
110
|
+
break;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
73
114
|
```
|