MATLAB社区

MATLAB,社区等

建立一个测试的MATLAB博览会

本月初,我有幸参加了MATLAB世博会在英国(EXPO是每年在英国举行的为期一天的用户会议)。今年,在展厅里,围绕着一组特殊的显示器,有一种激动人心的嗡嗡声。这是一个MATLAB EXPO Quiz游戏。我邀请了这款游戏的发起者之一,GianCarlo Pacitti在这里写了一些关于他们是如何创造它的内容。他优雅地答应了。

GianCarlo是我们英国剑桥办公室的一名应用工程师。他对控制、建模和仿真有着浓厚的兴趣。作为Simulink的专家用户,他也喜欢构建MATLA金宝appB应用程序。他帮助开发了这个问答游戏,在这个游戏中,世博会的与会者与时间赛跑,以发现谁对MATLAB和Simulink最了解。金宝app

我玩过这款游戏,我可以保证这款游戏非常有趣、巧妙且强大。继续往下读,了解他们是如何做到的。詹卡洛!

建立一个测试的MATLAB博览会

GianCarlo Pacitti的作品

几周前,一千多名工程师和科学家聚集在银石参加英国MATLAB博览会。为了在当天获得额外的乐趣,我们创建了一个“MATLAB EXPO Quiz”,人们可以在展厅里的四台55英寸触摸屏显示器中的一台上进行测试。

一些数据:278名玩家在一天中完成了986个独立游戏,在11个类别的255个问题上进行了4999次尝试。这些问题都是选择题,从4个可能的答案中选择,难度从简单的数学(“3乘以4是多少?”)到一些关于控制系统和代码生成的棘手问题。如果你参加了“What 's New”的演示,事情会更简单,因为许多问题都是基于新功能的。

设计测试应用程序

我们使用App Designer快速创建测试的图形布局原型,并获得关于游戏玩法的反馈。将测试的结构组合在一起并将图形控件与测试的逻辑连接起来非常容易。

为了增加测试的紧张感,我们设置了20秒的回答时间限制。不仅如此,我们还会每秒钟播放一声响亮的滴答声,最后5秒还会播放一声喇叭。可以肯定地说,我们在第一次鸣笛的时候就把一些人吓跑了!

MATLAB中的计时器对象为我们设置问题计时器和在玩家超时时触发游戏结束函数提供了一种方便的方法。

但是,当我们让一千个MATLAB用户随意使用它时,这个测试怎么能坚持下去呢?我们需要它是防弹的。

测试应用

我们有几个人一起工作在这个项目上,所以为了实现并发开发,我们决定在MATLAB中使用面向对象的编程技术。现在很容易从App Designer导出底层的MATLAB代码,并将其分解成几个MATLAB类,我们可以同时使用它们。这为我们在合并变更时节省了大量时间。

使用MATLAB单元测试框架锁定所需的行为意味着我们可以在知道我们是否破坏了任何东西的情况下安全地调整设计。为了发现任何我们没有想到的边缘情况,我们将测试交给MathWorks的同事,让他们在某个晚上下班后进行测试。我们得到了一些很好的用户反馈,还有很多额外的问题。

计分

在开始游戏之前,我们会提示玩家为记分牌输入一个名字。每个正确的问题为玩家赢得25分,完成一轮4个问题会增加奖励。完成所有6轮将获得1000分的最高分数。

当玩家完成一款游戏时,测试需要将玩家的名字和分数发送到某个地方,这样我们才能制作出排行榜。我们需要一种机制,允许多个测试机器将分数发送到同一个中央排行榜。我们的想法很快转向了ThingSpeak,我们建立了一个MATLAB测试频道。

使用ThingSpeak API将数据发送到频道比我们想象的还要容易!代码如下:

一个独立的排行榜应用程序使用ThingSpeak API来获得完整的分数列表(使用webread,而不是webwrite),并显示前30名球员。

这个测验有多难?

如果你知道答案,任何问题都很容易。我们担心我们把问题的难度定得太高了。我们记录了尝试过的每个问题,给出了什么答案,以及回答这个问题花了多长时间。由此,我们可以用平均答对率绘制出每一类问题的难度:

你可能会认为更难的问题需要更长的时间来回答,我们的数据表明,情况通常是这样的。

今天最难的问题是什么?有六个人试着回答这个问题,但是没有人答对。你能吗?你有20秒,你的时间从....开始现在!

下列哪个不是MATLAB中的数据类型?
一个。持续时间
B。clockDuration
C。datetime
D。calendarDuration
|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。