Poznakomlus,
очередная версия ))) проверьте будет ли у вас больше 7 ходов
Цитата:
|
вариант поиграть с подсчётом шагов первая цифра всего угадано пробел быков (на своём месте) пример 3 1 -- 3 угадано 1 на своём месте 2 0 две угадано на своём месте нет .
|
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
function buildAnswers() {
for (var a = [], d = 1; 10 > d; ++d)
for (var b = 0; 10 > b; ++b)
if (b != d)
for (var c = 0; 10 > c; ++c)
if (c != b && c != d)
for (var e = 0; 10 > e; ++e) e != c && e != b && e != d && a.push([d, b, c, e]);
return a
}
var arr = buildAnswers(),
z = [1, 2, 3, 4, 5, 6, 7, 8, 9].sort(function() {
return Math.random() - .5
});
z.push(z[Math.floor(Math.random()*4)],z[Math.floor(Math.random()*4)+4],0);
function getNum(a) {
return z.length && a.length > 10 ? z.splice(0, 4) : a[Math.floor(Math.random() * a.length)]
}
function test(a, d, b) {
return function(c) {
for (var e = 0, g = 0, h, f = 0; 4 > f; f++) a[f] == c[f] && g++, (h = (a[0] - c[f]) * (a[1] - c[f]) * (a[2] - c[f]) * (a[3] - c[f])) || e++;
return g != b ? !1 : e >= d
}
}
function filterAnswers(a, d) {
for (var b = a.length - 1; - 1 < b; b--) d(a[b]) || a.splice(b, 1)
};
for (var i = 1; arr.length > 1; i++) {
var num = getNum(arr),
data = prompt("всего запятая быков в числе " + num, "").split(/\D+/)
filter = test(num, data[0], data[1]);
filterAnswers(arr, filter)
document.write(num + " " + data + " осталось вариантов " + arr.length + " шаг " + i + "<br>");
}
document.write("<br>осталось вариантов " + arr.length + "<br>" + arr.join("<br>"));
</script>
</body>
</html>