feat: sync all remaining python source board configurations

This commit is contained in:
yczpf2019
2026-01-24 16:19:55 +08:00
parent 1990bee9a1
commit 20bde81bbb
519 changed files with 93119 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
node_modules
build
origin

View File

@@ -0,0 +1,36 @@
/**
* @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnBlocks} PythonMixpySKLearnBlocks
*/
import * as Blockly from 'blockly/core';
const SKLEARN_HUE = 80;
/**
* @override Override {@link PythonMixpySKLearnBlocks.sklearn_LinearRegression}
*/
//sklearn 初始化线性回归
export const sklearn_LinearRegression = {
init: function () {
this.appendDummyInput()
.appendField('sklearn ' + Blockly.Msg.SKLEARN_LINEARREGRESSION_INIT);
this.appendValueInput('model_name')
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MODEL_NAME);
this.appendValueInput('fit_intercept')
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT);
this.appendValueInput('n_jobs')
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.SKLEARN_THREADS);
this.setInputsInline(false);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(SKLEARN_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};

View File

@@ -0,0 +1,17 @@
import * as Blockly from 'blockly/core';
export const sound_effect_add = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_SET_TO)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_SOUND_EFFECT_PITCH, "pitch"], [Blockly.Msg.MIXLY_SOUND_EFFECT_PAN, "pan"]]), "EFFECT")
.appendField(Blockly.Msg.MIXLY_SOUND_EFFECT_ADD_BY);
this.appendValueInput("VALUE")
.setCheck(null)
this.appendDummyInput();
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_EFFECT_ADD_TOOLTIP);
}
};

View File

@@ -0,0 +1,12 @@
import * as Blockly from 'blockly/core';
export const sound_effect_clear = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_catSoundSOUND_CLEAR_EFFECTS);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_EFFECT_CLEAR_TOOLTIP);
}
};

View File

@@ -0,0 +1,17 @@
import * as Blockly from 'blockly/core';
export const sound_effect_set = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_SET_TO)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_SOUND_EFFECT_PITCH, "pitch"], [Blockly.Msg.MIXLY_SOUND_EFFECT_PAN, "pan"]]), "EFFECT")
.appendField(Blockly.Msg.MIXLY_SOUND_EFFECT_SET_TO);
this.appendValueInput("VALUE")
.setCheck(null)
this.appendDummyInput();
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_EFFECT_SET_TOOLTIP);
}
};

View File

@@ -0,0 +1,26 @@
import * as Blockly from 'blockly/core';
export const sound_play = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_PLAY)
.appendField(new Blockly.FieldDropdown(this.getSoundOptions), "SOUND");
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_PLAY_TOOLTIP);
},
getSoundOptions: function() {
const options = [["Meow", "Meow"], [Blockly.Msg.MIXLY_SOUND_RECORD_OPTION, "record"]];
if (window.sound && window.sound.builtin) {
const recordings = Object.keys(window.sound.builtin).filter(k => k.startsWith('recording'));
recordings.forEach(recording => {
options.push([recording, recording]);
});
}
return options;
}
};

View File

@@ -0,0 +1,21 @@
import * as Blockly from 'blockly/core';
export const sound_play_frequency = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_PLAY)
.appendField(Blockly.Msg.MIXLY_SOUND_FREQUENCY);
this.appendValueInput("FREQUENCY")
.setCheck(Number)
.setAlign(Blockly.ALIGN_RIGHT);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_DURATION);
this.appendValueInput("DURATION")
.setCheck(Number)
.setAlign(Blockly.ALIGN_RIGHT);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_PLAY_FREQUENCY_TOOLTIP);
}
};

View File

@@ -0,0 +1,13 @@
import * as Blockly from 'blockly/core';
export const sound_play_frequency_no_duration = {
init: function() {
this.setColour('#acc159');
this.appendValueInput("FREQUENCY")
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_SOUND_PLAY_FREQUENCY_NO_DURATION);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_PLAY_FREQUENCY_NO_DURATION_TOOLTIP);
}
};

View File

@@ -0,0 +1,21 @@
import * as Blockly from 'blockly/core';
export const sound_play_note_list = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_PLAY_NOTE_LIST)
.appendField(new Blockly.FieldDropdown([
["DADADADUM", "DADADADUM"],
["BIRTHDAY", "BIRTHDAY"],
["BA_DING", "BA_DING"],
["JUMP_UP", "JUMP_UP"],
["JUMP_DOWN", "JUMP_DOWN"],
["POWER_UP", "POWER_UP"],
["POWER_DOWN", "POWER_DOWN"]
]), "NOTE_LIST");
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_PLAY_NOTE_LIST_TOOLTIP);
}
};

View File

@@ -0,0 +1,27 @@
import * as Blockly from 'blockly/core';
export const sound_play_wait = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_PLAY)
.appendField(new Blockly.FieldDropdown(this.getSoundOptions), "SOUND")
.appendField(Blockly.Msg.MIXLY_SOUND_WAIT_FINISH);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_PLAY_WAIT_TOOLTIP);
},
getSoundOptions: function() {
const options = [["Meow", "Meow"], [Blockly.Msg.MIXLY_SOUND_RECORD_OPTION, "record"]];
if (window.sound && window.sound.builtin) {
const recordings = Object.keys(window.sound.builtin).filter(k => k.startsWith('recording'));
recordings.forEach(recording => {
options.push([recording, recording]);
});
}
return options;
}
};

View File

@@ -0,0 +1,12 @@
import * as Blockly from 'blockly/core';
export const sound_record = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SOUND_RECORD);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_RECORD_TOOLTIP);
}
};

View File

@@ -0,0 +1,27 @@
import * as Blockly from 'blockly/core';
export const sound_note = {
init: function () {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown([
["NOTE_A4", "440"],
["NOTE_B3", "247"],
["NOTE_C4", "262"],
["NOTE_D4", "294"],
["NOTE_E4", "330"],
["NOTE_F4", "349"],
["NOTE_G4", "392"],
["NOTE_A4", "440"],
["NOTE_B4", "494"],
["NOTE_C5", "523"],
["NOTE_D5", "587"],
["NOTE_E5", "659"],
["NOTE_F5", "698"],
["NOTE_G5", "784"]
]), "NOTE");
this.setOutput(true, null);
this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_NOTE_TOOLTIP);
}
};

View File

@@ -0,0 +1,12 @@
import * as Blockly from 'blockly/core';
export const sound_stop_all = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_catSoundSOUND_STOP_ALL);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_STOP_ALL_TOOLTIP);
}
};

View File

@@ -0,0 +1,15 @@
import * as Blockly from 'blockly/core';
export const sound_volume_add = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_catSoundSOUND_VOLUME_INCREASE);
this.appendValueInput("VALUE")
.setCheck(null);
this.appendDummyInput();
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_VOLUME_ADD_TOOLTIP);
}
};

View File

@@ -0,0 +1,11 @@
import * as Blockly from 'blockly/core';
export const sound_volume_get = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_catSoundSOUND_VOLUME_GET);
this.setOutput(true, "Volume");
this.setTooltip(Blockly.Msg.MIXLY_SOUND_VOLUME_GET_TOOLTIP);
}
};

View File

@@ -0,0 +1,15 @@
import * as Blockly from 'blockly/core';
export const sound_volume_set = {
init: function() {
this.setColour('#acc159');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_catSoundSOUND_VOLUME_SET);
this.appendValueInput("VALUE")
.setCheck(null);
this.appendDummyInput();
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_SOUND_VOLUME_SET_TOOLTIP);
}
};

View File

@@ -0,0 +1,230 @@
import * as Blockly from 'blockly/core';
const TENSORFLOW_HUE = '#1216ab';
Blockly.Blocks.tensorflow_init_tensor = {
init: function () {
this.appendValueInput("VAR")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INIT_TENSOR);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_sequential = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_SEQUENTIAL);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_layers_dense = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INIT_LAYERS_DENSE_LAYER);
this.appendValueInput("VAR1")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_OUTPUT_DIMENSION);
this.appendValueInput("VAR2")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INPUT_SHAPE);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_add = {
init: function () {
this.appendValueInput("VAR1")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL);
this.appendValueInput("VAR2")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_ADD_LAYER);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_compile = {
init: function () {
this.appendValueInput("VAR1")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_COMPILE_MODEL);
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_LOSS_FUNCTION_TYPE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TENSORFLOW_MEAN_SQUARED_ERROR, "meanSquaredError"]
]), "VAR2");
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_OPTIMIZER)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TENSORFLOW_SGD, "sgd"]
]), "VAR3");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_fit = {
init: function () {
this.appendValueInput("VAR1")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_MODEL);
this.appendValueInput("VAR2")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_INPUT_DATA);
this.appendValueInput("VAR3")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_TARGET_DATA);
this.appendValueInput("VAR4")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_EPOCHS);
this.appendValueInput("VAR5")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_VERBOSE);
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_RETURN_HISTORY);
this.setInputsInline(false);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_get_loss = {
init: function () {
this.appendValueInput("VAR")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_LOSS_FROM_HISTORY);
this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_LOSS_FROM_HISTORY_2);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_predict = {
init: function () {
this.appendValueInput("VAR1")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT);
this.appendValueInput("VAR2")
.setCheck(null)
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT_INPUT_DATA);
this.appendDummyInput()
.setAlign(Blockly.ALIGN_RIGHT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT_RETURN_RESULT);
this.setInputsInline(false);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_get_tensor_data = {
init: function () {
this.appendValueInput("VAR")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_TENSOR_DATA);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_save_or_export_model = {
init: function () {
this.appendValueInput("NAME1")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL);
this.appendValueInput("NAME2")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TENSORFLOW_SAVE_MODEL, "save"],
[Blockly.Msg.MIXLY_TENSORFLOW_EXPORT_MODEL, "export"]
]), "NAME")
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_SAVE_MODEL_NAME);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_use_load_model = {
init: function () {
this.appendValueInput("NAME")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_LOAD_MODEL)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL_NAME);
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
Blockly.Blocks.tensorflow_prepare_picture = {
init: function () {
this.appendValueInput("NAME")
.setCheck(null)
.setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREPARE_PICTURE_TO_TENSOR)
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREPARE_PICTURE_READ_PICTURE);
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(TENSORFLOW_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};

View File

@@ -0,0 +1,216 @@
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(1)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/inout.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(1)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/inout2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(2)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/ctrl.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(2)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/ctrl2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(3)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/math.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(3)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/math2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(4)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/logic.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(4)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/logic2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(5)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/text.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(5)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/text2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(6)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/list3.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(6)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/list4.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(7)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/tuple.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(7)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/tuple2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(8)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/dict.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(8)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/dict2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(9)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/set.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(9)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/set2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(10)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/var.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(10)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/var2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(11)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/func.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(11)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/func2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/file.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/file2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(13)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/requests.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(13)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/requests2.png') no-repeat;
background-size: 100% auto;
}
/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(14) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/mixio.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(14) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/mixio2.png') no-repeat;
background-size: 100% auto;
}
#catMixIO.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/mixio.png') no-repeat;
background-size: 100% auto;
}
#catMixIO.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/mixio2.png') no-repeat;
background-size: 100% auto;
} */
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(14)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/turtle.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(14)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/turtle2.png') no-repeat;
background-size: 100% auto;
}
/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/ai.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/ai2.png') no-repeat;
background-size: 100% auto;
} */
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(15)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/data.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(15)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/data2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(16)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/cv.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(16)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/cv2.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(17)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/algorithm.png') no-repeat;
background-size: 100% auto;
}
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(17)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/algorithm2.png') no-repeat;
background-size: 100% auto;
}
#catFactory.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/factory3.png') no-repeat;
background-size: 100% auto;
}
#catFactory.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/factory4.png') no-repeat;
background-size: 100% auto;
}
#catSound.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/voice.png') no-repeat;
background-size: 100% auto;
}
#catSound.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/voice2.png') no-repeat;
background-size: 100% auto;
}

View File

@@ -0,0 +1,11 @@
import * as PythonPyodideSKLearnBlocks from './blocks/sklearn';
import * as PythonPyodideSKLearnGenerators from './generators/sklearn';
import * as PythonTensorflowBlocks from './blocks/tensorflow';
import * as PythonTensorflowGenerators from './generators/tensorflow';
export {
PythonPyodideSKLearnBlocks,
PythonPyodideSKLearnGenerators,
PythonTensorflowBlocks,
PythonTensorflowGenerators
};

View File

@@ -0,0 +1,46 @@
import { Python } from '@mixly/python';
import KEYBOARD_INTERRUPT_TEMPLATE from './templates/python/keyboard-interrupt.py';
Python.finish = function (code) {
// Convert the definitions dictionary into a list.
if (code !== "") {
code = code.replace(/\n/g, '\n');
code = code.replace(/\n\s+$/, '\n');
}
var definitions = [];
for (var name in Python.definitions_) {
definitions.push(Python.definitions_[name]);
}
var functions = [];
for (let name in Python.functions_) {
functions.push(Python.functions_[name]);
}
var setups = [];
for (let name in Python.setups_) {
setups.push(Python.setups_[name]);
}
if (setups.length !== 0)
setups.push('\n');
var loops = [];
for (let name in Python.loops_) {
loops.push(Python.loops_[name]);
}
var codeEnd = [];
for (let name in Python.codeEnd_) {
codeEnd.push(Python.codeEnd_[name]);
}
if (codeEnd.length !== 0)
codeEnd.push('\n');
// Clean up temporary data.
//delete Python.definitions_;
//delete Python.functionNames_;
//Python.variableDB_.reset();
if (loops.length > 0)
return KEYBOARD_INTERRUPT_TEMPLATE + definitions.join('\n') + '\n' + functions.join('\n')
+ '\n' + setups.join('') + '\n' + code
+ 'while True:\n' + loops.join('') + codeEnd.join('\n');
return KEYBOARD_INTERRUPT_TEMPLATE + definitions.join('\n') + '\n' + functions.join('\n') + '\n'
+ setups.join('') + '\n' + code + codeEnd.join('\n');
}
export default Python;

View File

