洗牌卡组
等级: 3-高级
作为一名Web开发者,您将被要求提出创新的申请,解决现实世界中人们的问题。但很快你会发现,无论你在一个应用程序中加入了多少精彩的功能,如果它不能高效运行,用户就不会使用它。换句话说,一个应用程序的性能与用户是否认为它易于使用之间存在着直接的联系。
洗牌卡组应用程序的目标是找到一种最快的洗牌一副扑克牌的技术,你可以用它来创建游戏应用程序。但更重要的是,这将为你提供衡量和评估应用程序性能的经验。
你的任务是实现性能评估算法、Xorshift伪随机数生成器,如果你选择尝试附加功能,还可以尝试WELL512a.c算法。
用户故事
- [ ] 用户可以看到一个包含文本框的面板,用户可以输入要进行多少轮测试的数字,三个输出文本框分别显示测试的开始时间、结束时间和总时间,以及两个按钮 - 'JS随机'、'Xorshift'。
- [ ] 用户可以从1到10000中选择一个数字,以指定所选随机数执行的次数(或轮数)。
- [ ] 用户可以点击三个按钮中的一个来开始对所选随机数算法的评估。随机数算法将根据用户以上输入的轮数执行。
- [ ] 如果没有输入轮数,用户会看到一个警告消息;如果轮数不在1到10000的范围内,或者不是有效的整数,则会显示警告消息。
- [ ] 用户可以看到一个表格输出区域,其中显示了每个算法的结果 - 算法名称、开始时间、结束时间和总时间。
- [ ] 如果在所有三个测试运行之前改变了轮数,用户会看到一个带有'取消'和'确定'按钮的警告对话框。
- [ ] 用户可以在警告对话框中点击'取消'按钮以取消对话框且无更改。
- [ ] 用户可以在警告对话框中点击'确定'按钮以清除输出区域并关闭警告对话框。
附加功能
- [ ] 用户可以看到一个名为'WELL512a.c'的第三个算法按钮。
- [ ] 开发者应该审查输出并确定为什么最快的算法比最慢的算法更快。
有用的链接和资源
- 随机数生成(维基百科)
- Math.random(MDN)
- Xorshift(维基百科)
- WELL512a.c
- console.time(MDN)
- 使用Chrome DevTools审计功能来测量和优化性能(第一部分)
- 使用Chrome DevTools审计功能来测量和优化性能(第二部分)
示例项目
添加一个或多个与此应用程序具有类似功能的示例项目。这将作为开发者的指南。