0
我正在嘗試創建一個平臺,允許學生使用blockly頭對頭地進行代碼挑戰。我想象類似:多個工作區的模塊示例
說明文檔中提到「多個工作區」與block factory,但我覺得我可能會在這裏重新發明輪子,所以我才上手,做這樣的事情已經存在?理想的情況下,連接到應用程序引擎,以便學生可以從任何其他學生那裏獲取代碼並測試以查看他們的代碼如何比較?
我正在嘗試創建一個平臺,允許學生使用blockly頭對頭地進行代碼挑戰。我想象類似:多個工作區的模塊示例
說明文檔中提到「多個工作區」與block factory,但我覺得我可能會在這裏重新發明輪子,所以我才上手,做這樣的事情已經存在?理想的情況下,連接到應用程序引擎,以便學生可以從任何其他學生那裏獲取代碼並測試以查看他們的代碼如何比較?
是的,它存在!我們在開發者工具中使用這個來提供編輯器和預覽。兩個要看的演示是Multi-Playground(src)和Mirrored Workspaces(src)。
你會在多操場注意到,我們只是呼籲每個格Blockly.inject(..)
:
function start() {
// ...
startBlocklyInstance('VertStartLTR', false, false, 'start', toolbox);
startBlocklyInstance('VertStartRTL', true, false, 'start', toolbox);
startBlocklyInstance('VertEndLTR', false, false, 'end', toolbox);
startBlocklyInstance('VertEndRTL', true, false, 'end', toolbox);
startBlocklyInstance('HorizontalStartLTR', false, true, 'start', toolbox);
startBlocklyInstance('HorizontalStartRTL', true, true, 'start', toolbox);
startBlocklyInstance('HorizontalEndLTR', false, true, 'end', toolbox);
startBlocklyInstance('HorizontalEndRTL', true, true, 'end', toolbox);
}
function startBlocklyInstance(suffix, rtl, horizontalLayout, position,
toolbox) {
options.rtl = rtl;
options.toolbox = toolbox;
options.horizontalLayout = horizontalLayout;
options.toolboxPosition = position;
Blockly.inject('blocklyDiv' + suffix, options);
}