@@ -0,0 +1,13 @@
/**
* @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnGenerators} PythonMixpySKLearnGenerators
*/
// sklearn 初始化线性回归
export const sklearn_LinearRegression = function (_, generator) {
const value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
const value_fit_intercept = generator.valueToCode(this, 'fit_intercept', generator.ORDER_ATOMIC) || 'True';
const value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
const code = value_model_name + ' = LinearRegression(fit_intercept=' + value_fit_intercept + ', n_jobs=' + value_n_jobs + ')\n';
return code;
}

View File

@@ -0,0 +1,21 @@
export const sound_effect_add = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
const effect = _block.getFieldValue("EFFECT");
const valueInput = _block.getInputTargetBlock("VALUE");
let val;
if (valueInput) {
if (valueInput.type === "math_number") {
val = valueInput.getFieldValue("NUM") || "10";
} else {
val = _generator.valueToCode(valueInput, "VALUE", _generator.ORDER_NONE) || "10";
}
} else {
val = "10";
}
return `sound.adjust_effect("${effect}", ${val})\n`;
};

View File

@@ -0,0 +1,7 @@
export const sound_effect_clear = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
return "sound.clear_effects()\n";
};

View File

@@ -0,0 +1,21 @@
export const sound_effect_set = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
const effect = _block.getFieldValue("EFFECT");
const valueInput = _block.getInputTargetBlock("VALUE");
let val;
if (valueInput) {
if (valueInput.type === "math_number") {
val = valueInput.getFieldValue("NUM") || "100";
} else {
val = _generator.valueToCode(valueInput, "VALUE", _generator.ORDER_NONE) || "100";
}
} else {
val = "100";
}
return `sound.set_effect("${effect}", ${val})\n`;
};

View File

@@ -0,0 +1,11 @@
export const sound_play = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
const sound = _block.getFieldValue("SOUND");
if (sound === "record") {
return `sound.record()\n`;
}
return `sound.play("${sound}")\n`;
};

View File

@@ -0,0 +1,10 @@
export const sound_play_frequency = function (_block, generator) {
if (!generator.definitions_['import_sound']) {
generator.definitions_['import_sound'] = 'import sound';
}
const frequencyInput = generator.valueToCode(this, "FREQUENCY", generator.ORDER_ATOMIC);
const durationInput = generator.valueToCode(this, "DURATION", generator.ORDER_ATOMIC);
return `sound.play_frequency(${frequencyInput}, ${durationInput})\n`;
};

View File

@@ -0,0 +1,9 @@
export const sound_play_frequency_no_duration = function (_block, generator) {
if (!generator.definitions_['import_sound']) {
generator.definitions_['import_sound'] = 'import sound';
}
const frequencyInput = generator.valueToCode(this, "FREQUENCY", generator.ORDER_ATOMIC);
return `sound.play_frequency_no_duration(${frequencyInput})\n`;
};

View File

@@ -0,0 +1,9 @@
export const sound_play_note_list = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
const noteList = this.getFieldValue("NOTE_LIST");
return `sound.play_note_list("${noteList}")\n`;
};

View File

@@ -0,0 +1,12 @@
export const sound_play_wait = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
const sound = _block.getFieldValue("SOUND");
if (sound === "record") {
return `sound.record()\n`;
}
return `sound.play_blocking("${sound}")\n`;
};

View File

@@ -0,0 +1,7 @@
export const sound_record = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
return `sound.record()\n`;
};

View File

@@ -0,0 +1,7 @@
export const sound_note = function (_block, generator) {
// 获取频率值(字符串格式)
const frequency = this.getFieldValue("NOTE");
return [frequency, generator.ORDER_ATOMIC];
};

View File

@@ -0,0 +1,7 @@
export const sound_stop_all = function(_block, _generator) {
if (!_generator.definitions_['import_sound']) {
_generator.definitions_['import_sound'] = 'import sound';
}
return "sound.stop_all()\n";
};

View File

@@ -0,0 +1,8 @@
export const sound_volume_add = function(_block, generator) {
if (!generator.definitions_['import_sound']) {
generator.definitions_['import_sound'] = 'import sound';
}
const val = generator.valueToCode(_block, "VALUE", generator.ORDER_NONE) || "0";
return `sound.adjust_volume(${val})\n`;
};

View File

@@ -0,0 +1,7 @@
export const sound_volume_get = function(_block, generator) {
if (!generator.definitions_['import_sound']) {
generator.definitions_['import_sound'] = 'import sound';
}
return ['sound.get_volume()', generator.ORDER_ATOMIC];
};

View File

@@ -0,0 +1,8 @@
export const sound_volume_set = function(_block, generator) {
if (!generator.definitions_['import_sound']) {
generator.definitions_['import_sound'] = 'import sound';
}
const val = generator.valueToCode(_block, "VALUE", generator.ORDER_NONE) || "100";
return `sound.set_volume(${val})\n`;
};

View File

@@ -0,0 +1,97 @@
export const tensorflow_init_tensor = function (_, generator) {
var VALUE_INPUT_VAR = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var code = 'tensorflow.tensor(' + VALUE_INPUT_VAR + ')';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_sequential = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var code = 'tensorflow.sequential()';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_layers_dense = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
var code = 'tensorflow.layers.dense(units = ' + VALUE_INPUT_VAR1 + ', input_shape = ' + VALUE_INPUT_VAR2 + ')';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_add = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
var code = VALUE_INPUT_VAR1 + '.add(' + VALUE_INPUT_VAR2 + ')\n';
return code;
};
export const tensorflow_compile = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR2 = this.getFieldValue("VAR2");
var VALUE_INPUT_VAR3 = this.getFieldValue("VAR3");
var code = VALUE_INPUT_VAR1 + '.compile(loss = "' + VALUE_INPUT_VAR2 + '", optimizer = "' + VALUE_INPUT_VAR3 + '")\n';
return code;
}
export const tensorflow_fit = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR3 = generator.valueToCode(this, "VAR3", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR4 = generator.valueToCode(this, "VAR4", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR5 = generator.valueToCode(this, "VAR5", generator.ORDER_ATOMIC);
var code = 'await ' + VALUE_INPUT_VAR1 + '.fit(' + VALUE_INPUT_VAR2 + ', ' + VALUE_INPUT_VAR3 + ', epochs=' + VALUE_INPUT_VAR4 + ', verbose=' + VALUE_INPUT_VAR5 + ')';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_get_loss = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
var code = VALUE_INPUT_VAR + '.history.loss';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_predict = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
var code = VALUE_INPUT_VAR1 + '.predict(' + VALUE_INPUT_VAR2 + ')';
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_get_tensor_data = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
var code = "(await " + VALUE_INPUT_VAR1 + ".data())";
return [code, generator.ORDER_ATOMIC];
};
export const tensorflow_save_or_export_model = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_NAME1 = generator.valueToCode(this, "NAME1", generator.ORDER_ATOMIC);
var FIELD_NAME = this.getFieldValue("NAME");
var VALUE_INPUT_NAME2 = generator.valueToCode(this, "NAME2", generator.ORDER_ATOMIC).replace(/^'|'$/g, '');
if (FIELD_NAME == "export") {
return `await ${VALUE_INPUT_NAME1}.save("downloads://${VALUE_INPUT_NAME2}")\n`;
}
return `await ${VALUE_INPUT_NAME1}.save("indexeddb://${VALUE_INPUT_NAME2}")\n`;
};
export const tensorflow_use_load_model = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
var VALUE_INPUT_NAME = generator.valueToCode(this, "NAME", generator.ORDER_ATOMIC).replace(/^'|'$/g, '');
return [`await tensorflow.load_model("${VALUE_INPUT_NAME}")`, generator.ORDER_ATOMIC];
};
export const tensorflow_prepare_picture = function (_, generator) {
generator.definitions_['import_tensorflow'] = 'import tensorflow';
generator.definitions_['import_numpy'] = 'import numpy';
generator.definitions_['import_PIL'] = 'import PIL';
var VALUE_INPUT_NAME = generator.valueToCode(this, "NAME", generator.ORDER_ATOMIC);
return [`(await tensorflow.prepare_qmyixtxi(tensorflow.tensor(numpy.array(PIL.Image.open(${VALUE_INPUT_NAME}).convert('RGB')))))`, generator.ORDER_ATOMIC];
};

View File

@@ -0,0 +1,213 @@
import * as Blockly from 'blockly/core';
import './language/loader';
import { Profile } from 'mixly';
import {
PythonVariablesBlocks,
PythonControlBlocks,
PythonMathBlocks,
PythonTextBlocks,
PythonListsBlocks,
PythonDictsBlocks,
PythonLogicBlocks,
PythonStorageBlocks,
PythonProceduresBlocks,
PythonTupleBlocks,
PythonSetBlocks,
PythonHtmlBlocks,
PythonUtilityBlocks,
PythonVariablesGenerators,
PythonControlGenerators,
PythonMathGenerators,
PythonTextGenerators,
PythonListsGenerators,
PythonDictsGenerators,
PythonLogicGenerators,
PythonStorageGenerators,
PythonProceduresGenerators,
PythonTupleGenerators,
PythonSetGenerators,
PythonHtmlGenerators,
PythonUtilityGenerators,
Procedures,
Variables,
Python
} from '@mixly/python';
import {
PythonMixpyAIBlocks,
PythonMixpyAlgorithmBlocks,
PythonMixpyCommunicateBlocks,
PythonMixpyCVBlocks,
PythonMixpyDataBlocks,
PythonMixpyDatastructureBlocks,
PythonMixpyFactoryBlocks,
PythonMixpyHardwareBlocks,
PythonMixpyInoutBlocks,
PythonMixpyIOTBlocks,
PythonMixpyPinsBlocks,
PythonMixpySerialBlocks,
PythonMixpySKLearnBlocks,
PythonMixpySystemBlocks,
PythonMixpyTurtleBlocks,
PythonMixpyAIGenerators,
PythonMixpyAlgorithmGenerators,
PythonMixpyCommunicateGenerators,
PythonMixpyCVGenerators,
PythonMixpyDataGenerators,
PythonMixpyDatastructureGenerators,
PythonMixpyFactoryGenerators,
PythonMixpyHardwareGenerators,
PythonMixpyInoutGenerators,
PythonMixpyIOTGenerators,
PythonMixpyPinsGenerators,
PythonMixpySerialGenerators,
PythonMixpySKLearnGenerators,
PythonMixpySystemGenerators,
PythonMixpyTurtleGenerators
} from '@mixly/python-mixpy';
import {
PythonPyodideSKLearnBlocks,
PythonPyodideSKLearnGenerators,
PythonTensorflowBlocks,
PythonTensorflowGenerators
} from './';
import './others/loader';
import sound from './others/sound.js';
import './css/color_mixpy_python_advance.css';
Object.assign(Blockly.Variables, Variables);
Object.assign(Blockly.Procedures, Procedures);
Blockly.Python = Python;
Blockly.generator = Python;
Profile.default = {};
Object.assign(
Blockly.Blocks,
PythonVariablesBlocks,
PythonControlBlocks,
PythonMathBlocks,
PythonTextBlocks,
PythonListsBlocks,
PythonDictsBlocks,
PythonLogicBlocks,
PythonStorageBlocks,
PythonProceduresBlocks,
PythonTupleBlocks,
PythonSetBlocks,
PythonHtmlBlocks,
PythonUtilityBlocks,
PythonMixpyAIBlocks,
PythonMixpyAlgorithmBlocks,
PythonMixpyCommunicateBlocks,
PythonMixpyCVBlocks,
PythonMixpyDataBlocks,
PythonMixpyDatastructureBlocks,
PythonMixpyFactoryBlocks,
PythonMixpyHardwareBlocks,
PythonMixpyInoutBlocks,
PythonMixpyIOTBlocks,
PythonMixpyPinsBlocks,
PythonMixpySerialBlocks,
PythonMixpySKLearnBlocks,
PythonMixpySystemBlocks,
PythonMixpyTurtleBlocks,
PythonPyodideSKLearnBlocks,
PythonTensorflowBlocks
);
Object.assign(
Blockly.Python.forBlock,
PythonVariablesGenerators,
PythonControlGenerators,
PythonMathGenerators,
PythonTextGenerators,
PythonListsGenerators,
PythonDictsGenerators,
PythonLogicGenerators,
PythonStorageGenerators,
PythonProceduresGenerators,
PythonTupleGenerators,
PythonSetGenerators,
PythonHtmlGenerators,
PythonUtilityGenerators,
PythonMixpyAIGenerators,
PythonMixpyAlgorithmGenerators,
PythonMixpyCommunicateGenerators,
PythonMixpyCVGenerators,
PythonMixpyDataGenerators,
PythonMixpyDatastructureGenerators,
PythonMixpyFactoryGenerators,
PythonMixpyHardwareGenerators,
PythonMixpyInoutGenerators,
PythonMixpyIOTGenerators,
PythonMixpyPinsGenerators,
PythonMixpySerialGenerators,
PythonMixpySKLearnGenerators,
PythonMixpySystemGenerators,
PythonMixpyTurtleGenerators,
PythonPyodideSKLearnGenerators,
PythonTensorflowGenerators
);
import { sound_play } from './blocks/sound/play/play.js';
import { sound_play_wait } from './blocks/sound/play/play_wait.js';
import { sound_stop_all } from './blocks/sound/play/sound_stop_all.js';
import { sound_effect_add } from './blocks/sound/effect/add.js';
import { sound_effect_set } from './blocks/sound/effect/sound_effect_set.js';
import { sound_effect_clear } from './blocks/sound/effect/sound_effect_clear.js';
import { sound_volume_add } from './blocks/sound/volume/add.js';
import { sound_volume_set } from './blocks/sound/volume/set.js';
import { sound_volume_get } from './blocks/sound/volume/get.js';
import { sound_record } from './blocks/sound/play/record.js';
import { sound_play_frequency } from './blocks/sound/play/play_frequency.js';
import { sound_play_frequency_no_duration } from './blocks/sound/play/play_frequency_no_duration.js';
import { sound_play_note_list } from './blocks/sound/play/play_note_list.js';
import { sound_note } from './blocks/sound/play/sound_note.js';
import { sound_play as sound_play_gen } from './generators/sound/play/play.js';
import { sound_play_wait as sound_play_wait_gen } from './generators/sound/play/play_wait.js';
import { sound_stop_all as sound_stop_all_gen } from './generators/sound/play/sound_stop_all.js';
import { sound_effect_add as sound_effect_add_gen } from './generators/sound/effect/add.js';
import { sound_effect_set as sound_effect_set_gen } from './generators/sound/effect/sound_effect_set.js';
import { sound_effect_clear as sound_effect_clear_gen } from './generators/sound/effect/sound_effect_clear.js';
import { sound_volume_add as sound_volume_add_gen } from './generators/sound/volume/add.js';
import { sound_volume_set as sound_volume_set_gen } from './generators/sound/volume/set.js';
import { sound_volume_get as sound_volume_get_gen } from './generators/sound/volume/get.js';
import { sound_record as sound_record_gen } from './generators/sound/play/record.js';
import { sound_play_frequency as sound_play_frequency_gen } from './generators/sound/play/play_frequency.js';
import { sound_play_frequency_no_duration as sound_play_frequency_no_duration_gen } from './generators/sound/play/play_frequency_no_duration.js';
import { sound_play_note_list as sound_play_note_list_gen } from './generators/sound/play/play_note_list.js';
import { sound_note as sound_note_gen } from './generators/sound/play/sound_note.js';
const soundBlocks = {
sound_play, sound_play_wait, sound_stop_all,
sound_effect_add, sound_effect_set, sound_effect_clear,
sound_volume_add, sound_volume_set, sound_volume_get,
sound_record,
sound_play_frequency, sound_play_frequency_no_duration,
sound_play_note_list, sound_note
};
const soundGenerators = {
sound_play: sound_play_gen,
sound_play_wait: sound_play_wait_gen,
sound_stop_all: sound_stop_all_gen,
sound_effect_add: sound_effect_add_gen,
sound_effect_set: sound_effect_set_gen,
sound_effect_clear: sound_effect_clear_gen,
sound_volume_add: sound_volume_add_gen,
sound_volume_set: sound_volume_set_gen,
sound_volume_get: sound_volume_get_gen,
sound_record: sound_record_gen,
sound_play_frequency: sound_play_frequency_gen,
sound_play_frequency_no_duration: sound_play_frequency_no_duration_gen,
sound_play_note_list: sound_play_note_list_gen,
sound_note: sound_note_gen
};
Object.assign(Blockly.Blocks, soundBlocks);
Object.assign(Blockly.Python.forBlock, soundGenerators);
window.sound = sound;

