一种手绘卡片的编程方法、系统、设备及介质与流程

未命名 09-11 阅读:77 评论:0


1.本发明涉及计算机技术领域,特别涉及一种手绘卡片的编程方法、系统、设备及介质。


背景技术:

2.编程是编定程序的中文简称,就是计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
3.为了培养学生(如初中生、高中生等)的计算思维和创新解难能力,很多学校或培训机构都开设有编程课程。然而,目前学生在学习编程时,只能通过在电子产品(如电脑等)上编写程序来实现,如申请号为cn202011550570.x的中国发明专利公开的一种基于图形化编辑器的编程实现方法、装置及设备,又如申请号为202210151899.1的中国发明专利公开的一种智能化少儿编程教学平台及方法,都只能借助电子产品来编写程序,这使得在实际使用时存在以下缺陷:1、编程时学生需要长时间面对电脑屏幕,会对学生的视力带来不良影响;2、电子产品功能丰富,学生容易借助编程去做其他事情,即会影响学生的编程专注度,从而影响编程学习效果。


技术实现要素:

4.鉴于上述存在的技术问题,本发明的目的在于提供一种手绘卡片的编程方法、装置、设备及介质,通过采用手绘编程卡片的方式进行编程,再借助图像采集装置采集编程卡片,将绘制到编程卡片上的内容解析成代码文件,并利用代码运行装置运行代码文件,既能够减少对学生的视力造成不良影响,又能够提高学生的编程专注度,从而提升编程学习效果。
5.第一方面,本发明提供了一种手绘卡片的编程方法,所述方法包括如下步骤:在编程卡片上绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;程序开发完成后,采集编程卡片的卡片图像;根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件;运行获得的代码文件。
6.第二方面,本发明提供了一种手绘卡片的编程系统,所述系统包括编程卡片、图像采集装置、代码解析装置以及代码运行装置;所述编程卡片,用于绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘
制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;所述图像采集装置,用于程序开发完成后,采集编程卡片的卡片图像;所述代码解析装置,用于根据提供的标准图案解析表解析卡片图像上的代码内容,从而获得完整的代码文件;所述代码运行装置,用于运行获得的代码文件。
7.第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
8.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
9.本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:改变了传统利用电子产品的电子屏幕进行编程的方式,通过采用手绘编程卡片的方式进行编程,再借助图像采集装置采集编程卡片,将绘制到编程卡片上的内容解析成代码文件,并利用代码运行装置运行代码文件,通过这种编程方式,使得学生无需在面对电子产品的电子屏幕进行编程,既能够减少对学生的视力造成不良影响,又能够提高学生的编程专注度,从而提升编程学习效果。
10.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
11.下面参照附图结合实施例对本发明作进一步的说明。
12.图1为本发明实施例一中一种手绘卡片的编程方法的执行流程图;图2为本发明实施例二中一种手绘卡片的编程系统的结构原理框图;图3为本发明中编程卡片的样式图;图4为本发明中图像采集装置的结构示意图;图5为本发明中9点阵的端点和线段编号图;图6为本发明中采集单元在x轴刻度尺上移动的示意图;图7为本发明中采集单元在y轴刻度尺上移动的示意图;图8为本发明中线段的采样示意图;图9为本发明实施例三中电子设备的结构示意图;图10为本发明实施例四中介质的结构示意图。
13.附图标记说明:卡片头部11,第一定位区111,二维码区112,卡号区113,卡片尾部12,第二定位区121,编程部13,y轴刻度尺131,指令码点阵区132,操作数点阵区133,语句尾点阵区134,步序区135,x轴刻度尺14;相机固定支架21,定焦距相机22,调光灯23,卡片放置板24,卡片定位块25;
具体实施方式
14.为了更好地理解本发明的技术方案,下面将结合说明书附图以及具体的实施方式
对本发明的技术方案进行详细的说明。
15.实施例一
16.本实施例提供一种手绘卡片的编程方法的较佳实施例,如图1所示,所述方法包括如下步骤:步骤s1、在编程卡片上绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;具体在绘制代码内容时,使用者可使用铅笔或圆珠笔等在编程卡片上绘制代码内容,即绘制指令码图案、操作数图案、语句尾图案等;步骤s2、程序开发完成后,采集编程卡片的卡片图像,具体的,在绘制完编程卡片上的代码内容后,可使用图像采集装置采集编程卡片的卡片图像;作为本发明的一种具体实施方式,如图4所示,所述图像采集装置包括相机固定支架21、设置在相机固定支架21上的定焦距相机22、设置在相机固定支架21上的调光灯23、设置在定焦距相机22下方的卡片放置板24以及设置在卡片放置板24上的卡片定位块25;其中,所述定焦距相机22用于采集编程卡片的卡片图像,所述调光灯23用于拍摄时进行补光,所述卡片放置板24用于放置编程卡片,所述卡片定位块25用于对编程卡片进行定位,保证拍摄时编程卡片不会发生偏移;步骤s3、根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件;步骤s4、运行获得的代码文件。
17.本发明的技术方案改变了传统利用电子产品的电子屏幕进行编程的方式,通过采用手绘编程卡片的方式进行编程,再借助图像采集装置采集编程卡片,将绘制到编程卡片上的内容解析成代码文件,并利用代码运行装置运行代码文件,通过这种编程方式,使得学生无需在面对电子产品的电子屏幕进行编程,既能够减少对学生的视力造成不良影响,又能够提高学生的编程专注度,从而提升编程学习效果。
18.在本发明的较佳实施例中,请重点参照图3所示,在步骤s1中,所述编程卡片包括卡片头部11、卡片尾部12以及位于所述卡片头部11与卡片尾部12之间的编程部13;所述卡片头部11设置有第一定位区111、二维码区112和卡号区113;其中,所述第一定位区111用于对编程卡片进行定位,以便于采集编程卡片的卡片图像;所述二维码区112用于打印二维码,以便于通过二维码识别的方式获取编程卡片的卡片身份码;所述卡号区113用于供学生根据自身需要书写卡片序号,例如在一次编程过程中可能需要使用到多张编程卡片,此时学生就可以在编程卡片的卡号区113中书写卡片序号,以便于学生对各张编程卡片进行区分;所述编程部13设置有y轴刻度尺131、指令码点阵区132、操作数点阵区133、语句尾点阵区134和步序区135,所述步序区135、指令码点阵区132、操作数点阵区133和语句尾点阵区134可以按照由左至右的方向依次设置;具体的,在所述编程部13的左右两侧均可以设置y轴刻度尺131,其中,所述y轴刻度尺131用于计算指令码点阵、操作数点阵和语句尾点阵中各个单元格的像素坐标;所述步序区135用于标注步骤顺序,一行就代表一个步骤;所述指令码点阵区132内设置有两列所述指令码点阵,且其中一列作为主指令码点阵,另一列作
为副指令码点阵;所述操作数点阵区133设有若干列所述操作数点阵,所述操作数点阵的列数可以根据操作数的数量进行设置,且每个操作数均对应设置有多列所述操作数点阵;所述语句尾点阵区134内设有一列所述语句尾点阵;作为本发明的一种具体实施方式,在所述编程部13中,设置有一列主指令码点阵、一列副指令码点阵和一列语句尾点阵,同时包括有操作数1、操作数2、操作数3和操作数4一共四个操作数,且所述操作数1、操作数2、操作数3和操作数4均对应设置有四列操作数点阵;所述卡片尾部12设置有第二定位区121,所述第二定位区121用于对编程卡片进行定位,以便于采集编程卡片的卡片图像;所述卡片头部11和/或卡片尾部12设置有x轴刻度尺14,具体的,可以在卡片头部11和卡片尾部12都设置x轴刻度尺14,所述x轴刻度尺14用于计算指令码点阵、操作数点阵和语句尾点阵中各个单元格的像素坐标。
19.作为本发明的一种具体实施方式,所述第一定位区111和第二定位区121均为设置在编程卡片边缘的定位缺口,定位时可将卡片定位块25卡入至定位缺口内实现定位。
20.在本发明的较佳实施例中,在步骤s1中,所述指令码点阵、操作数点阵和语句尾点阵均包括n行m列等间距排列的单元格,其中,n和m均为大于等于3的正整数;作为本发明的一种具体实施方式,所述指令码点阵、操作数点阵和语句尾点阵均采用3x3等间距排列设置的单元格,即9点阵,这样整个点阵支持的图案样式数量为2^20个,当然,本发明并不仅限于此,在具体实施时还可以根据实际需要扩展为12点阵,即3x4或4x3。
21.在绘制代码内容时,所述指令码点阵、操作数点阵和语句尾点阵所支持的线段连线方式均包括水平相邻两点连线、竖直相邻两点连线和45
°
夹角相邻两点连线,且所述指令码点阵、操作数点阵和语句尾点阵均采用4个字节32位来记录图案信息;如图5所示,以所述指令码点阵、操作数点阵和语句尾点阵均采用9点阵,且点阵的单元格采用方形单元格为例,点阵中线段与字节位的对应关系如下表1,当线段存在时,对应的位值为1,否则值为0;表1 线段与字节位的对应关系表
22.所述指令码点阵、操作数点阵和语句尾点阵上的各个单元格均与所述x轴刻度尺14和y轴刻度尺131上的刻度标一一对应设置,即每个单元格均与x轴刻度尺的一个刻度标和y轴刻度尺的一个刻度标相对应设置,以通过所述x轴刻度尺14和y轴刻度尺131计算出所述指令码点阵、操作数点阵和语句尾点阵中各个单元格的像素坐标。
23.在本发明的较佳实施例中,为了实现将卡片图像上的指令码图案、操作数图案和
语句尾图案解析成代码文件,在步骤s3中,所述根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件具体包括:以卡片图像的左上角为坐标原点(0,0),以从左到右为x轴方向,以从上到下为y轴方向,建立图像坐标系;通过卡片图像上二维码区中的二维码获取卡片身份码,该卡片身份码用于唯一识别编程卡片的身份;由于在具体实施时,一个完整的代码文件常需要通过多张编程卡片共同生成,而图像采集装置每次只能采集一张编程卡片的卡片图像,且每一张编程卡片都具有唯一的卡片身份码,因此,可以根据卡片身份码获取的先后顺序(即编程卡片的图像采集的先后顺序)来实现将多张编程卡片按顺序组合形成完整的代码文件。
24.解析卡片图像上的x轴刻度尺14和y轴刻度尺131,按照从左到右的顺序分别计算出x轴刻度尺14上各个刻度标的第一中心点像素坐标,并将各个第一中心点像素坐标的横坐标值存入第一数组中;按照从上到下的顺序分别计算出y轴刻度尺131上各个刻度标的第二中心点像素坐标,并将各个第二中心点像素坐标的纵坐标值存入第二数组中;按照先从左到右,再从上到下的顺序,逐行解析出指令码点阵上绘制的指令码图案、操作数点阵上绘制的操作数图案和语句尾点阵上绘制的语句尾图案,所述指令码图案包括主指令码图案和副指令码图案,并将各个图案所代表的32位数值存入二维数组codeblocks中,且数值的存放顺序与卡片图像上各个指令码点阵、操作数点阵和语句尾点阵的行列顺序一一对应,具体如下:[[主码,副码,操作数1-1,操作数1-2,操作数1-3,操作数1-4,操作数2-1,操作数2-2,操作数2-3,操作数2-4,操作数3-1,操作数3-2,操作数3-3,操作数3-4,操作数4-1,操作数4-2,操作数4-3,操作数4-4,句尾],[......]];根据卡片身份码,从二维数组codeblocks中按顺序依次取出每一行数据,根据标准图案解析表解析每一行数据生成对应的代码语句,将生成的所有代码语句按顺序组合成完整的代码文件,并将代码文件保存到磁盘中,以便于获取代码文件进行运行。需要注意的是,在组合成完整的代码文件时,当具有多张编程卡片时,可以按照卡片身份码的先后获取顺序进行组合,同时对于同一张编程卡片,需要按照步序区135中步骤的先后顺序进行组合。
[0025]
更具体的,为了更好的计算出x轴刻度尺14和y轴刻度尺131的中心点像素坐标,在绘制代码内容之前,先对编程卡片进行拍照采集,并计算出x轴刻度尺14和y轴刻度尺131上刻度标的像素平均宽度和像素平均高度,像素平均宽度记为w1个像素,像素平均高度记为h1个像素,刻度标的图案灰度阈值记为v1,两个刻度标之间的空白区域的灰度阈值记为v2;设置像素采集单元s,像素采集单元s的起始坐标记为(x0,y0),像素采集单元s的像素区域宽度记为ws,像素采集单元s的像素区域高度记为hs;本发明在具体实施时,所述像素采集
单元s的像素区域宽度ws的初始值可以设置为w1/2,所述像素采集单元s的像素区域高度hs的初始值可以设置为h1/2,当然,也可以根据多次实验后优化修改ws和hs的初始值;需要说明的是:对于刻度标和像素采集单元s,沿着x轴方向的是宽度,沿着y轴方向的是高度;所述按照从左到右的顺序分别计算出x轴刻度尺14上各个刻度标的第一中心点像素坐标,并将各个第一中心点像素坐标的横坐标值存入第一数组中具体为:新建第一数组ax,第一数组ax的长度等于x轴刻度尺14上刻度标的数量,该第一数组ax用于存放x轴刻度尺上各个刻度标在x轴的像素位置;新建整数变量index,整数变量index的初始值为0,该整数变量index用于作为第一数组ax的游标;如图6所示,沿着x轴方向移动像素采集单元s,具体可以从卡片图像的最左侧开始进行移动,每次移动的距离为像素区域宽度ws,且每移动一次像素采集单元s,均计算一次采集区域的灰度值,如果采集区域的灰度值小于等于图案灰度阈值v1,则判定像素采集单元s处在刻度标的位置,并计算出此时像素采集单元s的中心位置坐标(xs,ys),将xs存入到第一数组ax中,即ax[index]=xs;如果采集区域的灰度值大于等于空白区域的灰度阈值v2,则判定像素采集单元s处在两个刻度标之间的位置,此时将整数变量index的值加1;继续移动像素采集单元s,直到计算完x轴刻度尺14上所有刻度标的位置;按照从上到下的顺序分别计算出y轴刻度尺131上各个刻度标的第二中心点像素坐标,并将各个第二中心点像素坐标的纵坐标值存入第二数组中具体为:新建第二数组ay,第二数组ay的长度等于y轴刻度尺131上刻度标的数量,该第二数组ay用于存放y轴刻度尺上各个刻度标在y轴的像素位置;新建整数变量indey,整数变量indey的初始值为0,该整数变量indey用于作为第二数组ay的游标;如图7所示,沿着y轴方向移动像素采集单元s,具体可以从卡片图像的上端开始进行移动,每次移动的距离为像素区域高度hs,且每移动一次像素采集单元s,均计算一次采集区域的灰度值,如果采集区域的灰度值小于等于图案灰度阈值v1,则判定像素采集单元s处在刻度标的位置,并计算出此时像素采集单元s的中心位置坐标(xs,ys),将ys存入到第二数组ay中,即ay[indey]=ys;如果采集区域的灰度值大于等于空白区域的灰度阈值v2,则判定像素采集单元s处在两个刻度标之间的位置,此时将整数变量indey的值加1;继续移动像素采集单元s,直到计算完y轴刻度尺131上所有刻度标的位置。
[0026]
更具体的,所述逐行解析出指令码点阵上绘制的指令码图案、操作数点阵上绘制的操作数图案和语句尾点阵上绘制的语句尾图案具体为:对于指令码点阵、操作数点阵和语句尾点阵,均分别计算出点阵上各个单元格的像素坐标,以采用9点阵为例,需要计算出点阵上p0-p8这9个单元格的像素坐标;具体计算过程如下:根据计算得到的x轴方向的刻度标的第一数组ax和y轴方向的刻度标的第二数组ay,设置9点阵的左上角第一个单元格的位置为0行0列,计算r行c列单元格pm的x轴坐标pm_x=ax[c x 3+m],y轴坐标pm_y=ay[r x 3 + m],通过以上方式分别计算出p0-p8的像素坐标;新建一个32位无符号整数v,设置初始值v=0;计算点阵上相邻两个单元格之间是否存在线段,如果存在,则将32位无符号整数v的对应位设置为1;如果不存在,则将32位无符号整数v的对应位设置为0;例如在计算p0与p1之间是否存在线段l0时,如果线段l0存在,就将32位无符号整数v的第0位设置为1,如果线段l0不存在,就将32位无符号整数v的第0位
设置为0;在计算完整个点阵上的所有线段后,32位无符号整数v的数值即为图案所代表的32位数值;其中,计算点阵上相邻两个单元格之间是否存在线段具体为:如图8所示,记线段ln对应的两个端点分别为端点pa和端点pb,且端点pa的中心像素点坐标为(xa,ya),端点pb的中心像素点坐标为(xb,yb),线段存在的灰度阈值记为v1,线段不存在的灰度阈值记为v2;从端点pa与端点pb之间等间距设置n个采集点q,每个采集点q的大小为m*m像素单元,并计算出各个采集点q的平均灰度值,其中,n为大于等于3的正整数,m小于线段ln的线宽;在具体进行采集时,第a个采集点sa左上角的x轴坐标为sa_x= xa + (xb-xa)/n * a,y轴坐标为sa_y = ya + (yb-ya)/n*a,a为大于等于3的正整数,且a小于等于n;当各个采集点的平均灰度值均小于等于灰度阈值v1时,则判定线段ln存在;当各个采集点的平均灰度值均大于等于灰度阈值v2时,则判定线段ln不存在;当各个采集点的平均灰度值中,存在平均灰度值大于灰度阈值v1且小于灰度阈值v2时,则判定为异常,如果出现异常可以产生报警信息,以便于进行人工判断处理。
[0027]
更具体的,所述根据标准图案解析表解析每一行数据生成对应的代码语句具体为:创建标准图案解析表,所述标准图案解析表至少包括编程语言的语句模板表、字符编码表以及标准库函数表;所述语句模板表的字段包括语句类型、主指令码、副指令码、语句指令图案以及编程语言所对应的语句模板,编程语言可以是python、c、java等,具体如以下表2:表2 语句模板表
[0028]
续上表2:
[0029]
需要说明的是,以上表2只是简单的列举了一部分语句模板,但本发明并不仅限于此,在具体实施时,还可以根据实际使用需要增加其他的语句模板。同时,所述语句模板中设置有替换符,具体的,在本发明的实施例中,采用字符串“{n}”作为替换符,如语句模板中替换符“{0}”对应为语句缩进,“{1}”对应为操作数1,“{2}”对应为操作数2,“{3}”对应为操作数3,“{4}”对应为操作数4。
[0030]
所述字符编码表的字段包括字符、编码值和字符图案,具体如以下表3:表3字符编码表
[0031]
续上表3:
[0032]
需要说明的是,以上表3只是简单的列举了一部分字符,但本发明并不仅限于此,在具体实施时,还可以根据实际使用需要增加其他的字符。
[0033]
所述标准库函数表的字段包括函数名称、主指令码、副指令码、函数指令图案以及编程语言所对应的函数模板,编程语言可以是python、c、java等,具体如以下表4:表4标准库函数表
[0034]
需要说明的是,以上表4只是简单的列举了一部分函数模板,但本发明并不仅限于此,在具体实施时,还可以根据实际使用需要增加其他的函数模板。
[0035]
同时,所述标准图案解析表还可以包括自定义表,用户可以根据实际需要在自定义表中自定义其它所需的内容,例如语句块开始的标志图案、语句块结束的标志图案等。
[0036]
在从二维数组中取出每一行数据时,使用主指令码图案和副指令码图案的数值从语句模板表(即表2)中检索出语句模板或者使用主指令码图案和副指令码图案的数值从标准库函数表(即表4)中检索出函数模板;使用语句尾图案的数值计算出当前语句的缩进空格字符串head,使用操作数图案的数值从字符编码表(即表3)中检索出字符,并根据缩进空格字符串head和检索出的字符替换语句模板或函数模板中的替换符,从而形成一个语句或函数,即使用缩进空格字符串head替换语句模板或函数模板中的"{0}",使用操作数1替换语句模板或函数模板中的"{1}",使用操作数2替换语句模板或函数模板中的"{2}",使用操作数3替换语句模板或函数模板中的"{3}",使用操作数4替换语句模板或函数模板中的"{4}"。其中,使用语句尾图案的数值计算出当前语句的缩进空格字符串head具体包括:建立全局整型变量cn,初始化cn=0,在程序解析生成语句期间,cn只初始化一次;检测语句尾图案,如果检测到语句尾图案为语句块开始的标志图案,则cn=cn+1;如果检测到语句尾图案为语句块结束的标志图案,则cn=cn-1; cn标记当前生成的语句行需要缩进的单位数,1个单位默认为4个空格字符;语句块开始的标志图案和语句块结束的标志图案可以根据实际需要进行定义。
[0037]
以加法运算语句的语句模板({0}{4} = {1} + {2})为例,如果缩进空格字符串head 为1个单位,操作数4为“a”,操作数1为“b”,操作数2为“c”,那么得到的加法运算语句为:a=b+c,且该加法运算语句需要缩进4个空格字符。
[0038]
基于同一发明构思,本技术还提供了与实施例一中的方法对应的系统,详见实施例二。
[0039]
实施例二
[0040]
在本实施例中提供了一种手绘卡片的编程系统,如图2所示,所述系统包括编程卡片、图像采集装置、代码解析装置以及代码运行装置;所述编程卡片,用于绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;
所述图像采集装置,用于程序开发完成后,采集编程卡片的卡片图像;所述代码解析装置,用于根据提供的标准图案解析表解析卡片图像上的代码内容,从而获得完整的代码文件;所述代码运行装置,用于运行获得的代码文件。
[0041]
本发明的技术方案改变了传统利用电子产品的电子屏幕进行编程的方式,通过采用手绘编程卡片的方式进行编程,再借助图像采集装置采集编程卡片,将绘制到编程卡片上的内容解析成代码文件,并利用代码运行装置运行代码文件,通过这种编程方式,使得学生无需在面对电子产品的电子屏幕进行编程,既能够减少对学生的视力造成不良影响,又能够提高学生的编程专注度,从而提升编程学习效果。
[0042]
需要说明的是:所述编程卡片的具体结构和实现的功能与步骤s1完全相同,所述图像采集装置的具体结构和实现的功能与步骤s2完全相同,所述代码解析装置实现的功能与步骤s3完全相同,所述代码运行装置实现的功能与步骤s4完全相同,具体请参照实施例一的详细介绍,在此就不再对所述编程卡片、图像采集装置、代码解析装置和代码运行装置进行赘述了。
[0043]
基于同一发明构思,本技术提供了实施例一对应的电子设备实施例,详见实施例三。
[0044]
实施例三
[0045]
本实施例提供了一种电子设备,如图9所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
[0046]
由于本实施例所介绍的电子设备为实施本技术实施例一中方法所采用的设备,故而基于本技术实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
[0047]
基于同一发明构思,本技术提供了实施例一对应的存储介质,详见实施例四。
[0048]
实施例四
[0049]
本实施例提供一种计算机可读存储介质,如图10所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
[0050]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0051]
本发明是参照根据本发明实施例的方法、系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流
程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0052]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0053]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0054]
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

