与C书的互动

打印
英语

与C-Books的交互?


c-book基础设施和软件(也称为c-book?环境CBE)正在欧盟项目MC Squared中开发。C-books是一种电子书,它可以通过所谓的小部件进行增强,这些小部件是运行在C-books中的小软件。通常,c-book的读者可以与小部件交互;此外,这些小部件可以与c-book基础设施以及其他小部件进行内部通信。

小部件与c-book基础设施和其他小部件交互的主要方式有三种:
  • 获取和设置CBE评分,
  • 使用CBE提供的随机值,
  • 与其他小部件通信,即所谓的跨小部件通信。

灰姑娘已集成到c-book基础设施中,因此可以将灰姑娘文件用作c-book小部件。此外,Cinderella现在支持上述交互方式(但请注意,跨窗口小部件通信目前仍在开发中)。本页主要通过CindyScript简要介绍了如何使用此功能。

C-Book得分


灰姑娘通过CindyScript完全支持C-book分数。对于在c-book中使用分数,有一个以c-book形式的教程。请参见http://mc2dme.appspot.com/dwo/dwo.jsp?profile=78&language=en&scoViewNr=5686812383117312外部链路.

在这里,我们还对如何做到这一点给出了一些书面解释。首先,请注意,在将一个小部件添加到以编辑模式使用分数的c-book后,您必须单击该小部件才能打开小部件编辑器窗口。在这里,您必须确保选中窗口顶部的“include in grading”(荷兰语为“teltMee”)复选框,并且最大分数设置为正数。此外,您要么必须选中“添加复选按钮”复选框,要么不选中,这取决于小部件与CBE的交互方式。

为了生成您自己的支持分数的小部件,您可以使用下面详细描述的以下功能:
  • setmaxscore():设置CBE最高分数的内部版本;这可以用于测试尚未包含在CBE中的小部件。
  • getmaxscore():从CBE中获取c-book作者给出的最高分数。
  • setscore():将分数设置为非负值。
  • getscore():获取之前使用setscore()设置的分数。
  • check():要求DME读取当前分数。


设置当前最大分数:setmaxscore(<newmaxscore>)




描述:此函数用于将maxscore的内部版本设置为值newmaxscore。newmaxscore必须是非负整数。如果小部件在CBE内运行,则忽略此内部最大得分。因此,只要小部件仍在独立版本的Cinderella中运行,而不是作为CBE的一部分,此功能仅用于测试目的。




从CBE获得小工具的最大可能得分:获得最大得分()




描述:此函数返回小部件编辑器中指定的当前小部件的最大可能分数。在CBE中,这通常是一个非负整数。




获取当前分数:获得记分()




描述:此函数返回当前小部件的当前分数。这必须在之前使用setscore()进行设置。它通常是一个非负整数。




设置当前分数:setscore(<新闻核心>)




描述:此函数将当前小部件的当前分数设置为值newscore。Newscore必须是非负整数。




告诉CBE阅读此小部件的当前分数:检查()




描述:这个函数告诉CBE向这个小部件询问当前分数(之前已经设置为setscore())。这通常是一个非负整数。



C-Book随机值


Cinderella通过CindyScript完全支持C-book随机值。对于在c-book中使用分数,有一个以c-book形式的教程。请参见
http://mc2dme.appspot.com/dwo/dwo.jsp?profile=78&language=en&scoViewNr=5723475968786432外部链路.

这里有一些关于如何做到这一点的简要解释。

为了能够在灰姑娘小工具中使用随机值,
你只需要知道你想通过随机参数改变哪些对象。

例如,我们使用一个以CB为底且a=(0,0)的直角三角形的高度AE构造,其中我们要随机设置点C和B的x坐标。

为此,在新页面的编辑模式下,只需在CBE右下角的文本字段中键入以下两行:

B.x=1..6
C.x=-6..-1

这告诉CBE为B.x选择1到6之间的随机整数值,为C.x选择-6到-1之间的随机整数。
对于大多数随机值,解决方案需要计算平方根。

我们必须如何准备Cinderella小部件才能工作?

我们首先需要知道的是:
选择随机值后,DME会传递给灰姑娘小部件什么?
实际上,这是最自然的事情。例如,基于以下代码,它可能会将代码传递给小部件:
B.x=3
C.x=-4
在执行灰姑娘小部件“初始化”之后,灰姑娘小组件只需获取这些代码行并执行它们。

因此,如果B和C是自由点,那么一切都是好的。

但是,我们不希望用户移动B和C。
为此,我们可以使用灰姑娘的“固定”属性。大多数灰姑娘对象可以“固定”到固定坐标,即不允许使用鼠标或其他任何工具移动它们。

所以,为了能够在“初始化”之后设置B和C的x坐标,我们需要做的是
1.在“初始化”事件中,将B和C(甚至所有点)的固定属性设置为“false”
2.然后将其设置为“true”(例如,在“draw”事件中)。

这可以通过以下方式实现辛迪脚本代码。
将此粘贴到灰姑娘的“初始化”事件部分“辛迪脚本编辑“:

对于所有(allpoints(),检查(,“pinning”,false));

为了在更改B和C的x坐标后固定这些点,
将此粘贴到灰姑娘的“抽奖”活动部分辛迪脚本编辑“:

对于所有(allpoints(),检查(,“pinning”,true));

这将修复所有点。

在DME手册中,您可以找到其他几种指定随机值的方法,例如
B.x=1,2,5,6
仅允许DME在四个值1、2、5和6之间进行选择。
我们不在这里讨论这个问题。

此外,不仅可以通过随机参数特征设置点的坐标。

您可以更改灰姑娘对象的任何其他数值属性,该属性可以从辛迪脚本通过语法

…=整数

例如,点也有一个y坐标,因此如果您在“随机参数的变量”中键入以下内容
DME中页面右下角的文本区域
A.x=-5..5
A.y=-3..3
然后这两个坐标将被随机设置。


跨窗口通信


跨腰通信仍在发展中。一旦跨窗口小部件通信可用,将对该文档进行调整。

待办事项。。。
本节其余部分仍有待编写。。。


此页面的参与者:实验室.
页面最后一次修改时间为2015年1月12日星期一[21:26:31UTC]实验室.

本页面上的内容根据许可证.


菜单