View File

@@ -0,0 +1,18 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"baseUrl": "./",
"paths": {
"@mixly/python": [
"../python"
],
"@mixly/python-mixpy": [
"../python_mixpy"
]
}
},
"exclude": [
"node_modules",
"dist"
]
}

View File

@@ -0,0 +1,15 @@
export const EnMsg = {
'PYTHON_PYODIDE_IMAGE': 'Image',
'PYTHON_PYODIDE_TOOL': 'Teachable Machine',
'PYTHON_PYODIDE_GAME': 'Game of Life',
'PYTHON_PYODIDE_GAME_EPOCH': 'Iterations',
'PYTHON_PYODIDE_GAME_START': 'Start',
'PYTHON_PYODIDE_GAME_PAUSE': 'Pause',
'PYTHON_PYODIDE_GAME_RANDOM': 'Random Initialization',
'PYTHON_PYODIDE_GAME_RESET': 'Reset',
'PYTHON_PYODIDE_LOADING': 'Python3 kernel loading...',
'PYTHON_PYODIDE_FILE_SYSTEM': 'Local File System',
'PYTHON_PYODIDE_LOAD_FILE_SYSTEM': 'Load Local Folder'
};
export const EnCatgories = {};

View File

@@ -0,0 +1,12 @@
import * as Blockly from 'blockly/core';
import { ZhHansMsg, ZhHansCatgories } from './zh-hans';
import { ZhHantMsg, ZhHantCatgories } from './zh-hant';
import { EnMsg, EnCatgories } from './en';
// 载入语言文件
Object.assign(Blockly.Lang.ZhHans, ZhHansMsg);
Object.assign(Blockly.Lang.ZhHant, ZhHantMsg);
Object.assign(Blockly.Lang.En, EnMsg);
Object.assign(Blockly.Lang.ZhHans.MSG, ZhHansCatgories);
Object.assign(Blockly.Lang.ZhHant.MSG, ZhHantCatgories);
Object.assign(Blockly.Lang.En.MSG, EnCatgories);

View File

@@ -0,0 +1,15 @@
export const ZhHansMsg = {
'PYTHON_PYODIDE_IMAGE': '图像',
'PYTHON_PYODIDE_TOOL': '可教机器',
'PYTHON_PYODIDE_GAME': '生命游戏',
'PYTHON_PYODIDE_GAME_EPOCH': '代数',
'PYTHON_PYODIDE_GAME_START': '开始',
'PYTHON_PYODIDE_GAME_PAUSE': '暂停',
'PYTHON_PYODIDE_GAME_RANDOM': '随机初始化',
'PYTHON_PYODIDE_GAME_RESET': '重置',
'PYTHON_PYODIDE_LOADING': 'Python3内核载入中...',
'PYTHON_PYODIDE_FILE_SYSTEM': '本地文件系统',
'PYTHON_PYODIDE_LOAD_FILE_SYSTEM': '载入本地文件夹'
};
export const ZhHansCatgories = {};

View File

@@ -0,0 +1,15 @@
export const ZhHantMsg = {
'PYTHON_PYODIDE_IMAGE': '影像',
'PYTHON_PYODIDE_TOOL': '可教機器',
'PYTHON_PYODIDE_GAME': '生命遊戲',
'PYTHON_PYODIDE_GAME_EPOCH': '代數',
'PYTHON_PYODIDE_GAME_START': '開始',
'PYTHON_PYODIDE_GAME_PAUSE': '暫停',
'PYTHON_PYODIDE_GAME_RANDOM': '隨機初始化',
'PYTHON_PYODIDE_GAME_RESET': '重置',
'PYTHON_PYODIDE_LOADING': 'Python3核心載入...',
'PYTHON_PYODIDE_FILE_SYSTEM': '本機檔案系統',
'PYTHON_PYODIDE_LOAD_FILE_SYSTEM': '載入本機資料夾'
};
export const ZhHantCatgories = {};

View File

