You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为分院帽按钮添加霍格沃茨四学院随机选择功能?

Sorting Hat 按钮交互实现方案

核心:霍格沃茨学院随机选择逻辑

要实现随机分配四学院,只需将学院名称存入数组,通过随机索引选取即可,核心代码如下:

// 定义霍格沃茨四学院
const houses = ['格兰芬多', '斯莱特林', '赫奇帕奇', '拉文克劳'];
// 生成0-3的随机索引,对应数组中的学院
const randomHouse = houses[Math.floor(Math.random() * houses.length)];

完整交互代码实现

结合你需要的提问流程,以下是包含完整交互逻辑的HTML代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Sorting Hat</title>
</head>
<body>
    <button id="sortingBtn">开始分院</button>

    <script>
        const sortingBtn = document.getElementById('sortingBtn');
        const houses = ['格兰芬多', '斯莱特林', '赫奇帕奇', '拉文克劳'];

        sortingBtn.addEventListener('click', function() {
            // 第一步:询问用户姓名
            const userName = prompt('你的名字是什么?');
            if (!userName) return; // 用户取消输入时终止流程

            // 第二步:询问是否想知道学院
            const wantToKnow = confirm('你想知道你的霍格沃茨学院吗?');
            if (wantToKnow) {
                // 随机选择学院
                const randomIndex = Math.floor(Math.random() * houses.length);
                const selectedHouse = houses[randomIndex];
                // 展示结果
                alert(`${userName},你的霍格沃茨学院是……${selectedHouse}!`);
            }
        });
    </script>
</body>
</html>

关键逻辑说明

  • Math.random() 生成0到1之间的随机小数,乘以数组长度(4)后得到0-4的范围,再用Math.floor()取整,得到0、1、2、3四个有效索引,对应数组中的四个学院
  • 使用prompt获取用户姓名,若用户点击取消则直接终止流程,避免后续逻辑出错
  • 通过confirm弹窗获取用户确认,只有用户选择“是”时才执行学院分配和结果展示

内容的提问来源于stack exchange,提问作者Magdalena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:35:31