用户:RedDragon/Test2:修订间差异
来自Rizline中文维基
更多操作
小 |
小 |
||
| 第193行: | 第193行: | ||
function generateRandomRestrictions() { | function generateRandomRestrictions() { | ||
// 流速选项 | |||
var speeds = Array(40).fill("无限制").concat(Array.from({ length: 91 }, function (_, i) { return (i + 10) / 10 })) | var speeds = Array(40).fill("无限制").concat(Array.from({ length: 91 }, function (_, i) { return (i + 10) / 10 })) | ||
// 随机流速 | |||
document.getElementById('speed-data').textContent = speeds[Math.floor(Math.random() * speeds.length)] | |||
// 随机难度 | |||
document.getElementById('difficulty-data').innerHTML = window.difficultyArray[Math.floor(Math.random() * window.difficultyArray.length)] | document.getElementById('difficulty-data').innerHTML = window.difficultyArray[Math.floor(Math.random() * window.difficultyArray.length)] | ||
var | // MOD权重配置 | ||
var modOptions = [ | |||
{ name: "无MOD", weight: 4 }, | |||
{ name: "镜像模式", weight: 1 }, | |||
{ name: "保护模式", weight: 1 }, | |||
{ name: "Bad保护模式", weight: 1 }, | |||
{ name: "特殊计量条", weight: 1 }, | |||
selectedMods = | { name: "隐藏计量条", weight: 1 } | ||
] | |||
// 其他限制权重配置 | |||
var otherOptions = [ | |||
{ name: "无限制", weight: 6 }, | |||
{ name: "静音", weight: 1 }, | |||
{ name: "单手", weight: 1 }, | |||
{ name: "手持", weight: 1 }, | |||
{ name: "Bad数比Hit数多", weight: 1 }, | |||
{ name: "Combo低于50", weight: 1 }, | |||
{ name: "全拆打法", weight: 1 }, | |||
{ name: "全换打法", weight: 1 }, | |||
{ name: "禁止出张", weight: 1 } | |||
] | |||
// 随机MOD | |||
var selectedMods = selectWeightedItems(modOptions, 0.3, "无MOD") | |||
// 特殊计量条处理 | |||
var hasSpecial = selectedMods.includes("特殊计量条") | |||
if (hasSpecial) { | |||
var specialRates = ["特殊计量条100%", "特殊计量条110%", "特殊计量条120%"] | |||
selectedMods = selectedMods.filter(function (m) { return m !== "特殊计量条" }) | |||
selectedMods.push(specialRates[Math.floor(Math.random() * specialRates.length)]) | |||
} | } | ||
var | // 随机其他限制 | ||
if ( | var selectedOthers = selectWeightedItems(otherOptions, 0.8, "无限制") | ||
updateRestrictionElement('mod-data', selectedMods) | |||
updateRestrictionElement('other-data', selectedOthers) | |||
} | |||
// 加权随机选择函数 | |||
// options: 选项数组 | |||
// singleProbability: 只选择一个项的概率 | |||
// excludeItem: 选择多个时要排除的项 | |||
function selectWeightedItems(options, singleProbability, excludeItem) { | |||
var selectedItems = [] | |||
if (Math.random() < singleProbability) { | |||
var weightedOptions = [] | |||
for (var i = 0; i < options.length; i++) { | |||
for (var j = 0; j < options[i].weight; j++) { | |||
weightedOptions.push(options[i].name) | |||
} | |||
} | |||
selectedItems = [weightedOptions[Math.floor(Math.random() * weightedOptions.length)]] | |||
} else { | } else { | ||
var availableOptions = options.filter(function (opt) { return opt.name !== excludeItem }) | |||
var shuffled = availableOptions.slice().sort(function () { return Math.random() - 0.5 }) | |||
var count = Math.floor(Math.random() * 3) + 2 // 2-4个项 | |||
selectedItems = shuffled.slice(0, Math.min(count, availableOptions.length)).map(function (opt) { return opt.name }) | |||
} | } | ||
if (selectedItems.includes(excludeItem)) { | |||
if ( | selectedItems = [excludeItem] | ||
} | } | ||
var | return selectedItems | ||
if ( | } | ||
function updateRestrictionElement(elementId, items) { | |||
var element = document.getElementById(elementId) | |||
if (items.length === 1) { | |||
element.textContent = items[0] | |||
} else { | } else { | ||
element.innerHTML = '<p>' + items.join('<br>') + '</p>' | |||
} | } | ||
} | } | ||
| 第259行: | 第297行: | ||
神秘的随机挑战! | 神秘的随机挑战! | ||
Ver.1. | Ver.1.2 | ||
<pre> | <pre> | ||
2025年10月21日 (二) 01:17的版本
| 曲目 | |
|---|---|
|
|
|
| 限制 | |
| 难度 | a |
| 流速 | b |
| MOD | c |
| 其他 | d |
神秘的随机挑战!
Ver.1.2
{{Infobox
|name = 随机挑战
|title = 曲目
|titlestyle = background:#ccc
|image = [[File:插画图标.png|100px]]
|imagestyle =
|headerstyle = background:#ccf
|labelstyle = background:#ddf
|header1 = 限制
|label2 = 难度
|data2 = a
|label3 = 流速
|data3 = b
|label4 = MOD
|data4 = c
|label5 = 其他
|data5 = d
|data5 = d
}}
User:RedDragon/Test User:RedDragon/Test1 User:RedDragon/Test2