技术特征:
1.一种手绘卡片的编程方法,其特征在于:所述方法包括如下步骤:在编程卡片上绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;程序开发完成后,采集编程卡片的卡片图像;根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件;运行获得的代码文件。2.根据权利要求1所述的手绘卡片的编程方法,其特征在于:所述编程卡片包括卡片头部、卡片尾部以及位于所述卡片头部与卡片尾部之间的编程部;所述卡片头部设置有第一定位区、二维码区和卡号区;所述编程部设置有y轴刻度尺、指令码点阵区、操作数点阵区、语句尾点阵区和步序区;所述指令码点阵区内设置有两列所述指令码点阵,且其中一列作为主指令码点阵,另一列作为副指令码点阵;所述操作数点阵区设有若干列所述操作数点阵;所述语句尾点阵区内设有一列所述语句尾点阵;所述卡片尾部设置有第二定位区,所述卡片头部和/或卡片尾部设置有x轴刻度尺。3.根据权利要求2所述的手绘卡片的编程方法,其特征在于:所述指令码点阵、操作数点阵和语句尾点阵均包括n行m列等间距排列的单元格,其中,n和m均为大于等于3的正整数;在绘制代码内容时,所述指令码点阵、操作数点阵和语句尾点阵所支持的线段连线方式均包括水平相邻两点连线、竖直相邻两点连线和45
°
夹角相邻两点连线,且所述指令码点阵、操作数点阵和语句尾点阵均采用4个字节32位来记录图案信息;所述指令码点阵、操作数点阵和语句尾点阵上的各个单元格均与所述x轴刻度尺和y轴刻度尺上的刻度标一一对应设置,以通过所述x轴刻度尺和y轴刻度尺计算出所述指令码点阵、操作数点阵和语句尾点阵中各个单元格的像素坐标。4.根据权利要求2所述的手绘卡片的编程方法,其特征在于:所述根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件具体包括:以卡片图像的左上角为坐标原点,以从左到右为x轴方向,以从上到下为y轴方向,建立图像坐标系;通过卡片图像上二维码区中的二维码获取卡片身份码;解析卡片图像上的x轴刻度尺和y轴刻度尺,按照从左到右的顺序分别计算出x轴刻度尺上各个刻度标的第一中心点像素坐标,并将各个第一中心点像素坐标的横坐标值存入第一数组中;按照从上到下的顺序分别计算出y轴刻度尺上各个刻度标的第二中心点像素坐标,并将各个第二中心点像素坐标的纵坐标值存入第二数组中;按照先从左到右,再从上到下的顺序,逐行解析出指令码点阵上绘制的指令码图案、操作数点阵上绘制的操作数图案和语句尾点阵上绘制的语句尾图案,并将各个图案所代表的32位数值存入二维数组中,且数值的存放顺序与卡片图像上各个指令码点阵、操作数点阵和语句尾点阵的行列顺序一一对应;所述指令码图案包括主指令码图案和副指令码图案;根据卡片身份码,从二维数组中按顺序依次取出每一行数据,根据标准图案解析表解
析每一行数据生成对应的代码语句,将生成的所有代码语句按顺序组合成完整的代码文件,并将代码文件保存到磁盘中。5.根据权利要求4所述的手绘卡片的编程方法,其特征在于:所述根据标准图案解析表解析每一行数据生成对应的代码语句具体为:创建标准图案解析表,所述标准图案解析表至少包括编程语言的语句模板表、字符编码表以及标准库函数表;所述语句模板表的字段包括语句类型、主指令码、副指令码、语句指令图案以及编程语言所对应的语句模板,所述语句模板中设置有替换符;所述字符编码表的字段包括字符、编码值和字符图案;所述标准库函数表的字段包括函数名称、主指令码、副指令码、函数指令图案以及编程语言所对应的函数模板;在从二维数组中取出每一行数据时,使用主指令码图案和副指令码图案的数值从语句模板表中检索出语句模板或者使用主指令码图案和副指令码图案的数值从标准库函数表中检索出函数模板;使用语句尾图案的数值计算出当前语句的缩进空格字符串head,使用操作数图案的数值从字符编码表中检索出字符,并根据缩进空格字符串head和检索出的字符替换语句模板或函数模板中的替换符。6.根据权利要求4所述的手绘卡片的编程方法,其特征在于:在绘制代码内容之前,对编程卡片进行拍照采集,并计算出x轴刻度尺和y轴刻度尺上刻度标的像素平均宽度和像素平均高度,像素平均宽度记为w1个像素,像素平均高度记为h1个像素,刻度标的图案灰度阈值记为v1,两个刻度标之间的空白区域的灰度阈值记为v2;设置像素采集单元s,像素采集单元s的起始坐标记为(x0,y0),像素采集单元s的像素区域宽度记为ws,像素采集单元s的像素区域高度记为hs;所述按照从左到右的顺序分别计算出x轴刻度尺上各个刻度标的第一中心点像素坐标,并将各个第一中心点像素坐标的横坐标值存入第一数组中具体为:新建第一数组ax,第一数组ax的长度等于x轴刻度尺上刻度标的数量;新建整数变量index,整数变量index的初始值为0,该整数变量index用于作为第一数组ax的游标;沿着x轴方向移动像素采集单元s,每次移动的距离为像素区域宽度ws,且每移动一次像素采集单元s,均计算一次采集区域的灰度值,如果采集区域的灰度值小于等于图案灰度阈值v1,则判定像素采集单元s处在刻度标的位置,并计算出此时像素采集单元s的中心位置坐标(xs,ys),将xs存入到第一数组ax中;如果采集区域的灰度值大于等于空白区域的灰度阈值v2,则判定像素采集单元s处在两个刻度标之间的位置,此时将整数变量index的值加1;继续移动像素采集单元s,直到计算完x轴刻度尺上所有刻度标的位置;按照从上到下的顺序分别计算出y轴刻度尺上各个刻度标的第二中心点像素坐标,并将各个第二中心点像素坐标的纵坐标值存入第二数组中具体为:新建第二数组ay,第二数组ay的长度等于y轴刻度尺上刻度标的数量;新建整数变量indey,整数变量indey的初始值为0,该整数变量indey用于作为第二数组ay的游标;沿着y轴方向移动像素采集单元s,每次移动的距离为像素区域高度hs,且每移动一次像素采集单元s,均计算一次采集区域的灰度值,如果采集区域的灰度值小于等于图案灰度阈值v1,则判定像素采集单元s处在刻度标的位置,并计算出此时像素采集单元s的中心位置坐标(xs,ys),将ys存入到第二数组ay中;如果采集区域的灰度值大于等于空白区域的灰度阈值v2,则判定像素采集单元s处在两个刻度标之间的位置,此时将整数变量indey的值
加1;继续移动像素采集单元s,直到计算完y轴刻度尺上所有刻度标的位置。7.根据权利要求4所述的手绘卡片的编程方法,其特征在于:所述逐行解析出指令码点阵上绘制的指令码图案、操作数点阵上绘制的操作数图案和语句尾点阵上绘制的语句尾图案具体为:对于指令码点阵、操作数点阵和语句尾点阵,均分别计算出点阵上各个单元格的像素坐标;新建一个32位无符号整数v,设置初始值v=0;计算点阵上相邻两个单元格之间是否存在线段,如果存在,则将32位无符号整数v的对应位设置为1;如果不存在,则将32位无符号整数v的对应位设置为0;在计算完整个点阵上的所有线段后,32位无符号整数v的数值即为图案所代表的32位数值;其中,计算点阵上相邻两个单元格之间是否存在线段具体为:记线段ln对应的两个端点分别为端点pa和端点pb,且端点pa的中心像素点坐标为(xa,ya),端点pb的中心像素点坐标为(xb,yb),线段存在的灰度阈值记为v1,线段不存在的灰度阈值记为v2;从端点pa与端点pb之间等间距设置n个采集点,每个采集点的大小为m*m像素单元,并计算出各个采集点的平均灰度值,其中,n为大于等于3的正整数,m小于线段ln的线宽;当各个采集点的平均灰度值均小于等于灰度阈值v1时,则判定线段ln存在;当各个采集点的平均灰度值均大于等于灰度阈值v2时,则判定线段ln不存在;当各个采集点的平均灰度值中,存在平均灰度值大于灰度阈值v1且小于灰度阈值v2时,则判定为异常。8.一种手绘卡片的编程系统,其特征在于:所述系统包括编程卡片、图像采集装置、代码解析装置以及代码运行装置;所述编程卡片,用于绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;所述编程卡片上具有指令码点阵、操作数点阵和语句尾点阵,通过在所述指令码点阵上绘制线段形成所述指令码图案,通过在所述操作数点阵上绘制线段形成所述操作数图案,通过在所述语句尾点阵上绘制线段形成所述语句尾图案;所述图像采集装置,用于程序开发完成后,采集编程卡片的卡片图像;所述代码解析装置,用于根据提供的标准图案解析表解析卡片图像上的代码内容,从而获得完整的代码文件;所述代码运行装置,用于运行获得的代码文件。9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7任一项所述的方法。

技术总结
本发明提供一种手绘卡片的编程方法、系统、设备及介质,方法包括如下:在编程卡片上绘制代码内容进行程序开发,所述代码内容至少包括指令码图案、操作数图案和语句尾图案;程序开发完成后,采集编程卡片的卡片图像;根据提供的标准图案解析表解析卡片图像上的代码内容,并生成完整的代码文件;运行获得的代码文件。本发明的优点:能够减少对学生的视力造成不良影响,又能够提高学生的编程专注度,从而提升编程学习效果。提升编程学习效果。提升编程学习效果。


技术研发人员:叶继兵
受保护的技术使用者:福州兴趣马力科技有限公司
技术研发日:2023.08.08
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