@@ -0,0 +1,12 @@
{
"boardImg": "./media/webpy.png",
"boardType": "Python 3 Online",
"language": "Python",
"nav": {
"webrun": true,
"webcancel": true,
"save": {
"py": true
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,238 @@
{
"大同出版社-五年级": {
"上册": {
"第12课判断闰年.mix": {
"__file__": true,
"__name__": "第12课判断闰年.mix"
},
"第13课让计算机会数数1.mix": {
"__file__": true,
"__name__": "第13课让计算机会数数1.mix"
},
"第13课让计算机会数数2.mix": {
"__file__": true,
"__name__": "第13课让计算机会数数2.mix"
},
"第14课for循环.mix": {
"__file__": true,
"__name__": "第14课for循环.mix"
},
"第14课趣味数玩具.mix": {
"__file__": true,
"__name__": "第14课趣味数玩具.mix"
},
"第15课破译密码.mix": {
"__file__": true,
"__name__": "第15课破译密码.mix"
},
"第8课动物园购票.mix": {
"__file__": true,
"__name__": "第8课动物园购票.mix"
},
"第8课计算购书费.mix": {
"__file__": true,
"__name__": "第8课计算购书费.mix"
},
"__file__": false,
"__name__": "上册"
},
"下册": {
"第12课网页排名算法.mix": {
"__file__": true,
"__name__": "第12课网页排名算法.mix"
},
"第1课比较交换找最大值.mix": {
"__file__": true,
"__name__": "第1课比较交换找最大值.mix"
},
"第2课选择排序未要求代码.mix": {
"__file__": true,
"__name__": "第2课选择排序未要求代码.mix"
},
"第4课冒泡排序.mix": {
"__file__": true,
"__name__": "第4课冒泡排序.mix"
},
"第6课用算数求解鸡兔同笼.mix": {
"__file__": true,
"__name__": "第6课用算数求解鸡兔同笼.mix"
},
"第6课遍历求解鸡兔同笼.mix": {
"__file__": true,
"__name__": "第6课遍历求解鸡兔同笼.mix"
},
"第7课兔子增长算法.mix": {
"__file__": true,
"__name__": "第7课兔子增长算法.mix"
},
"__file__": false,
"__name__": "下册"
},
"__file__": false,
"__name__": "大同出版社-五年级"
},
"教学指南米思齐修订版": {
"八年级": {
"18-2 从物联网服务平台获取数据(python).mix": {
"__file__": true,
"__name__": "18-2 从物联网服务平台获取数据(python).mix"
},
"18-3 数据处理(python).mix": {
"__file__": true,
"__name__": "18-3 数据处理(python).mix"
},
"19-3 数据可视化(python).mix": {
"__file__": true,
"__name__": "19-3 数据可视化(python).mix"
},
"22-2 身高记录仪系统分析端(python).mix": {
"__file__": true,
"__name__": "22-2 身高记录仪系统分析端(python).mix"
},
"22-22 手速测试仪系统分析端(python).mix": {
"__file__": true,
"__name__": "22-22 手速测试仪系统分析端(python).mix"
},
"9-1 利用HTTP获取互联网中的数据(python).mix": {
"__file__": true,
"__name__": "9-1 利用HTTP获取互联网中的数据(python).mix"
},
"9-2 解析数据(python).mix": {
"__file__": true,
"__name__": "9-2 解析数据(python).mix"
},
"__file__": false,
"__name__": "八年级"
},
"六年级": {
"第10课.mix": {
"__file__": true,
"__name__": "第10课.mix"
},
"第12课": {
"判断平年与闰年.mix": {
"__file__": true,
"__name__": "判断平年与闰年.mix"
},
"根据输入的气温给出提示.mix": {
"__file__": true,
"__name__": "根据输入的气温给出提示.mix"
},
"购买火车票.mix": {
"__file__": true,
"__name__": "购买火车票.mix"
},
"__file__": false,
"__name__": "第12课"
},
"第13课": {
"从1数到100.mix": {
"__file__": true,
"__name__": "从1数到100.mix"
},
"数数.mix": {
"__file__": true,
"__name__": "数数.mix"
},
"输出1-n的所有偶数.mix": {
"__file__": true,
"__name__": "输出1-n的所有偶数.mix"
},
"输出1-n能被5整除的数.mix": {
"__file__": true,
"__name__": "输出1-n能被5整除的数.mix"
},
"__file__": false,
"__name__": "第13课"
},
"第15课": {
"三位密码锁.mix": {
"__file__": true,
"__name__": "三位密码锁.mix"
},
"找到所有水仙花数.mix": {
"__file__": true,
"__name__": "找到所有水仙花数.mix"
},
"破解时间估算.mix": {
"__file__": true,
"__name__": "破解时间估算.mix"
},
"__file__": false,
"__name__": "第15课"
},
"第16课": {
"找出最大数.mix": {
"__file__": true,
"__name__": "找出最大数.mix"
},
"找出最小数.mix": {
"__file__": true,
"__name__": "找出最小数.mix"
},
"__file__": false,
"__name__": "第16课"
},
"第17课": {
"从大到小的选择排序.mix": {
"__file__": true,
"__name__": "从大到小的选择排序.mix"
},
"排序.mix": {
"__file__": true,
"__name__": "排序.mix"
},
"__file__": false,
"__name__": "第17课"
},
"第19课": {
"冒泡排序(for循环.mix": {
"__file__": true,
"__name__": "冒泡排序(for循环.mix"
},
"冒泡排序.mix": {
"__file__": true,
"__name__": "冒泡排序.mix"
},
"__file__": false,
"__name__": "第19课"
},
"第21课.mix": {
"__file__": true,
"__name__": "第21课.mix"
},
"第23课.mix": {
"__file__": true,
"__name__": "第23课.mix"
},
"第3课.mix": {
"__file__": true,
"__name__": "第3课.mix"
},
"第8课": {
"买水果算价格.mix": {
"__file__": true,
"__name__": "买水果算价格.mix"
},
"公园购票.mix": {
"__file__": true,
"__name__": "公园购票.mix"
},
"比较两个数并输出较小数.mix": {
"__file__": true,
"__name__": "比较两个数并输出较小数.mix"
},
"温度转换.mix": {
"__file__": true,
"__name__": "温度转换.mix"
},
"__file__": false,
"__name__": "第8课"
},
"__file__": false,
"__name__": "六年级"
},
"__file__": false,
"__name__": "教学指南米思齐修订版"
}
}

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="-R?$,g?yY$eWQQ1yvnIw" x="-422" y="-51"><field name="VAR">year</field><value name="VALUE"><block type="inout_type_input" id="5Q.H$;P/hkT~(RO8)0}="><field name="DIR">int</field><value name="VAR"><shadow type="text" id=")bt[ALwgSd2(F;pH4T3s"><field name="TEXT">请输入一个年份:</field></shadow></value></block></value><next><block type="controls_if" id="2p0@;6}`HRfsK0@4RoHB"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_operation" id="?~$/(V?#,{=QF~AcqFq7"><field name="OP">AND</field><value name="A"><block type="logic_compare" id="TPdZ$XVif=,])!LX}T5Q"><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="H8$P|zeahVw(sT}ztjLf"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="uM_c/6Z*f*KaGT,+=iS#"><field name="NUM">1</field></shadow><block type="variables_get" id="Oqlzy2#{#R0D~KzAFuA]"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="3CDuh`b{j).}cqi0i$p}"><field name="NUM">4</field></shadow></value></block></value><value name="B"><block type="math_number" id="$W1q#gi]F[9Y=|*Lh^rN"><field name="NUM">0</field></block></value></block></value><value name="B"><block type="logic_compare" id="yFV`r?JS~kh`p?YRZ:,*"><field name="OP">NEQ</field><value name="A"><block type="math_arithmetic" id="y5vq,aq@tBw_.Ojt)TU2"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="uM_c/6Z*f*KaGT,+=iS#"><field name="NUM">1</field></shadow><block type="variables_get" id="e2s!76dOm+~f.nKru0W)"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="PQ2I?UkyR7?Ja.G8a@b,"><field name="NUM">100</field></shadow></value></block></value><value name="B"><block type="math_number" id="n~tjsK*Bv:qnTFXArt!A"><field name="NUM">0</field></block></value></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="w5:=X8qq{^CzA]{BabV@"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id=":w_RDJ7N^fiK{f.7^LL:"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="TQmMZn~$APFYv?|o0mkX"><field name="TEXT">是闰年</field></block></value></block></statement><value name="IF1"><block type="logic_compare" id="^rf_.AW~Aps;XDYPuhI["><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="qk}+,NlI_/r7,](=kH5,"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="uM_c/6Z*f*KaGT,+=iS#"><field name="NUM">1</field></shadow><block type="variables_get" id="-#}kl[+CFk62:j-$Dv7e"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="*`Xb_5o:zNL`}iIYB~gn"><field name="NUM">400</field></shadow></value></block></value><value name="B"><block type="math_number" id="(2nk5}I![TyLA1f/KqcR"><field name="NUM">0</field></block></value></block></value><statement name="DO1"><block type="inout_print_many" id="dl2dO-;ZXORx3G/Laftn"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="5G8nk#He`eV._I|+Mb?a"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="NQhCarKhkl$Zg_FnR#TF"><field name="TEXT">是闰年</field></block></value></block></statement><statement name="ELSE"><block type="inout_print_many" id="G,.nKD}~$SO{j$v9M6f1"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="pjCNM*FORKhWb`SbG4)-"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="5b9vl.cwGi=Y[l#N74ZW"><field name="TEXT">是平年</field></block></value></block></statement></block></next></block></xml><config>{}</config><code>eWVhciA9IGludChpbnB1dCgn6K+36L6T5YWl5LiA5Liq5bm05Lu977yaJykpCmlmIHllYXIgJSA0ID09IDAgYW5kIHllYXIgJSAxMDAgIT0gMDoKICAgIHByaW50KHllYXIsICfmmK/pl7DlubQnKQplbGlmIHllYXIgJSA0MDAgPT0gMDoKICAgIHByaW50KHllYXIsICfmmK/pl7DlubQnKQplbHNlOgogICAgcHJpbnQoeWVhciwgJ+aYr+W5s+W5tCcpCg==</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="ZvKRW4ew-Bd4/V+?5G/c" x="-616" y="-48"><field name="VAR">start_time</field><value name="VALUE"><block type="controls_millis" id="j3xIg2ift+=@La{@a;D~"></block></value><next><block type="variables_set" id="7`.+!DeSA#w7lF3895TN"><field name="VAR">i</field><value name="VALUE"><block type="math_number" id="@PCbj|)4aHa[u=o#5~^6"><field name="NUM">1</field></block></value><next><block type="controls_whileUntil" id="kTmL:K.^K`pTAd88jido"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Fja6m=H|j|xXQejl6mTd"><field name="BOOL">TRUE</field></shadow><block type="logic_compare" id="?Iho0oIgI7v0*6/]mvV8"><field name="OP">LTE</field><value name="A"><block type="variables_get" id="Ph!;YS@AxT?cHRoBWTOl"><field name="VAR">i</field></block></value><value name="B"><block type="math_number" id="}3n(No50U(JZ0gM=RceE"><field name="NUM">1000</field></block></value></block></value><statement name="DO"><block type="inout_print" id="X}]v]0PnEZ~82*m*:H}/"><value name="VAR"><shadow type="text" id="6NItm[YB$1RC(e8R2X9k"><field name="TEXT">Hello</field></shadow><block type="variables_get" id="3Z~UxMGoi,H_~2zrR=Y#"><field name="VAR">i</field></block></value><next><block type="variables_set" id=":{;FGV!66ijWM?)H`0Ng"><field name="VAR">i</field><value name="VALUE"><block type="math_arithmetic" id="#.yS0=:)Q7kH6!(cBhAT"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="6qXh9drcsYxQhn?LmH}-"><field name="NUM">1</field></shadow><block type="variables_get" id="OX^RR@!hWI6WBmHo(!yW"><field name="VAR">i</field></block></value><value name="B"><shadow type="math_number" id="GO*s7rfsfyuHZSJj/X#J"><field name="NUM">1</field></shadow></value></block></value></block></next></block></statement><next><block type="variables_set" id=";Wp=A_e6JN,6Q~n)Al{+"><field name="VAR">end_time</field><value name="VALUE"><block type="controls_millis" id="f4rX?-8Za^wzM{z]Zm]["></block></value><next><block type="inout_print_many" id="gspMgb!_XBa2bv4.tfqg"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="VL1:^@)#5p/uy?~)!5Ag"><field name="TEXT">输出1~1000所花时间为</field></block></value><value name="ADD1"><block type="math_arithmetic" id="6g17u895anXpNw!cRX1?"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="f/aB2V-@pi{dg#n@AcwL"><field name="NUM">1</field></shadow><block type="variables_get" id="BMi?L~;a+)uvMf9vtrU("><field name="VAR">end_time</field></block></value><value name="B"><shadow type="math_number" id="s5Et5=NE;hr2]vQ5=I@R"><field name="NUM">1</field></shadow><block type="variables_get" id="GptAtR4(.sd7eUkyRTuA"><field name="VAR">start_time</field></block></value></block></value><value name="ADD2"><block type="text" id="gyh!)g3oYeYscC5lp;a`"><field name="TEXT">秒</field></block></value></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKCgpzdGFydF90aW1lID0gdGltZS50aW1lKCkKaSA9IDEKd2hpbGUgaSA8PSAxMDAwOgogICAgcHJpbnQoaSkKICAgIGkgPSBpICsgMQplbmRfdGltZSA9IHRpbWUudGltZSgpCnByaW50KCfovpPlh7oxfjEwMDDmiYDoirHml7bpl7TkuLonLCBlbmRfdGltZSAtIHN0YXJ0X3RpbWUsICfnp5InKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="otn94-@p`V|Q5tU-lgN7" x="-616" y="-48"><field name="VAR">start_time</field><value name="VALUE"><block type="controls_millis" id="5/~DspnhOeb|7.ioK4e$"></block></value><next><block type="variables_set" id="$;YvKZ3?fOBgNG.fD]*N"><field name="VAR">i</field><value name="VALUE"><block type="math_number" id="E^J9^sNQ[qqF|M0ESFM5"><field name="NUM">1</field></block></value><next><block type="variables_set" id="bIrmS}.8nN~+ph!mU8uo"><field name="VAR">sum</field><value name="VALUE"><block type="math_number" id="N3Om@h47qg.Q(A[8?]TD"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="et`p6JUHh65srC?mA2:?"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="N=L2AbnfWIO0IC|0!Y9w"><field name="BOOL">TRUE</field></shadow><block type="logic_compare" id="#AcO=vefC2y_UpR@B7V1"><field name="OP">LTE</field><value name="A"><block type="variables_get" id="s_q#@OS/.0UkO!7QEkvo"><field name="VAR">i</field></block></value><value name="B"><block type="math_number" id="oFP.kXGh}^EiQw_w~Lt:"><field name="NUM">1000000</field></block></value></block></value><statement name="DO"><block type="variables_set" id="wy$]X_oGPrI9Kq#$2Rs3"><field name="VAR">sum</field><value name="VALUE"><block type="math_arithmetic" id="N|lDRBTyMXajVe+z:,$D"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="2ee:r;yy_X/v!+rv{y[6"><field name="NUM">1</field></shadow><block type="variables_get" id="6=1K|licE*_*d=iw,D?h"><field name="VAR">sum</field></block></value><value name="B"><shadow type="math_number" id="u]kF;Z5=$$^Vtf(Hf3c~"><field name="NUM">1</field></shadow><block type="variables_get" id="z;R7X.?s~(:uiOie,LoF"><field name="VAR">i</field></block></value></block></value><next><block type="variables_set" id="=_O}w+*siC;m^GF57pRi"><field name="VAR">i</field><value name="VALUE"><block type="math_arithmetic" id="W9MP-^!#oPoItOfg0?J@"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="2ee:r;yy_X/v!+rv{y[6"><field name="NUM">1</field></shadow><block type="variables_get" id="JwagDWCY$5,Hk{7y+etF"><field name="VAR">i</field></block></value><value name="B"><shadow type="math_number" id="y1hSPdjK;o~gt(o9mq!I"><field name="NUM">1</field></shadow></value></block></value></block></next></block></statement><next><block type="inout_print_many" id="$T/=F?mj_6xG3K{3,qF5"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="oY]BS|o7.ISAg@[n6|SD"><field name="TEXT">1+2+……+1000000=</field></block></value><value name="ADD1"><block type="variables_get" id="8j_-EfMMe.XIO7@#S/e$"><field name="VAR">sum</field></block></value><next><block type="variables_set" id="qujcF)U*(^)__pZ$4I2L"><field name="VAR">end_time</field><value name="VALUE"><block type="controls_millis" id="(vuDPyuEva*rs!#o/H3v"></block></value><next><block type="inout_print_many" id="tffMhEIyj!tjXe5z3FJw"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="yJk$D`)j#X$c4fa7PkPu"><field name="TEXT">累加1~1000000所花时间为</field></block></value><value name="ADD1"><block type="math_arithmetic" id="{](M4JMywR0J=;TEdXK5"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="Ti3Bqy!}fvRrgqSsrdG@"><field name="NUM">1</field></shadow><block type="variables_get" id="Cf)cAM/Ow1=k.`@z3GIt"><field name="VAR">end_time</field></block></value><value name="B"><shadow type="math_number" id="$mj|G2+)]qZnaYej;sxl"><field name="NUM">1</field></shadow><block type="variables_get" id="YBlB=ZJHPmC)VkW/`2;d"><field name="VAR">start_time</field></block></value></block></value><value name="ADD2"><block type="text" id="KIbKrh].=_$b}EygPE-E"><field name="TEXT">秒</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKCgpzdGFydF90aW1lID0gdGltZS50aW1lKCkKaSA9IDEKc3VtMiA9IDAKd2hpbGUgaSA8PSAxMDAwMDAwOgogICAgc3VtMiA9IHN1bTIgKyBpCiAgICBpID0gaSArIDEKcHJpbnQoJzErMivigKbigKYrMTAwMDAwMD0nLCBzdW0yKQplbmRfdGltZSA9IHRpbWUudGltZSgpCnByaW50KCfntK/liqAxfjEwMDAwMDDmiYDoirHml7bpl7TkuLonLCBlbmRfdGltZSAtIHN0YXJ0X3RpbWUsICfnp5InKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="controls_forEach" id="g.^o$yehb91Ydu{l*Df0" x="-556" y="-100"><value name="LIST"><shadow type="list_many_input" id="*C;J=n[@-$3eDRQi#SWL"><field name="CONTENT">'welcome','to','our','world'</field></shadow></value><value name="VAR"><shadow type="variables_get" id="Mj_Q7o{i(cV*/]OAhg/x"><field name="VAR">str</field></shadow></value><statement name="DO"><block type="inout_print_inline" id="KS$uc96C~@PJT5V}o(*["><value name="VAR"><shadow type="text" id="]48MAi43,@1#am}UkwkN"><field name="TEXT">Hello</field></shadow><block type="variables_get" id="^kWHla!,N_~3xqGAL}:n"><field name="VAR">str</field></block></value></block></statement></block></xml><config>{}</config><code>Zm9yIHN0cjIgaW4gWyd3ZWxjb21lJywndG8nLCdvdXInLCd3b3JsZCddOgogICAgcHJpbnQoc3RyMixlbmQgPSIiKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="bIrmS}.8nN~+ph!mU8uo" x="-586" y="-104"><field name="VAR">n</field><value name="VALUE"><block type="math_number" id="N3Om@h47qg.Q(A[8?]TD"><field name="NUM">101</field></block></value><next><block type="controls_whileUntil" id="et`p6JUHh65srC?mA2:?"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="N=L2AbnfWIO0IC|0!Y9w"><field name="BOOL">TRUE</field></shadow><block type="logic_compare" id="#AcO=vefC2y_UpR@B7V1"><field name="OP">LTE</field><value name="A"><block type="variables_get" id="s_q#@OS/.0UkO!7QEkvo"><field name="VAR">n</field></block></value><value name="B"><block type="math_number" id="oFP.kXGh}^EiQw_w~Lt:"><field name="NUM">200</field></block></value></block></value><statement name="DO"><block type="controls_if" id="kJH|iQ$j):3O7.H/L+@r"><value name="IF0"><block type="logic_operation" id="==L,KsdwOLbm!v{Rx*z;"><field name="OP">AND</field><value name="A"><block type="logic_compare" id="l7[Z88)EnF!G_u`sQUo3"><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="#lSaoU1idZ:kPz^?e0OP"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="F+1a/0iwFz]]st;ZKR3D"><field name="NUM">1</field></shadow><block type="variables_get" id="w@q!bb]|67MGH/I=!jjj"><field name="VAR">n</field></block></value><value name="B"><shadow type="math_number" id="]Ri=Bk[D`8S!DPbWPObl"><field name="NUM">5</field></shadow></value></block></value><value name="B"><block type="math_number" id="iv$1QAeS6)zR^w=c,Yw5"><field name="NUM">3</field></block></value></block></value><value name="B"><block type="logic_compare" id="qE8c?-RxQ;13}62CB1N/"><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="S}a2-:lNI{yaN/u;+F9`"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="F+1a/0iwFz]]st;ZKR3D"><field name="NUM">1</field></shadow><block type="variables_get" id=":2=5h@?Qe!EfMV`HU]8:"><field name="VAR">n</field></block></value><value name="B"><shadow type="math_number" id="#EQRVj_AOSn_liU#h0F*"><field name="NUM">7</field></shadow></value></block></value><value name="B"><block type="math_number" id="oDOmDrmG$jyy$65Tp?^."><field name="NUM">2</field></block></value></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="$T/=F?mj_6xG3K{3,qF5"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="oY]BS|o7.ISAg@[n6|SD"><field name="TEXT">符合条件的玩具数量:</field></block></value><value name="ADD1"><block type="variables_get" id="8j_-EfMMe.XIO7@#S/e$"><field name="VAR">n</field></block></value></block></statement><next><block type="variables_set" id="di_gpeJ{QaBIct:Th-UV"><field name="VAR">n</field><value name="VALUE"><block type="math_arithmetic" id="KSLc-[BBepl*J5YF1.;B"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="hEJbkT{RW#=rp3=xQUyH"><field name="NUM">1</field></shadow><block type="variables_get" id="-HUQJ;}/-UpGK|e9v#t)"><field name="VAR">n</field></block></value><value name="B"><shadow type="math_number" id="f/w5b4DALPuVu@`(z=D_"><field name="NUM">3</field></shadow></value></block></value></block></next></block></statement></block></next></block></xml><config>{}</config><code>biA9IDEwMQp3aGlsZSBuIDw9IDIwMDoKICAgIGlmIG4gJSA1ID09IDMgYW5kIG4gJSA3ID09IDI6CiAgICAgICAgcHJpbnQoJ+espuWQiOadoeS7tueahOeOqeWFt+aVsOmHj++8micsIG4pCiAgICBuID0gbiArIDMK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="-R?$,g?yY$eWQQ1yvnIw" x="-487" y="-84"><field name="VAR">height</field><value name="VALUE"><block type="inout_type_input" id="5Q.H$;P/hkT~(RO8)0}="><field name="DIR">float</field><value name="VAR"><shadow type="text" id=")bt[ALwgSd2(F;pH4T3s"><field name="TEXT">请输入您的身高(米):</field></shadow></value></block></value><next><block type="controls_if" id="2p0@;6}`HRfsK0@4RoHB"><mutation else="1"></mutation><value name="IF0"><block type="logic_compare" id="TPdZ$XVif=,])!LX}T5Q"><field name="OP">LT</field><value name="A"><block type="variables_get" id="^.-!rzU{YCc|hc$yT6]="><field name="VAR">height</field></block></value><value name="B"><block type="math_number" id="$W1q#gi]F[9Y=|*Lh^rN"><field name="NUM">1.2</field></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="w5:=X8qq{^CzA]{BabV@"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="TQmMZn~$APFYv?|o0mkX"><field name="TEXT">您的身高为:</field></block></value><value name="ADD1"><block type="variables_get" id="dO04_XE?P9.K=mSQ2:R:"><field name="VAR">height</field></block></value><value name="ADD2"><block type="text" id="2wmCck-jR69sr^:U`]fq"><field name="TEXT">米,免票</field></block></value></block></statement><statement name="ELSE"><block type="inout_print_many" id="}A!d0HXuvJq(P1~@^i,*"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="dA89V.Jh4PYDKy5)/87-"><field name="TEXT">您的身高为:</field></block></value><value name="ADD1"><block type="variables_get" id="RR=h_hWa(tsxbSiHn4.t"><field name="VAR">height</field></block></value><value name="ADD2"><block type="text" id="mrlx/Q*DPtgKG-e{DvUG"><field name="TEXT">米,可以购买半价票</field></block></value></block></statement></block></next></block></xml><config>{}</config><code>aGVpZ2h0ID0gZmxvYXQoaW5wdXQoJ+ivt+i+k+WFpeaCqOeahOi6q+mrmO+8iOexs++8ie+8micpKQppZiBoZWlnaHQgPCAxLjI6CiAgICBwcmludCgn5oKo55qE6Lqr6auY5Li677yaJywgaGVpZ2h0LCAn57Gz77yM5YWN56WoJykKZWxzZToKICAgIHByaW50KCfmgqjnmoTouqvpq5jkuLrvvJonLCBoZWlnaHQsICfnsbPvvIzlj6/ku6XotK3kubDljYrku7fnpagnKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="-R?$,g?yY$eWQQ1yvnIw" x="-487" y="-84"><field name="VAR">a</field><value name="VALUE"><block type="inout_type_input" id="5Q.H$;P/hkT~(RO8)0}="><field name="DIR">int</field><value name="VAR"><shadow type="text" id=")bt[ALwgSd2(F;pH4T3s"><field name="TEXT">输入科普书的册数:</field></shadow></value></block></value><next><block type="variables_set" id=".g3B,yUItf.G]0!4:U+q"><field name="VAR">h</field><value name="VALUE"><block type="math_arithmetic" id="SMPJJDofE7CKv)VmD?#-"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="wv+?nIV(ItVfy}l`z2P{"><field name="NUM">1</field></shadow><block type="variables_get" id="!;a|Gqjewb$;{}eQrLJx"><field name="VAR">a</field></block></value><value name="B"><shadow type="math_number" id="K{[cbcv@tY@{R(iH5#r9"><field name="NUM">8</field></shadow></value></block></value><next><block type="variables_set" id="Q)xOk|QtppLdF!wN72DA"><field name="VAR">b</field><value name="VALUE"><block type="inout_type_input" id="]Z8m0T`@aHyr=0*P+cy*"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="q5Q=*LWxH5)ju^xTu4C@"><field name="TEXT">输入故事书的册数:</field></shadow></value></block></value><next><block type="variables_set" id="?J-EjJzOzBuOB*VrTusw"><field name="VAR">j</field><value name="VALUE"><block type="math_arithmetic" id="r+UsPw-?_zKDilI}ATEh"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="wv+?nIV(ItVfy}l`z2P{"><field name="NUM">1</field></shadow><block type="variables_get" id="`}XIHOCwZA8BlUZI1e,j"><field name="VAR">b</field></block></value><value name="B"><shadow type="math_number" id="HtG=t?R`ADWJW~iS7?k."><field name="NUM">9</field></shadow></value></block></value><next><block type="variables_set" id="]`Zu[mpG!#,UpvdOervZ"><field name="VAR">s</field><value name="VALUE"><block type="math_arithmetic" id="~5=8S4AamDLQZN/-**Jq"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="wv+?nIV(ItVfy}l`z2P{"><field name="NUM">1</field></shadow><block type="variables_get" id="pc}|]h7z*Au-xTB~Ljl~"><field name="VAR">h</field></block></value><value name="B"><shadow type="math_number" id="f$o^=`[uJN*ht;8`:cu^"><field name="NUM">9</field></shadow><block type="variables_get" id="}$|`C1GIxE{]RGKQTR;j"><field name="VAR">j</field></block></value></block></value><next><block type="inout_print_many" id="w5:=X8qq{^CzA]{BabV@"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="TQmMZn~$APFYv?|o0mkX"><field name="TEXT">购书费用是:</field></block></value><value name="ADD1"><block type="variables_get" id="QOB{2E_rxhB)2:kQSS(u"><field name="VAR">s</field></block></value></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>YSA9IGludChpbnB1dCgn6L6T5YWl56eR5pmu5Lmm55qE5YaM5pWw77yaJykpCmggPSBhICogOApiID0gaW50KGlucHV0KCfovpPlhaXmlYXkuovkuabnmoTlhozmlbDvvJonKSkKaiA9IGIgKiA5CnMgPSBoICsgagpwcmludCgn6LSt5Lmm6LS555So5piv77yaJywgcykK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="lP5vcAMqmIb=b0upxF)?" x="-802" y="-135"><field name="VAR">num</field><value name="VALUE"><block type="list_many_input" id="-rn_Ue:1:1Wy5;_mo]Lc"><field name="CONTENT">17,19,15,20,19</field></block></value><next><block type="variables_set" id=":8@XmhJ0Yv2}B9]tpiEC"><field name="VAR">cc</field><value name="VALUE"><block type="list_trig" id="]2?bx5k~z9_9~S@N2W]L"><field name="OP">LEN</field><value name="data"><shadow type="variables_get" id="T(+3q3TN4fy![JVGi54S"><field name="VAR">num</field></shadow></value></block></value><next><block type="variables_set" id="gLZ*+E:E#T5M`n$hE7X-"><field name="VAR">a</field><value name="VALUE"><block type="lists_get_index" id="?:Cf0?2,{TKma#b{r-wm"><value name="LIST"><shadow type="variables_get" id="x3PW$9.4BG~w4Wblq2@|"><field name="VAR">num</field></shadow></value><value name="AT"><shadow type="math_number" id="8}6=E`QB~kx8@2+p,l0j"><field name="NUM">0</field></shadow></value></block></value><next><block type="variables_set" id="]qALM6PMq{R!-;:.!!uD"><field name="VAR">i</field><value name="VALUE"><block type="math_number" id="V+RZ5bKIL`+/.ruSnnt!"><field name="NUM">1</field></block></value><next><block type="controls_whileUntil" id=")ShbCY*kzHTK?ac.eT*v"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=".T|+-NhOeT[LI#K+rSwj"><field name="BOOL">TRUE</field></shadow><block type="logic_compare" id="vYEtzl9{U-)kLI_;y:.o"><field name="OP">LT</field><value name="A"><block type="variables_get" id=";6*XGo]dFWQHQC+ok{ME"><field name="VAR">i</field></block></value><value name="B"><block type="variables_get" id="h:2/W-+TmmXMrod8evGe"><field name="VAR">cc</field></block></value></block></value><statement name="DO"><block type="controls_if" id=";l*gN2ns9gb#{xMCu`Pe"><value name="IF0"><block type="logic_compare" id="YdG2$4_w(P`TSn=XUQBA"><field name="OP">GT</field><value name="A"><block type="lists_get_index" id="P#s5wu;Px/NX_.~A`:iD"><value name="LIST"><shadow type="variables_get" id="b7^c]DtF1Pd/hyJTHO.9"><field name="VAR">num</field></shadow></value><value name="AT"><shadow type="math_number" id="]Gy*.C=87UXi]doDV!`^"><field name="NUM">0</field></shadow><block type="variables_get" id="8fow#.Jy7o`g5nJ,Dhu5"><field name="VAR">i</field></block></value></block></value><value name="B"><block type="variables_get" id="oN4rOpP^krHV-(HhT)wR"><field name="VAR">a</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="xd,4={8bmbM+;m[FaoIT"><field name="VAR">a</field><value name="VALUE"><block type="lists_get_index" id="ihF|[,wIE/x$76}R/A^|"><value name="LIST"><shadow type="variables_get" id="C)g8G3qUxW4fST@c[c:$"><field name="VAR">num</field></shadow></value><value name="AT"><shadow type="math_number" id="s*Q8[xXJ,cgO5Y;$!(ZM"><field name="NUM">0</field></shadow><block type="variables_get" id="+*^]JaH06iPv~E*348$J"><field name="VAR">i</field></block></value></block></value></block></statement><next><block type="variables_set" id="5.r[iD52~kuj+KSTV0g5"><field name="VAR">i</field><value name="VALUE"><block type="math_arithmetic" id=";[TG.@X_)fRw4j/7+-le"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="fdAf!6P@PNU92@[/s):W"><field name="NUM">1</field></shadow><block type="variables_get" id="sk,e/suTr(Zjektv8X0X"><field name="VAR">i</field></block></value><value name="B"><shadow type="math_number" id="2@E5SX;(/b[Y,XW$_G^e"><field name="NUM">1</field></shadow></value></block></value></block></next></block></statement><next><block type="inout_print_many" id="{y3Nrgd?AHHNT5vmq_RL"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="Dv$mZJ@4hk92=E61TMl["><field name="TEXT">最大数为</field></block></value><value name="ADD1"><block type="variables_get" id="VZGIZ9F#r/yd`Yy[iQ=W"><field name="VAR">a</field></block></value></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1hdGgKCgpudW0gPSBbMTcsMTksMTUsMjAsMTldCmNjID0gbGVuKG51bSkKYSA9IG51bVswXQppID0gMQp3aGlsZSBpIDwgY2M6CiAgICBpZiBudW1baV0gPiBhOgogICAgICAgIGEgPSBudW1baV0KICAgIGkgPSBpICsgMQpwcmludCgn5pyA5aSn5pWw5Li6JywgYSkK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="R(w+..bO#^[eX4iLdlf^" x="-276" y="-193"><field name="VAR">a</field><value name="VALUE"><block type="inout_type_input" id="?xD~vs+h{BU0|O0my2HZ"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="3b4hG/(1yKd+EAGfX*dM"><field name="TEXT">一共有多少个头:</field></shadow></value></block></value><next><block type="variables_set" id="3C?ek~+}ksUCbib~hL|p"><field name="VAR">b</field><value name="VALUE"><block type="inout_type_input" id=".urRE)FG~kjU7*]yDNMZ"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="*gE``8#;_aZm2vyONNg["><field name="TEXT">一共有多少只脚:</field></shadow></value></block></value><next><block type="variables_set" id="T=4]I+^@G0!XW|v}Df$x"><field name="VAR">c</field><value name="VALUE"><block type="math_arithmetic" id="dOn|1$EX,wI$Y^+K/_Xw"><field name="OP">DIVIDE</field><value name="A"><shadow type="math_number" id="NXtm3;_Dsfhm{Drpo)MH"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="I2tM;xAwtnFAde|am2fU"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="kK^xF#9{HVK#9Y_@81Ho"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="t4IRnlOP75yjGW50y;|)"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="oWmvw^J@w0E.K_N@Ky[x"><field name="NUM">1</field></shadow><block type="variables_get" id="ru~!dky~lvkiX13TK_P6"><field name="VAR">a</field></block></value><value name="B"><shadow type="math_number" id="sMIw+oK~_A`1F7;vuEI7"><field name="NUM">4</field></shadow></value></block></value><value name="B"><shadow type="math_number" id="C9U;dREUHb1@hwOPOszq"><field name="NUM">1</field></shadow><block type="variables_get" id="KuVITTfD-5?^ExP4(xYA"><field name="VAR">b</field></block></value></block></value><value name="B"><shadow type="math_number" id="PjNqZv3TL}`$5p[xZ;DK"><field name="NUM">2</field></shadow></value></block></value><next><block type="inout_print_many" id=".Noj;poL*3ZlbAzd6wnb"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="QdKak}y2nxCcu-o$}=|;"><field name="TEXT">鸡有:</field></block></value><value name="ADD1"><block type="text_to_number" id="sHV=wH;7.F{!nA|,[=s,"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="T-RuoI_U|i=`-U^-Cb-["><field name="VAR">x</field></shadow><block type="variables_get" id="@2tK=[c9S~_rA?tFz=Qr"><field name="VAR">c</field></block></value></block></value><value name="ADD2"><block type="text" id="u)M7gK7qy^{XOpMeYA!G"><field name="TEXT">只</field></block></value><next><block type="inout_print_many" id="2{=?,+8TN4Ibzn#`zW2i"><mutation items="3"></mutation><value name="ADD0"><block type="text" id="2Y06PUp*2Ht6C[n)$XZ}"><field name="TEXT">兔有:</field></block></value><value name="ADD1"><block type="text_to_number" id="4(vMJx~G*F=ZQ.L$+qRg"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="T-RuoI_U|i=`-U^-Cb-["><field name="VAR">x</field></shadow><block type="math_arithmetic" id="b+PHw+as*=`ik@ph:8Mo"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="oWmvw^J@w0E.K_N@Ky[x"><field name="NUM">1</field></shadow><block type="variables_get" id="K=kSHX.58Nb`N)v@r}+G"><field name="VAR">a</field></block></value><value name="B"><shadow type="math_number" id="?nW9)/{jjZlnx1w}I?bv"><field name="NUM">4</field></shadow><block type="variables_get" id="P^mA)$0Bt~fo!0vOwXT^"><field name="VAR">c</field></block></value></block></value></block></value><value name="ADD2"><block type="text" id="_}Do?f/GfJ.pIIss3cSz"><field name="TEXT">只</field></block></value></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>YSA9IGludChpbnB1dCgn5LiA5YWx5pyJ5aSa5bCR5Liq5aS077yaJykpCmIgPSBpbnQoaW5wdXQoJ+S4gOWFseacieWkmuWwkeWPquiEmu+8micpKQpjID0gKGEgKiA0IC0gYikgLyAyCnByaW50KCfpuKHmnInvvJonLCBpbnQoYyksICflj6onKQpwcmludCgn5YWU5pyJ77yaJywgaW50KChhIC0gYykpLCAn5Y+qJykK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="FeJO!Dy)XaIKt^^ZU@6u" x="-607" y="-102"><field name="VAR">a</field><value name="VALUE"><block type="math_number" id="tzebmD6G)d~r6!zOL5yN"><field name="NUM">35</field></block></value><next><block type="variables_set" id="2bo@A/H(U![@k8EYzp0J"><field name="VAR">b</field><value name="VALUE"><block type="math_number" id="[`UuPYFSw!nzdtjI]X]["><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="{Ul{qo=^Y}4b;rc1rGe]"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="DX_??^ib}6ca!ZWGeDt("><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="ftWbIO]xI!xzy=1FdUbD"><field name="VAR">c</field><value name="VALUE"><block type="math_arithmetic" id="7;]K+adhsP4_;B:?]=vW"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="U5u8^/cERyr;JCQcKjE@"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="}D+^zN|NmIcD9V=Pg-vR"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="k5clc4Endnr1DsOu9te^"><field name="NUM">1</field></shadow><block type="variables_get" id=":.Sb2d5eH$q_[,WgRN@j"><field name="VAR">a</field></block></value><value name="B"><shadow type="math_number" id="9Lt|]Zr5W8(,GVb2RfKi"><field name="NUM">2</field></shadow></value></block></value><value name="B"><shadow type="math_number" id="rjtPurzun,$5KyVQC]J="><field name="NUM">1</field></shadow><block type="math_arithmetic" id="iZ:!,xjeA?-/Y.NO#TQh"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="k5clc4Endnr1DsOu9te^"><field name="NUM">1</field></shadow><block type="variables_get" id="!J`RYL@K9`QdmGkQg4dC"><field name="VAR">b</field></block></value><value name="B"><shadow type="math_number" id="OuaK@8NC.MM)XRWKxaQZ"><field name="NUM">4</field></shadow></value></block></value></block></value><next><block type="controls_if" id="kHyoU~Qu_79J2-+IAj^z"><mutation else="1"></mutation><value name="IF0"><block type="logic_compare" id="IWp}}WN#~3lWDn:(eo9s"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="UmaZYX9Fo3pH!*qGkJ5|"><field name="VAR">c</field></block></value><value name="B"><block type="math_number" id="jn^lSiP8_qS8F4*|c*`y"><field name="NUM">94</field></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="GeJ6z~~Qie|m;LjQT|lq"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="9s6-6O;|+1(1~+lqRmFX"><field name="TEXT">鸡的数量:</field></block></value><value name="ADD1"><block type="variables_get" id="0B*GLD4.us4Bn/R[f}hC"><field name="VAR">a</field></block></value><next><block type="inout_print_many" id="kqDa$mw8[uedADFP!MyK"><mutation items="2"></mutation><value name="ADD0"><block type="text" id="C!|?_-]GT,c7*!mzT:|?"><field name="TEXT">兔的数量:</field></block></value><value name="ADD1"><block type="variables_get" id="Z9T9Q36{5kt=x7H1y[t$"><field name="VAR">b</field></block></value><next><block type="controls_flow_statements" id="/ES$/7enByM@?7BgRBEp"><field name="FLOW">BREAK</field></block></next></block></next></block></statement><statement name="ELSE"><block type="variables_set" id=":o81MdCzs=tX,Y`cJXRY"><field name="VAR">a</field><value name="VALUE"><block type="math_arithmetic" id="OF]!roH4Qr=|DGjv@ZA8"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="f:G`BJFLWcM#WMvGN=+Y"><field name="NUM">1</field></shadow><block type="variables_get" id="Og)fn6$x~*e6,}L8X,+f"><field name="VAR">a</field></block></value><value name="B"><shadow type="math_number" id="w~/Zz6:oTZEV89NO#j3?"><field name="NUM">1</field></shadow></value></block></value><next><block type="variables_set" id="5JwK#W.zFHRzAc=!3![R"><field name="VAR">b</field><value name="VALUE"><block type="math_arithmetic" id="?k?qHuzfaJ~UVQb9OI4("><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="f:G`BJFLWcM#WMvGN=+Y"><field name="NUM">1</field></shadow><block type="variables_get" id="V~pN3FSueI^dx6-R.+YD"><field name="VAR">b</field></block></value><value name="B"><shadow type="math_number" id="RQ(/P2beFE29$ww)-EfY"><field name="NUM">1</field></shadow></value></block></value></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>YSA9IDM1CmIgPSAwCndoaWxlIFRydWU6CiAgICBjID0gYSAqIDIgKyBiICogNAogICAgaWYgYyA9PSA5NDoKICAgICAgICBwcmludCgn6bih55qE5pWw6YeP77yaJywgYSkKICAgICAgICBwcmludCgn5YWU55qE5pWw6YeP77yaJywgYikKICAgICAgICBicmVhawogICAgZWxzZToKICAgICAgICBhID0gYSAtIDEKICAgICAgICBiID0gYiArIDEK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="Uj7N{E8utG]O(A|`RlA|" x="-57" y="-34"><field name="VAR">reponse</field><value name="VALUE"><block type="requests_get" id="AY@5/6.i9eO_$),7jHZP"><field name="TYPE">get</field><value name="URL"><shadow type="text" id="/(nd=bIa_}=I#bf5gSo^"><field name="TEXT">https://mixio.org/api/v1/getData?user=demo@mixly.org&amp;password=b81e53f441d90152cdfb9731c5db92da&amp;project=通用演示&amp;topic=光照强度&amp;num=10</field></shadow></value></block></value><next><block type="inout_print" id="^bH~^+44W]A~mYA8vt^m"><value name="VAR"><shadow type="text" id="4^l#tRVBLd.$fR@i/wFm"><field name="TEXT">Hello</field></shadow><block type="requests_attribute" id="VT2G2A]I^~cSy+.[|$]["><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="1f|]:LreFY~sxEvOmr/c"><field name="VAR">reponse</field></shadow></value></block></value><next><block type="variables_set" id="AP$I{V,(*lEW~8tt/v.c"><field name="VAR">mydict</field><value name="VALUE"><block type="json_to_dicts" id="(AR?Xq1k+3DoSYcm8P!-"><value name="VAR"><shadow type="text" id="yGR:rq5K]@nMRZefsC=N"><field name="TEXT">{"name":"Mixly","color":"green"}</field></shadow><block type="requests_attribute" id="h;3MqdU2$K||-ebx$yR2"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="))xyD2:YO4,I`K{oP^XL"><field name="VAR">reponse</field></shadow></value></block></value></block></value><next><block type="controls_forEach" id="@~`1Rx5vGt;crq1__qwO"><value name="LIST"><shadow type="list_many_input" id="{~$J}dFQ0jFm]}3_iG@o"><field name="CONTENT">0,1,2,3</field></shadow><block type="dicts_get" id="N1T{U!qI`!3AX{R;Jx(P"><value name="DICT"><shadow type="variables_get" id="P]hQ99xWHj}#*e4L$Pbf"><field name="VAR">mydict</field></shadow></value><value name="KEY"><shadow type="text" id="e;E-}7#HcHycoDc2g@8y"><field name="TEXT">data</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="(t49;3b}0DVe=k$4XhQP"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="inout_print" id="hqr[q]K3r+)r5@@qGK58"><value name="VAR"><shadow type="text" id="gBrW8Tm;{LWl~6b1JCIU"><field name="TEXT">Hello</field></shadow><block type="variables_get" id="}ix3c[kmJv;;I5g3U]f."><field name="VAR">i</field></block></value></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5vcmcvYXBpL3YxL2dldERhdGE/dXNlcj1kZW1vQG1peGx5Lm9yZyZwYXNzd29yZD1iODFlNTNmNDQxZDkwMTUyY2RmYjk3MzFjNWRiOTJkYSZwcm9qZWN0PemAmueUqOa8lOekuiZ0b3BpYz3lhYnnhaflvLrluqYmbnVtPTEwJykKcHJpbnQocmVwb25zZS50ZXh0KQpteWRpY3QgPSBqc29uLmxvYWRzKHJlcG9uc2UudGV4dCkKZm9yIGkgaW4gbXlkaWN0WydkYXRhJ106CiAgICBwcmludChpKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="eeBXC/Kc;2!|ymIKY#iQ" x="-433" y="-257"><field name="VAR">reponse</field><value name="VALUE"><block type="requests_get" id="R:dR9C?ZhuVQt-r/pGNu"><field name="TYPE">get</field><value name="URL"><shadow type="text" id="oruIrG8SGZI,TCQlF!t2"><field name="TEXT">https://mixio.org/api/v1/getData?user=demo@mixly.org&amp;password=b81e53f441d90152cdfb9731c5db92da&amp;project=通用演示&amp;topic=光照强度&amp;num=10</field></shadow></value></block></value><next><block type="variables_set" id="R:bVzds6allxC;|8{3]]"><field name="VAR">t</field><value name="VALUE"><block type="requests_attribute" id="xk1Y@P(wONj/vhYE@EP@"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="GX!PN]jdjcyvwbTpWp|Q"><field name="VAR">reponse</field></shadow></value></block></value><next><block type="inout_print" id="Uuo{Ghlu]m_n7~rjMSb:"><value name="VAR"><shadow type="text" id="YgZOBZ0jMR!m(JYS=x2d"><field name="TEXT">Hello</field></shadow><block type="variables_get" id="Br4=s*ZcLj5a=ie(3A,U"><field name="VAR">t</field></block></value><next><block type="variables_set" id="ts8wFPpd3a,00KyDcGov"><field name="VAR">mydict</field><value name="VALUE"><block type="json_to_dicts" id="^K`7;Tl;#~Iqo:wh57kt"><value name="VAR"><shadow type="text" id="pn.Rlz9;f6J],gWuLI-D"><field name="TEXT">{"name":"Mixly","color":"green"}</field></shadow><block type="variables_get" id="y/YeFEx-E!d3MXwe.i-Z"><field name="VAR">t</field></block></value></block></value><next><block type="variables_set" id="v,s(@GdNM:Bv@qj*K7mN"><field name="VAR">mylist</field><value name="VALUE"><block type="list_tolist" id="^Y2l9Y-/EH~FkcA_[=U-"><value name="VAR"><shadow type="variables_get" id="|0L=+qcPPB(kPuC~{23{"><field name="VAR">x</field></shadow><block type="dicts_get" id="Pm9k6{G_ryhRWIIP)DFh"><value name="DICT"><shadow type="variables_get" id="Gj^g:7O|6W+)Uc|c0{o7"><field name="VAR">mydict</field></shadow></value><value name="KEY"><shadow type="text" id="$yuTjF3zAV[}vv|1z+my"><field name="TEXT">data</field></shadow></value></block></value></block></value><next><block type="plot_cla" id="pN``M)#qQ{[{G$kkFo7L"><next><block type="dataframe_create" id="Nr^i*XJzb]qgd@Q[QhaF"><field name="VAR">df1</field><value name="SER"><shadow type="variables_get" id="@2t|Wze@|nAUX7(;c2Cs"><field name="VAR">mylist</field></shadow></value><next><block type="pl_label" id="{cV!p)fE`ZG4G2X=68A{"><field name="DIR">x</field><value name="LABEL"><shadow type="text" id="(R,m+HR*fT{a+pIm)0@h"><field name="TEXT">time</field></shadow></value><next><block type="pl_label" id="E8.AE3.9{FAgpz,DH~,w"><field name="DIR">y</field><value name="LABEL"><shadow type="text" id="ys`_F/s#|@7H7DUGf7qb"><field name="TEXT">light</field></shadow></value><next><block type="pl_plot_bar" id="+va1l]AA`xkuOY;r0Z.h"><field name="DIR">plot</field><value name="A"><shadow type="list_many_input" id="GjLnGM//B1[{NY0zGxK7"><field name="CONTENT">1,2,3,4</field></shadow><block type="dicts_get" id="Yb!`lz?$+_`K@M5)?==4"><value name="DICT"><shadow type="variables_get" id="f#JVr7hJf1DtImZ0Ugrt"><field name="VAR">df1</field></shadow></value><value name="KEY"><shadow type="text" id="w_/spu~@/bS3dZxtj3b?"><field name="TEXT">时间</field></shadow></value></block></value><value name="B"><shadow type="list_many_input" id="/9!1ea`sf]mqZ.4oW8?b"><field name="CONTENT">5,6,7,8</field></shadow><block type="dicts_get" id="F;:T|PW{6NS+aIOva583"><value name="DICT"><shadow type="variables_get" id="hn-;3{pj|N!26DU(7HHB"><field name="VAR">df1</field></shadow></value><value name="KEY"><shadow type="text" id="dM.;J7.B@TeBc:.NU6Bq"><field name="TEXT">值</field></shadow></value></block></value><next><block type="pl_show" id="k~M507@7^!(,?x5ZG?n7"></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKaW1wb3J0IHBhbmRhcwppbXBvcnQgcHlsYWIKCgpyZXBvbnNlID0gcmVxdWVzdHMuZ2V0KCdodHRwczovL21peGlvLm9yZy9hcGkvdjEvZ2V0RGF0YT91c2VyPWRlbW9AbWl4bHkub3JnJnBhc3N3b3JkPWI4MWU1M2Y0NDFkOTAxNTJjZGZiOTczMWM1ZGI5MmRhJnByb2plY3Q96YCa55So5ryU56S6JnRvcGljPeWFieeFp+W8uuW6piZudW09MTAnKQp0ID0gcmVwb25zZS50ZXh0CnByaW50KHQpCm15ZGljdCA9IGpzb24ubG9hZHModCkKbXlsaXN0ID0gbGlzdChteWRpY3RbJ2RhdGEnXSkKcGx0LmNsYSgpCmRmMSA9IHBhbmRhcy5EYXRhRnJhbWUobXlsaXN0KQpweWxhYi54bGFiZWwoJ3RpbWUnLCBmb250cHJvcGVydGllcyA9ICJTVFNvbmciKQpweWxhYi55bGFiZWwoJ2xpZ2h0JywgZm9udHByb3BlcnRpZXMgPSAiU1RTb25nIikKcHlsYWIucGxvdChkZjFbJ+aXtumXtCddLGRmMVsn5YC8J10pCnB5bGFiLnNob3coKQo=</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="8-Xj($b:O?i/wEp`4C=1" x="-224" y="-349"><field name="VAR">reponse</field><value name="VALUE"><block type="requests_get" id="qLoYf6*cLzrle)y@?i/o"><field name="TYPE">get</field><value name="URL"><shadow type="text" id="gIv#qc9UI@I{]_3g@eK^"><field name="TEXT">https://mixio.org/api/v1/getData?user=demo@mixly.org&amp;password=b81e53f441d90152cdfb9731c5db92da&amp;project=%E9%80%9A%E7%94%A8%E6%BC%94%E7%A4%BA&amp;topic=%E5%AD%A6%E7%94%9F%E4%BF%A1%E6%81%AF&amp;num=10</field></shadow></value></block></value><next><block type="inout_print" id="A2ZOYjuOu[YO+Ts*g*gZ"><value name="VAR"><shadow type="text" id="ym-v/7adnOVdmmwe,DN8"><field name="TEXT">Hello</field></shadow><block type="requests_attribute" id="96h,Y-e}^b2W;xK4i|L:"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="AdtR]W3v/iOCypzNVOSj"><field name="VAR">reponse</field></shadow></value></block></value><next><block type="variables_set" id="Ot^}7(YkgD_{31PSf3Us"><field name="VAR">mydict</field><value name="VALUE"><block type="json_to_dicts" id="aZe$eMg}a|ZC?f0$+,P;"><value name="VAR"><shadow type="text" id="w;}+z}IHx:f8^U^f^m`3"><field name="TEXT">{"name":"Mixly","color":"green"}</field></shadow><block type="requests_attribute" id="|[{p;twQDu!sVKE]|-]_"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="l{+#9MhLb+G(FFSR`{qd"><field name="VAR">reponse</field></shadow></value></block></value></block></value><next><block type="variables_set" id="#.M275@COQ=m)C5Z,@DT"><field name="VAR">mylist</field><value name="VALUE"><block type="dicts_get" id="rAczq-[$/h08{-hSJ-kA"><value name="DICT"><shadow type="variables_get" id="^a/wGEysX_Yvr!*IGfo)"><field name="VAR">mydict</field></shadow></value><value name="KEY"><shadow type="text" id="j1pjHyArhuOJTY}T]4Y*"><field name="TEXT">data</field></shadow></value></block></value><next><block type="controls_forEach" id="#L2-2Ey~Wz16D**c5uop"><value name="LIST"><shadow type="list_many_input" id="LmQFE(}N3Ajf)$PAUQw1"><field name="CONTENT">0,1,2,3</field></shadow><block type="variables_get" id="!kK4xJe1O~[#P^ZIy!me"><field name="VAR">mylist</field></block></value><value name="VAR"><shadow type="variables_get" id="]9~;}VuQ!$is9=xx`)e;"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="inout_print" id="tHK{pj^BshK#cBLY#}Yh"><value name="VAR"><shadow type="text" id="zIz(NTgEBA8@G`RQ`S5)"><field name="TEXT">Hello</field></shadow><block type="dicts_get" id="EqF[)6tAW@Z6jj.bvsyq"><value name="DICT"><shadow type="variables_get" id="A:z*$,y)RKd-bp_v~9X?"><field name="VAR">mydict</field></shadow><block type="variables_get" id="St,58XNt9|t]TXAP2q1G"><field name="VAR">i</field></block></value><value name="KEY"><shadow type="text" id="i]Vj|jfCPD:[:AWM+S#r"><field name="TEXT">值</field></shadow></value></block></value></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5vcmcvYXBpL3YxL2dldERhdGE/dXNlcj1kZW1vQG1peGx5Lm9yZyZwYXNzd29yZD1iODFlNTNmNDQxZDkwMTUyY2RmYjk3MzFjNWRiOTJkYSZwcm9qZWN0PSVFOSU4MCU5QSVFNyU5NCVBOCVFNiVCQyU5NCVFNyVBNCVCQSZ0b3BpYz0lRTUlQUQlQTYlRTclOTQlOUYlRTQlQkYlQTElRTYlODElQUYmbnVtPTEwJykKcHJpbnQocmVwb25zZS50ZXh0KQpteWRpY3QgPSBqc29uLmxvYWRzKHJlcG9uc2UudGV4dCkKbXlsaXN0ID0gbXlkaWN0WydkYXRhJ10KZm9yIGkgaW4gbXlsaXN0OgogICAgcHJpbnQoaVsn5YC8J10pCg==</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="1(^[.x=QKH$G*kJf2(8v" x="-224" y="-349"><field name="VAR">reponse</field><value name="VALUE"><block type="requests_get" id="u_*K}npNOZA@y+0x1DZu"><field name="TYPE">get</field><value name="URL"><shadow type="text" id="ym(3J{rt?6LtIQ?G#vc-"><field name="TEXT">https://mixio.mixly.cn/api/v1/getData?user=demo@mixly.org&amp;password=b81e53f441d90152cdfb9731c5db92da&amp;project=%E9%80%9A%E7%94%A8%E6%BC%94%E7%A4%BA&amp;topic=%E5%AD%A6%E7%94%9F%E4%BF%A1%E6%81%AF&amp;num=10</field></shadow></value></block></value><next><block type="inout_print" id="^o[gc73ivKq}BazPJfm5"><value name="VAR"><shadow type="text" id="mWe-fiDR(vV^add;YS=U"><field name="TEXT">Hello</field></shadow><block type="requests_attribute" id="FvPx`ek-~u[0r#JjCqq("><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="x0(;;r$!I;._CZmza8T$"><field name="VAR">reponse</field></shadow></value></block></value><next><block type="variables_set" id="l0N9!lak6eX9h+pcT6JO"><field name="VAR">mydict</field><value name="VALUE"><block type="json_to_dicts" id="~_]TS`v_^HyVI7(]_;*b"><value name="VAR"><shadow type="text" id="u}H-s]t|?-ktu7Gg)vOt"><field name="TEXT">{"name":"Mixly","color":"green"}</field></shadow><block type="requests_attribute" id="E]v*kL|*_jZYu8u0/bV?"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="F9*2e*G5[r+D{@xaJ#Cs"><field name="VAR">reponse</field></shadow></value></block></value></block></value><next><block type="variables_set" id="BmH!YPxFV4XTCAk-@dhL"><field name="VAR">mylist</field><value name="VALUE"><block type="dicts_get" id="?h9ZSb^4u1=L_--,GKKj"><value name="DICT"><shadow type="variables_get" id="m?)T}C86R=x~XtmuCaI|"><field name="VAR">mydict</field></shadow></value><value name="KEY"><shadow type="text" id="7}bEDGFw^}hx5/?y:X]|"><field name="TEXT">data</field></shadow></value></block></value><next><block type="controls_forEach" id="eH@w/5a)s,CwnX!1rmf,"><value name="LIST"><shadow type="list_many_input" id="Lt8t)2?iH{o{VnxvRDKn"><field name="CONTENT">0,1,2,3</field></shadow><block type="variables_get" id="dJFcg_|*4z`:?erl0fdl"><field name="VAR">mylist</field></block></value><value name="VAR"><shadow type="variables_get" id="viUGcDRql$0L!/hU78~P"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="inout_print" id="L36-rw69(cu/h{Kjs+cZ"><value name="VAR"><shadow type="text" id="6OB#Z6W$To?73U`c;`|6"><field name="TEXT">Hello</field></shadow><block type="dicts_get" id="70a.$$G=6kVWxz2}w5-:"><value name="DICT"><shadow type="variables_get" id="-N3y`TsgGR|YjdK.l*lw"><field name="VAR">mydict</field></shadow><block type="variables_get" id="e9JKa;eTV@`YY=nHdZuW"><field name="VAR">i</field></block></value><value name="KEY"><shadow type="text" id="`U8F0X+w+zV]hM37x{6M"><field name="TEXT">值</field></shadow></value></block></value></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5taXhseS5jbi9hcGkvdjEvZ2V0RGF0YT91c2VyPWRlbW9AbWl4bHkub3JnJnBhc3N3b3JkPWI4MWU1M2Y0NDFkOTAxNTJjZGZiOTczMWM1ZGI5MmRhJnByb2plY3Q9JUU5JTgwJTlBJUU3JTk0JUE4JUU2JUJDJTk0JUU3JUE0JUJBJnRvcGljPSVFNSVBRCVBNiVFNyU5NCU5RiVFNCVCRiVBMSVFNiU4MSVBRiZudW09MTAnKQpwcmludChyZXBvbnNlLnRleHQpCm15ZGljdCA9IGpzb24ubG9hZHMocmVwb25zZS50ZXh0KQpteWxpc3QgPSBteWRpY3RbJ2RhdGEnXQpmb3IgaSBpbiBteWxpc3Q6CiAgICBwcmludChpWyflgLwnXSkK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="I:0^rkv]3U4CCtXK7P5u" x="51" y="54"><field name="VAR">reponse</field><value name="VALUE"><block type="requests_get" id="h`]x8NgM.I(9)M3AYN}I"><field name="TYPE">get</field><value name="URL"><shadow type="text" id="?]7I}B.O!f{OOF,K=UA6"><field name="TEXT">https://mixio.mixly.cn/api/v1/getData?user=@4DDJ53C9&amp;password=MixIO_public&amp;project=default&amp;topic=%E5%85%89%E7%85%A7&amp;num=10</field></shadow></value></block></value><next><block type="inout_print" id="Ng]F77,$[6f],9:r6$*5"><value name="VAR"><shadow type="text" id="LdQecJd:{Y:nF2#FRQF7"><field name="TEXT">Hello</field></shadow><block type="requests_attribute" id="//.n`hAf7.qlPJ}(-(6o"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="IUnb|X]zjC?_]VQU8!)Q"><field name="VAR">reponse</field></shadow></value></block></value><next><block type="variables_set" id="n99Hu)(vX?3[^ajNa5yk"><field name="VAR">mydict</field><value name="VALUE"><block type="json_to_dicts" id="p)x*7|vY{I/^og6|Rq;D"><value name="VAR"><shadow type="text" id="V,8+mx]T=)lKJ(#MjNr0"><field name="TEXT">{"name":"Mixly","color":"green"}</field></shadow><block type="requests_attribute" id="@uFWhTK2XmWo__L{bG45"><field name="ATTR">text</field><value name="VAL"><shadow type="variables_get" id="#r?=Ef7(mTCQ*/~!oekA"><field name="VAR">reponse</field></shadow></value></block></value></block></value><next><block type="controls_forEach" id="0O9}@jaKQ)P2:^`Mfn*h"><value name="LIST"><shadow type="list_many_input" id="WB7lBlO)uVf.cE+@PhVz"><field name="CONTENT">0,1,2,3</field></shadow><block type="dicts_get" id="WAy0q{axjo`O$,E._+_t"><value name="DICT"><shadow type="variables_get" id="WEB-QZf.Zk[o_0H]c{,t"><field name="VAR">mydict</field></shadow></value><value name="KEY"><shadow type="text" id="~P:[IL2L,Tuq$m,p,Ci8"><field name="TEXT">data</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="s+/J-diyzUD]i,gq^HCs"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="inout_print" id="XqV.DAJ6E.0EMg@K#)b."><value name="VAR"><shadow type="text" id="6T/@t57.Dxw^[[{9LXU7"><field name="TEXT">Hello</field></shadow><block type="variables_get" id="RF*C0w#=WD^)_aQ$=l2q"><field name="VAR">i</field></block></value></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5taXhseS5jbi9hcGkvdjEvZ2V0RGF0YT91c2VyPUA0RERKNTNDOSZwYXNzd29yZD1NaXhJT19wdWJsaWMmcHJvamVjdD1kZWZhdWx0JnRvcGljPSVFNSU4NSU4OSVFNyU4NSVBNyZudW09MTAnKQpwcmludChyZXBvbnNlLnRleHQpCm15ZGljdCA9IGpzb24ubG9hZHMocmVwb25zZS50ZXh0KQpmb3IgaSBpbiBteWRpY3RbJ2RhdGEnXToKICAgIHByaW50KGkpCg==</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 2.0 rc4" board="Python 3 Lite@Python 3 Lite"><block type="variables_set" id="Sl?UyzNRb{UJUc!/SSq;" x="-542" y="-122"><field name="VAR">目标数</field><value name="VALUE"><block type="math_number" id="`j{/p{4UXX;[@JTF18JU"><field name="NUM">58</field></block></value><next><block type="controls_whileUntil" id="w#vIb;de{.a}V~x[Dn[M"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="RcC3dS3INSX)JJ{}mB1A"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="BLt}x4zrVxigb]~AwJag"><field name="VAR">n</field><value name="VALUE"><block type="inout_type_input" id="xph57#pTVPoh#tel3CP^"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="F0#zp[l{zXF{l3f)/R56"><field name="TEXT">猜一个整数:</field></shadow></value></block></value><next><block type="controls_if" id="b+F5QD7cSCp9RE3b/S_I"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="ZB~P#)S1;f*Z(e+~|BBR"><field name="OP">LT</field><value name="A"><block type="variables_get" id="K85JIY,T(yZ$p8yj`S+1"><field name="VAR">n</field></block></value><value name="B"><block type="variables_get" id="zawjnF@A6PBaTM0u~GV3"><field name="VAR">目标数</field></block></value></block></value><statement name="DO0"><block type="inout_print_inline" id="rVJHmJWMIy(_r0!;qqy$"><value name="VAR"><shadow type="text" id="A~2^)$cRidZ2D55u+7J{"><field name="TEXT">猜小了!请继续。</field></shadow></value></block></statement><value name="IF1"><block type="logic_compare" id="=.)msv6YhX^(t+Z_nh=O"><field name="OP">GT</field><value name="A"><block type="variables_get" id="*+f4o@K8FWZTHlC,2g+q"><field name="VAR">n</field></block></value><value name="B"><block type="variables_get" id=")PZeh3up~^-!tAz:/cCs"><field name="VAR">目标数</field></block></value></block></value><statement name="DO1"><block type="inout_print_inline" id="NBO6_R@46wo2WW:eh_*#"><value name="VAR"><shadow type="text" id="oUKYteI4Lx/dZ*MX)-yK"><field name="TEXT">猜大了!请继续。</field></shadow></value></block></statement><statement name="ELSE"><block type="inout_print_inline" id="ohHE02!SPHIVf?l3WX+="><value name="VAR"><shadow type="text" id="s|-JmD#a^xbfWY9sR99$"><field name="TEXT">恭喜,猜对了!</field></shadow></value><next><block type="controls_flow_statements" id="YK.G1R4QZa^@,VBN[~{q"><field name="FLOW">BREAK</field></block></next></block></statement></block></next></block></statement></block></next></block></xml><config>{}</config><code>X0U3XzlCX0FFX0U2X0EwXzg3X0U2Xzk1X0IwID0gNTgKd2hpbGUgVHJ1ZToKICAgIG4gPSBpbnQoaW5wdXQoJ+eMnOS4gOS4quaVtOaVsO+8micpKQogICAgaWYgbiA8IF9FN185Ql9BRV9FNl9BMF84N19FNl85NV9CMDoKICAgICAgICBwcmludCgn54yc5bCP5LqG77yB6K+357un57ut44CCJyxlbmQgPSIiKQogICAgZWxpZiBuID4gX0U3XzlCX0FFX0U2X0EwXzg3X0U2Xzk1X0IwOgogICAgICAgIHByaW50KCfnjJzlpKfkuobvvIHor7fnu6fnu63jgIInLGVuZCA9IiIpCiAgICBlbHNlOgogICAgICAgIHByaW50KCfmga3llpzvvIznjJzlr7nkuobvvIEnLGVuZCA9IiIpCiAgICAgICAgYnJlYWsK</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="Ke#]#S}$W23~kl5~=b?I" x="100" y="-182"><field name="VAR">year</field><value name="VALUE"><block type="inout_type_input" id="9`;~gq7A_^qPW!79YIu5"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="PF4c9w4-GAWLUl-:~*dR"><field name="TEXT">请输入一个年份:</field></shadow></value></block></value><next><block type="controls_if" id=")BeaRghD.xYstRZ5)]t5"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_operation" id="l9C.,Ln]{,#+O;FF[V-|"><field name="OP">AND</field><value name="A"><block type="logic_compare" id="kE-iiD]94@/+._62,`RL"><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="rO,*6=vROcEjn`]CI~JY"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="Ib{gA?W;xE~iolU3S1xp"><field name="NUM">1</field></shadow><block type="variables_get" id="s)?oitxFaD3EAswhp)gd"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="A@-@B+d.)/Lpv=xAKt^3"><field name="NUM">4</field></shadow></value></block></value><value name="B"><block type="math_number" id="_+JbOyA[(+xP[bgsju0:"><field name="NUM">0</field></block></value></block></value><value name="B"><block type="logic_compare" id="rswrsuW)[|Ysin-4V-HE"><field name="OP">NEQ</field><value name="A"><block type="math_arithmetic" id=":+x)22Dqc@ja=jpD~A]P"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="O56jL9mG]Gr!}F[yUPq}"><field name="NUM">1</field></shadow><block type="variables_get" id="`6g?-(S3E.IQ3Ib,]pwN"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="_OX8Y0(EfSh)at_p`?}?"><field name="NUM">4</field></shadow></value></block></value><value name="B"><block type="math_number" id="z`ZBJm+Qxc{m^vS`LJGR"><field name="NUM">100</field></block></value></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="b#2nmzHwjeX;~rbZ6Z!-"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="PS2a$unHIFYHBFm7B/Q3"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="T$Cf`I+Wa6o5r~m)D]@f"><field name="TEXT">这是闰年</field></block></value></block></statement><value name="IF1"><block type="logic_compare" id="OPfEI}J_whm34j__{sgy"><field name="OP">EQ</field><value name="A"><block type="math_arithmetic" id="Bgh[b]#+Z[kV`{TTYK8a"><field name="OP">QUYU</field><value name="A"><shadow type="math_number" id="_b1OJBp4av?.5dzCYRZ!"><field name="NUM">1</field></shadow><block type="variables_get" id="RMSqtfyhQ!}.g/v!5bZ,"><field name="VAR">year</field></block></value><value name="B"><shadow type="math_number" id="k@9dbso3zY8`8*dQvfR~"><field name="NUM">400</field></shadow></value></block></value><value name="B"><block type="math_number" id="[Xmp;{rOfP{ZD;_,7U9K"><field name="NUM">0</field></block></value></block></value><statement name="DO1"><block type="inout_print_many" id="*1UpKnL0{iD|c@M^dpox"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="gm]X[z;;n77hFig#;{Xf"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="oUCBP5N{bp|dG(ayMZg8"><field name="TEXT">这是闰年</field></block></value></block></statement><statement name="ELSE"><block type="inout_print_many" id="vNi{PgX(1,E`ormJabcf"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="]];V9jQMup^N698wD6{L"><field name="VAR">year</field></block></value><value name="ADD1"><block type="text" id="nb``t~0SWMIc]-.Jd|9L"><field name="TEXT">这是平年</field></block></value></block></statement></block></next></block></xml><config>{}</config><code>eWVhciA9IGludChpbnB1dCgn6K+36L6T5YWl5LiA5Liq5bm05Lu977yaJykpCmlmIHllYXIgJSA0ID09IDAgYW5kIHllYXIgJSA0ICE9IDEwMDoKICAgIHByaW50KHllYXIsICfov5nmmK/pl7DlubQnKQplbGlmIHllYXIgJSA0MDAgPT0gMDoKICAgIHByaW50KHllYXIsICfov5nmmK/pl7DlubQnKQplbHNlOgogICAgcHJpbnQoeWVhciwgJ+i/meaYr+W5s+W5tCcpCg==</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="g7z1R!Nq8/iT@3/,UiFJ" x="-512" y="-172"><field name="VAR">temperature</field><value name="VALUE"><block type="inout_type_input" id="Cr;F;ttS0*MBKk|Fr1jh"><field name="DIR">float</field><value name="VAR"><shadow type="text" id="P7;woXfyLYA?ZKK;zI)C"><field name="TEXT">请输入气温:</field></shadow></value></block></value><next><block type="controls_if" id="I3)(QGxByDMaI?*;QdAC"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="C1TsjIN+_hD,Ht{,(cTS"><field name="OP">LT</field><value name="A"><block type="variables_get" id="]_w*MOV_R]}1811DZLoM"><field name="VAR">temperature</field></block></value><value name="B"><block type="math_number" id="ol`eW*RY?s8#M{8X}8oP"><field name="NUM">15</field></block></value></block></value><statement name="DO0"><block type="inout_print_inline" id="WLl~we3gQ[hfcf(ENSQ("><value name="VAR"><shadow type="text" id="[nhEqZppug/2WLJeh_VA"><field name="TEXT">今天有点冷,要穿厚一些的衣服</field></shadow></value></block></statement><value name="IF1"><block type="logic_compare_continous" id="gXDwEPz-k}xV,=gqY?:#"><field name="OP1">LTE</field><field name="OP2">LTE</field><value name="A"><shadow type="math_number" id="G1)}Nd(?RK.syCuInt!E"><field name="NUM">15</field></shadow></value><value name="B"><shadow type="variables_get" id="eNQz|~*8X8C:$=E$^w6]"><field name="VAR">x</field></shadow><block type="variables_get" id="s!jPQxQj^pKl*u9s+sZ6"><field name="VAR">temperature</field></block></value><value name="C"><shadow type="math_number" id="]Yb4yI$b:J5R@8/ZylER"><field name="NUM">30</field></shadow></value></block></value><statement name="DO1"><block type="inout_print_inline" id="tB)BQOrs:_Hx28J_/0iI"><value name="VAR"><shadow type="text" id=":|T3qVs_X!$RP;!XM{C)"><field name="TEXT">今天有点气候宜人,适合穿春秋装</field></shadow></value></block></statement><statement name="ELSE"><block type="inout_print_inline" id=";DiqvTY`)I{1Z^gj735]"><value name="VAR"><shadow type="text" id="tn|B=J}~??l@8p2`AMYo"><field name="TEXT">今天有点热,要穿薄一些的衣服并适当防晒</field></shadow></value></block></statement></block></next></block></xml><config>{}</config><code>dGVtcGVyYXR1cmUgPSBmbG9hdChpbnB1dCgn6K+36L6T5YWl5rCU5rip77yaJykpCmlmIHRlbXBlcmF0dXJlIDwgMTU6CiAgICBwcmludCgn5LuK5aSp5pyJ54K55Ya377yM6KaB56m/5Y6a5LiA5Lqb55qE6KGj5pyNJyxlbmQgPSIiKQplbGlmIDE1IDw9IHRlbXBlcmF0dXJlIDw9IDMwOgogICAgcHJpbnQoJ+S7iuWkqeacieeCueawlOWAmeWunOS6uu+8jOmAguWQiOepv+aYpeeni+ijhScsZW5kID0iIikKZWxzZToKICAgIHByaW50KCfku4rlpKnmnInngrnng63vvIzopoHnqb/oloTkuIDkupvnmoTooaPmnI3lubbpgILlvZPpmLLmmZInLGVuZCA9IiIpCg==</code>

View File

@@ -0,0 +1 @@
<xml version="Mixly 3.0 rc0" board="Python 3 Online@Python 3 Online" shown="block"><block type="variables_set" id="Ke#]#S}$W23~kl5~=b?I" x="-173" y="-122"><field name="VAR">nl</field><value name="VALUE"><block type="inout_type_input" id="9`;~gq7A_^qPW!79YIu5"><field name="DIR">int</field><value name="VAR"><shadow type="text" id="PF4c9w4-GAWLUl-:~*dR"><field name="TEXT">请输入乘车人的年龄:</field></shadow></value></block></value><next><block type="controls_if" id=")BeaRghD.xYstRZ5)]t5"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="o7U/Spr8u#JTOkNq_pts"><field name="OP">GTE</field><value name="A"><block type="variables_get" id="q88GZ!;ya~OV|Yf$sqEu"><field name="VAR">nl</field></block></value><value name="B"><block type="math_number" id="T=piO9Z1`:{jS5IU6h~r"><field name="NUM">14</field></block></value></block></value><statement name="DO0"><block type="inout_print_many" id="b#2nmzHwjeX;~rbZ6Z!-"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="PS2a$unHIFYHBFm7B/Q3"><field name="VAR">nl</field></block></value><value name="ADD1"><block type="text" id="T$Cf`I+Wa6o5r~m)D]@f"><field name="TEXT">岁,请购买全价票</field></block></value></block></statement><value name="IF1"><block type="logic_compare_continous" id="TOwK/}AjESB4PcOYZQaR"><field name="OP1">LTE</field><field name="OP2">LT</field><value name="A"><shadow type="math_number" id="*Z#I)5JcRLR6(N`0b/Ik"><field name="NUM">6</field></shadow></value><value name="B"><shadow type="variables_get" id="HPT]nXrZvoNbzUr4,#Oq"><field name="VAR">x</field></shadow><block type="variables_get" id="xAPS`:.7H#!ha/GcG/b9"><field name="VAR">nl</field></block></value><value name="C"><shadow type="math_number" id="H(anXuPka*v#qMs}l|V("><field name="NUM">14</field></shadow></value></block></value><statement name="DO1"><block type="inout_print_many" id="*1UpKnL0{iD|c@M^dpox"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="gm]X[z;;n77hFig#;{Xf"><field name="VAR">nl</field></block></value><value name="ADD1"><block type="text" id="oUCBP5N{bp|dG(ayMZg8"><field name="TEXT">岁,请购买儿童优惠票</field></block></value></block></statement><statement name="ELSE"><block type="inout_print_many" id="vNi{PgX(1,E`ormJabcf"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="]];V9jQMup^N698wD6{L"><field name="VAR">nl</field></block></value><value name="ADD1"><block type="text" id="nb``t~0SWMIc]-.Jd|9L"><field name="TEXT">岁,由持票成年人免费携带</field></block></value></block></statement></block></next></block></xml><config>{}</config><code>bmwgPSBpbnQoaW5wdXQoJ+ivt+i+k+WFpeS5mOi9puS6uueahOW5tOm+hO+8micpKQppZiBubCA+PSAxNDoKICAgIHByaW50KG5sLCAn5bKB77yM6K+36LSt5Lmw5YWo5Lu356WoJykKZWxpZiA2IDw9IG5sIDwgMTQ6CiAgICBwcmludChubCwgJ+Wyge+8jOivt+i0reS5sOWEv+erpeS8mOaDoOelqCcpCmVsc2U6CiAgICBwcmludChubCwgJ+Wyge+8jOeUseaMgeelqOaIkOW5tOS6uuWFjei0ueaQuuW4picpCg==</code>

Some files were not shown because too many files have changed in this diff Show More