-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
101 lines (83 loc) · 2.75 KB
/
script.js
File metadata and controls
101 lines (83 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// 获取DOM元素
const minRangeInput = document.getElementById('min-range');
const maxRangeInput = document.getElementById('max-range');
const drawCountInput = document.getElementById('draw-count');
const startBtn = document.getElementById('start-btn');
const resultNumbersDiv = document.getElementById('result-numbers');
// 添加事件监听器
startBtn.addEventListener('click', drawNumbers);
// 抽签函数
function drawNumbers() {
// 获取输入值
const min = parseInt(minRangeInput.value);
const max = parseInt(maxRangeInput.value);
const count = parseInt(drawCountInput.value);
// 验证输入
if (!validateInput(min, max, count)) {
return;
}
// 生成随机数
const numbers = generateRandomNumbers(min, max, count);
// 显示结果
displayResults(numbers);
}
// 验证输入
function validateInput(min, max, count) {
// 检查是否为有效数字
if (isNaN(min) || isNaN(max) || isNaN(count)) {
alert('请输入有效的数字!');
return false;
}
// 检查范围是否在1-50之间
if (min < 1 || min > 50 || max < 1 || max > 50) {
alert('范围必须在1-50之间!');
return false;
}
// 检查起点是否小于等于终点
if (min > max) {
alert('范围起点不能大于终点!');
return false;
}
// 检查抽签数量是否在1-10之间
if (count < 1 || count > 10) {
alert('抽签数量必须在1-10之间!');
return false;
}
// 检查数量是否不超过范围大小
const rangeSize = max - min + 1;
if (count > rangeSize) {
alert(`抽签数量不能超过范围大小(${rangeSize})!`);
return false;
}
return true;
}
// 生成不重复的随机数
function generateRandomNumbers(min, max, count) {
const numbers = [];
const availableNumbers = [];
// 创建可用数字数组
for (let i = min; i <= max; i++) {
availableNumbers.push(i);
}
// 随机抽取指定数量的数字
for (let i = 0; i < count; i++) {
const randomIndex = Math.floor(Math.random() * availableNumbers.length);
const selectedNumber = availableNumbers.splice(randomIndex, 1)[0];
numbers.push(selectedNumber);
}
// 排序结果
numbers.sort((a, b) => a - b);
return numbers;
}
// 显示结果
function displayResults(numbers) {
// 清空之前的结果
resultNumbersDiv.innerHTML = '';
// 创建并添加结果数字元素
numbers.forEach(number => {
const numberDiv = document.createElement('div');
numberDiv.className = 'result-number';
numberDiv.textContent = number;
resultNumbersDiv.appendChild(numberDiv);
});
}