初始化提交
This commit is contained in:
430
boards/default_src/python_skulpt/generators/data.js
Normal file
430
boards/default_src/python_skulpt/generators/data.js
Normal file
@@ -0,0 +1,430 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
export const series_create = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + 'pandas.Series(' + varName1 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const series_create_from_index = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName2 = generator.valueToCode(this, 'INDEX', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + 'pandas.Series(' + varName1 + ',' + 'index=' + varName2 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const dataframe_create = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const dataframe_create_from_index = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName2 = generator.valueToCode(this, 'INDEX_COLUMN', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var varName3 = generator.valueToCode(this, 'INDEX_RAW', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ',' + 'columns=' + varName2 + ',index=' + varName3 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const dataframe_create_from_one_index = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var name = this.getFieldValue('COLUMN_RAW');
|
||||
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName2 = generator.valueToCode(this, 'INDEX', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ',' + name + '=' + varName2 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const series_create_from_text = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var text = this.getFieldValue('TEXT');
|
||||
var code = varName + ' = ' + 'pandas.Series([' + text + '])\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const series_index_value = function (_, generator) {
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var varName = generator.valueToCode(this, 'SERIES', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var name = this.getFieldValue('INDEX_VALUE');
|
||||
var code = varName + '.' + name;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const series_get_num = function (_, generator) {
|
||||
// Indexing into a list is the same as indexing into a string.
|
||||
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument0 = generator.valueToCode(this, 'AT',
|
||||
generator.ORDER_ADDITIVE) || '1';
|
||||
var code = varName + '[' + argument0 + ']';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const pl_show = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var code = 'pylab.show()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_axes = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var code = 'pylab.axes(aspect=1)\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_plot_easy = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = 'pylab.plot(' + varName + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_plot = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var line = this.getFieldValue('LINE');
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = 'pylab.plot(' + varName + ",'" + dot + line + color + "')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_legend = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
generator.definitions_.import_matplotlib_font_manager = "import matplotlib.font_manager";
|
||||
var code = 'pylab.legend(' + 'prop=matplotlib.font_manager.FontProperties("' + "STSong" + '")' + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_title = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
|
||||
var code = 'pylab.title(' + a + ', fontproperties = "' + "STSong" + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_label = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'LABEL', generator.ORDER_ATOMIC);
|
||||
var code = 'pylab.' + direction + 'label(' + a + ', fontproperties = "' + "STSong" + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const array_create = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
var from = generator.valueToCode(this, "FROM", generator.ORDER_NONE) || "0";
|
||||
var end = generator.valueToCode(this, "TO", generator.ORDER_NONE) || "0";
|
||||
var step = generator.valueToCode(this, "STEP", generator.ORDER_NONE) || "1";
|
||||
var code = "numpy.arange(" + from + ", " + end + ", " + step + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const pl_plot_bar = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'pylab.' + direction + '(' + a + ',' + b + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_plot_scatter = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var s = generator.valueToCode(this, 'S', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'pylab.scatter(' + a + ',' + b + ",s=" + s + ",c='" + color + "',marker='" + dot + "',label=" + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_plot_xy = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var line = this.getFieldValue('LINE');
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'pylab.plot(' + a + ',' + b + ",'" + dot + line + color + "'" + ',label=' + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_bar = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_RELATIONAL) || '0';
|
||||
var color = this.getFieldValue('COLOR')
|
||||
var align = this.getFieldValue('ALIGN');
|
||||
var code = 'pylab.bar(' + a + ',' + b + ',align="' + align + '",color="' + color + '",width=' + width + ',label=' + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_pie = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var explode = generator.valueToCode(this, 'EXPLODE', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var shadow = this.getFieldValue('SHADOW');
|
||||
var autopct = this.getFieldValue('autopct');
|
||||
if (autopct != 'None') { autopct = "'" + autopct + "'" }
|
||||
var code = 'pylab.pie(' + a + ',explode=' + explode + ',labels=' + b + ',autopct=' + autopct + ',shadow=' + shadow + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_hist = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'pylab.hist(' + a + ',' + b + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_ticks = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'pylab.' + direction + 'ticks(' + a + ',' + b + ",fontproperties = '" + "STSong" + "')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const numpy_trig = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
var argument0 = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
var code = "";
|
||||
code = "numpy." + operator + '(' + argument0 + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const pl_subplot = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
|
||||
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
|
||||
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
|
||||
var code = "pylab.subplot(" + from + ", " + end + ", " + step + ")\n";
|
||||
return code
|
||||
}
|
||||
|
||||
export const pandas_readcsv = function (_, generator) {
|
||||
// For each loop.
|
||||
generator.definitions_.import_pandas = "import pandas";
|
||||
var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC);
|
||||
var mode = this.getFieldValue('MODE');
|
||||
var code = 'pandas.read_csv(' + fn + ', header=' + mode + ')\n';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const dataframe_get = function (_, generator) {
|
||||
var mode = this.getFieldValue('MODE');
|
||||
var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);
|
||||
if (mode == "column") {
|
||||
var code = varName + "[" + text + "]";
|
||||
} else if (mode == 'raw') {
|
||||
var code = varName + ".loc[" + text + "]";
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const pl_savefig = function (_, generator) {
|
||||
generator.definitions_.import_pylab = "import pylab";
|
||||
var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);
|
||||
var code = "pylab.savefig(" + file + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const pl_text = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
|
||||
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
|
||||
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
|
||||
var halign = this.getFieldValue('HALIGN');
|
||||
var valign = this.getFieldValue('VALIGN');
|
||||
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = "pylab.text(" + from + ", " + end + ", " + step + ", ha='" + halign + "', va='" + valign + "', fontsize=" + fontnum + ")\n";
|
||||
return code
|
||||
}
|
||||
|
||||
export const array_toarray = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0';
|
||||
generator.definitions_['import_numpy'] = 'import numpy';
|
||||
var code = 'numpy.array(' + str + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const plot_show = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var code = 'matplotlib.pyplot.show()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_axes = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var code = 'matplotlib.pyplot.axes(aspect=1)\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_plot_easy = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = 'matplotlib.pyplot.plot(' + varName + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_plot = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var line = this.getFieldValue('LINE');
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = 'matplotlib.pyplot.plot(' + varName + ",'" + dot + line + color + "')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_legend = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
generator.definitions_.import_matplotlib_font_manager = "import matplotlib.font_manager";
|
||||
var code = 'matplotlib.pyplot.legend(' + 'prop=matplotlib.font_manager.FontProperties("' + "STSong" + '")' + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_title = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
|
||||
var code = 'matplotlib.pyplot.title(' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_label = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'LABEL', generator.ORDER_ATOMIC);
|
||||
var code = 'matplotlib.pyplot.' + direction + 'label(' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_plot_bar = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'matplotlib.pyplot.' + direction + '(' + a + ',' + b + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_plot_scatter = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var s = generator.valueToCode(this, 'S', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'matplotlib.pyplot.scatter(' + a + ',' + b + ",s=" + s + ",color='" + color + "',marker='" + dot + "',label=" + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_plot_xy = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var line = this.getFieldValue('LINE');
|
||||
var color = this.getFieldValue('COLOR');
|
||||
var dot = this.getFieldValue('DOT');
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'matplotlib.pyplot.plot(' + a + ',' + b + ",'" + dot + line + color + "'" + ',label=' + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_bar = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_RELATIONAL) || '0';
|
||||
var color = this.getFieldValue('COLOR')
|
||||
var align = this.getFieldValue('ALIGN');
|
||||
var code = 'matplotlib.pyplot.bar(' + a + ',' + b + ',align="' + align + '",color="' + color + '",width=' + width + ',label=' + tag + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_pie = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var explode = generator.valueToCode(this, 'EXPLODE', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var shadow = this.getFieldValue('SHADOW');
|
||||
var autopct = this.getFieldValue('autopct');
|
||||
if (autopct != 'None') { autopct = "'" + autopct + "'" }
|
||||
var code = 'matplotlib.pyplot.pie(' + a + ',explode=' + explode + ',labels=' + b + ',autopct=' + autopct + ',shadow=' + shadow + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_hist = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'matplotlib.pyplot.hist(' + a + ',' + b + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_ticks = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
|
||||
var code = 'matplotlib.pyplot.' + direction + 'ticks(' + a + ',' + b + ",fontproperties = '" + "STSong" + "')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_subplot = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
|
||||
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
|
||||
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
|
||||
var code = "matplotlib.pyplot.subplot(" + from + ", " + end + ", " + step + ")\n";
|
||||
return code
|
||||
}
|
||||
|
||||
export const plot_savefig = function (_, generator) {
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var code = "matplotlib.pyplot.savefig('1.png')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const plot_text = function (_, generator) {
|
||||
generator.definitions_.import_numpy = "import numpy";
|
||||
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
|
||||
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
|
||||
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
|
||||
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
|
||||
var halign = this.getFieldValue('HALIGN');
|
||||
var valign = this.getFieldValue('VALIGN');
|
||||
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = "matplotlib.pyplot.text(" + from + ", " + end + ", " + step + ", ha='" + halign + "', va='" + valign + "', fontsize=" + fontnum + ")\n";
|
||||
return code
|
||||
}
|
||||
44
boards/default_src/python_skulpt/generators/inout.js
Normal file
44
boards/default_src/python_skulpt/generators/inout.js
Normal file
@@ -0,0 +1,44 @@
|
||||
export const inout_input = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
return ['input(' + str + ')', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_print = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var code = "print(" + str + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_print_inline = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var code = "print(" + str + ',end ="")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_print_end = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var end = generator.valueToCode(this, 'END', generator.ORDER_ATOMIC) || '""';
|
||||
var code = "print(" + str + ',end =' + end + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_type_input = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var type = this.getFieldValue('DIR');
|
||||
if (type == 'str') { var code = 'input(' + str + ')' }
|
||||
else if (type == 'int') { var code = 'int(input(' + str + '))' }
|
||||
else if (type == 'float') { var code = 'float(input(' + str + '))' }
|
||||
//var code=varname+"." + type + "(" + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_print_many = function (_, generator) {
|
||||
var code = new Array(this.itemCount_);
|
||||
var default_value = '0';
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || default_value;
|
||||
}
|
||||
var code = 'print(' + code.join(', ') + ')\n';
|
||||
return code;
|
||||
}
|
||||
114
boards/default_src/python_skulpt/generators/iot.js
Normal file
114
boards/default_src/python_skulpt/generators/iot.js
Normal file
@@ -0,0 +1,114 @@
|
||||
export const iot_mixio_connect = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||||
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
|
||||
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||||
var project = generator.valueToCode(this, 'PROJECT', generator.ORDER_ATOMIC);
|
||||
var timestamp = Math.round(new Date()).toString();
|
||||
//var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var a = "f'python-mqtt-" + username.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
|
||||
var code = 'mqtt_client = mixiot.MixIO(' + server + ', 8084 ,' + username + ', ' + password + ', ' + project + ',' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const IOT_MIXIO_PUBLISH = function (_, generator) {
|
||||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||||
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.publish(' + topic + ', ' + msg + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const IOT_MIXIO_SUBSCRIBE = function (_, generator) {
|
||||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||||
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.subscribe(' + topic + ',' + method + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const IOT_MIXIO_UNSUBSCRIBE = function (_, generator) {
|
||||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.unsubscribe(' + topic + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_mixio_disconnect = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.disconnect()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_mixio_connect_only = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.connect()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_mixio_check = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.check_msg()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_mixio_format_topic = function (_, generator) {
|
||||
var code = 'mqtt_client.decode("utf-8").split("/")[-1]';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const iot_mixio_format_msg = function (_, generator) {
|
||||
var code = 'mqtt_client.decode("utf-8")';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const IOT_FORMATTING = function (_, generator) {
|
||||
generator.definitions_['import_mixpy'] = "import mixpy";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = 'mixpy.format_content(' + v + ', mqtt_client.client_id)';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const IOT_FORMAT_STRING = function (_, generator) {
|
||||
generator.definitions_['import_mixpy'] = "import mixpy";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = 'mixpy.format_str(' + v + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||||
var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
|
||||
var timestamp = Math.round(new Date()).toString();
|
||||
var a = "f'python-mqtt-" + share_code.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
|
||||
var code = 'mqtt_client = mixiot.MixIO_init_by_mixly_key(' + server + ', 8084 ,' + share_code + ',' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_mixly_key = function (_, generator) {
|
||||
var code = this.getFieldValue('VISITOR_ID');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
generator.definitions_['import_time'] = 'import time';
|
||||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||||
var mixly_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
|
||||
var timestamp = Math.round(new Date()).toString();
|
||||
var a = "f'python-mqtt-" + mixly_code.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
|
||||
var code = 'mqtt_client = mixiot.MixIO_init_by_share_key(' + server + ', 8084 ,' + mixly_code + ',' + a + ')\ntime.sleep(2)\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const IOT_EMQX_PING = function (_, generator) {
|
||||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||||
var code = 'mqtt_client.pingSync()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const iot_mixly_key_py = function (_, generator) {
|
||||
var code = this.getFieldValue('VISITOR_ID');
|
||||
return ["'" + code + "'", generator.ORDER_ATOMIC];
|
||||
}
|
||||
22
boards/default_src/python_skulpt/generators/system.js
Normal file
22
boards/default_src/python_skulpt/generators/system.js
Normal file
@@ -0,0 +1,22 @@
|
||||
export const controls_millis = function (_, generator) {
|
||||
generator.definitions_.import_time = "import time";
|
||||
var code = 'time.time()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const controls_end_program = function () {
|
||||
return 'exit()\n';
|
||||
}
|
||||
|
||||
export const time_localtime = function (_, generator) {
|
||||
generator.definitions_.import_time = "import time";
|
||||
var op = this.getFieldValue('op');
|
||||
var code = "time.localtime()[" + op + "]";
|
||||
switch (op) {
|
||||
case "all":
|
||||
var code1 = "time.localtime()";
|
||||
return [code1, generator.ORDER_ASSIGNMENT];
|
||||
default:
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
}
|
||||
}
|
||||
384
boards/default_src/python_skulpt/generators/turtle.js
Normal file
384
boards/default_src/python_skulpt/generators/turtle.js
Normal file
@@ -0,0 +1,384 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
export const turtle_create = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
//var size=window.parseFloat(this.getFieldValue('SIZE'));
|
||||
//generator.definitions_['var_declare'+varName] = varName+'= '+ 'turtle.Turtle()\n';
|
||||
var code = varName + ' = ' + 'turtle.Turtle()\n';
|
||||
return code;
|
||||
// return '';
|
||||
}
|
||||
|
||||
export const turtle_done = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var code = 'turtle.done()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_exitonclick = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var code = 'turtle.exitonclick()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_move = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + direction + "(" + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_rotate = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var direction = this.getFieldValue('DIR');
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + direction + "(" + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_setheading = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.setheading(' + argument + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_screen_delay = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.screen.delay(' + argument + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_goto = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var xnum = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var ynum = generator.valueToCode(this, 'val', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.goto(' + xnum + ',' + ynum + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_pos_shape = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var get = this.getFieldValue('DIR');
|
||||
var code = varName + '.' + get + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const turtle_clear = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var clear = this.getFieldValue('DIR');
|
||||
var code = varName + "." + clear + "(" + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_penup = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var penup = this.getFieldValue('DIR');
|
||||
var code = varName + "." + penup + "(" + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_fill = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var penup = this.getFieldValue('DIR');
|
||||
var code = varName + "." + penup + "_fill(" + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_size_speed = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = this.getFieldValue('TUR');
|
||||
var size = this.getFieldValue('DIR');
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + size + "(" + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_size = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.pensize(' + argument + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_speed = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.speed(' + argument + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_circle = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var circle = this.getFieldValue('DIR');
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + circle + "(" + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_setxy = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var xy = this.getFieldValue('DIR');
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + ".set" + xy + "(" + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_circle_advanced = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + ".circle (" + num + ',' + argument + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_visible = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var visible = this.getFieldValue('DIR');
|
||||
var code = varName + "." + visible + "(" + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_bgcolor = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var color = this.getFieldValue('FIELDNAME');
|
||||
var code = "turtle." + 'bgcolor' + '("' + color + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_pencolor = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = this.getFieldValue('FIELDNAME');
|
||||
var code = varName + "." + 'pencolor' + '("' + color + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_fillcolor = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = this.getFieldValue('FIELDNAME');
|
||||
var code = varName + "." + 'fillcolor' + '("' + color + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_clone = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.clone()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const turtle_bgcolor_hex = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "turtle." + 'bgcolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_pencolor_hex = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + "." + 'pencolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_fillcolor_hex = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + 'fillcolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_bgcolor_hex_new = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "turtle." + 'bgcolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_pencolor_hex_new = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + "." + 'pencolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_fillcolor_hex_new = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + 'fillcolor' + '(' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_color_hex = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);
|
||||
var color2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + 'color' + '(' + color1 + ',' + color2 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_color = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var color1 = this.getFieldValue('FIELDNAME');
|
||||
var color2 = this.getFieldValue('FIELDNAME2');
|
||||
var code = varName + "." + 'color' + '("' + color1 + '","' + color2 + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_shape = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var direction = this.getFieldValue('DIR');
|
||||
|
||||
var code = varName + ".shape('" + direction + "')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_shapesize = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument1 = generator.valueToCode(this, 'WID', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument2 = generator.valueToCode(this, 'LEN', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var argument3 = generator.valueToCode(this, 'OUTLINE', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + ".shapesize(" + argument1 + ',' + argument2 + ',' + argument3 + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_textinput = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var title = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
|
||||
var prompt = generator.valueToCode(this, 'PROMPT', generator.ORDER_ATOMIC);
|
||||
var code = "turtle.textinput" + '(' + title + ',' + prompt + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const turtle_numinput = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var title = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
|
||||
var prompt = generator.valueToCode(this, 'PROMPT', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'DEFAULT', generator.ORDER_ATOMIC);
|
||||
var min = generator.valueToCode(this, 'MIN', generator.ORDER_ATOMIC);
|
||||
var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC);
|
||||
var code = "turtle.numinput" + '(' + title + ',' + prompt + "," + data + ',minval = ' + min + ',maxval = ' + max + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const turtle_write = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + "." + 'write' + '(' + write + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_write_format = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var move = this.getFieldValue('MOVE');
|
||||
var align = this.getFieldValue('ALIGN');
|
||||
var fontname = generator.valueToCode(this, 'FONTNAME', generator.ORDER_ATOMIC);
|
||||
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var fonttype = this.getFieldValue('FONTTYPE');
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + 'write' + '(' + write + ',' + move + ',align="' + align + '",font=(' + fontname + ',' + fontnum + ',"' + fonttype + '"))\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_write_format_skulpt = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var move = this.getFieldValue('MOVE');
|
||||
var align = this.getFieldValue('ALIGN');
|
||||
var fontname = generator.valueToCode(this, 'FONTNAME', generator.ORDER_ATOMIC);
|
||||
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var fonttype = this.getFieldValue('FONTTYPE');
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = varName + "." + 'write' + '(' + write + ',' + move + ',align="' + align + '",font=(' + fontname + ',' + fontnum + ',"' + fonttype + '"))\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_color_seclet = function (_, generator) {
|
||||
var colour = this.getFieldValue('COLOR');
|
||||
var code = '"' + colour + '"'
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const turtle_getscreen = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var turName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = ' + turName + '.getscreen()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_onkey = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None";
|
||||
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
|
||||
var code = varName + ".onkey(" + callback + ", " + v + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_onclick = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
|
||||
var code = varName + ".onclick(" + callback + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_ontimer = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None";
|
||||
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
|
||||
var code = varName + ".ontimer(" + callback + ", " + v + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_listen = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = varName + '.listen()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const turtle_screen_savefig = function (_, generator) {
|
||||
generator.definitions_.import_turtle = "import turtle";
|
||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);
|
||||
var code = varName + ".getcanvas().postscript(file=" + file + ")\n";
|
||||
return code;
|
||||
}
|
||||
Reference in New Issue
Block a user