核桃编程小人踢球教程
发布时间:2025-05-19 17:59:42 发布人:远客网络
一、核桃编程小人踢球教程
小猫在足球场上踢球,当小猫与足球保持一定距离时,小猫跑向足球,当小猫碰到足球时,将足球踢到舞台的任意位置,小猫继续向足球跑,整个过程不断重复,直到人为控制程序停止。
根据剧本,我们的程序需要改变舞台背景为足球场,同时需要小猫,足球两个角色。
首先、按照我们之前学习的方法导入足球角色(角色库中的Ball-Soccer),同时设置背景为背景库中的足球场(playing-field),当然小朋友也可以选择自己喜欢的其他图案,都是没有问题的。
其次、我们需要调整好角色的大小和位置。设置好的舞台及角色入下图
下面我们希望让小猫持续的动起来,这里我们采用“移动10步”这个指令让小猫不停向前跑动,拖动“移动10步”到脚本区,每次双击指令,小猫都会移动10步,不过为了让小猫不断跑而不要停下来,我们需要在移动指令外面加上一个重复指令如下图,这个时候再次双击组合后的指令,会发现小猫一直向前跑,直到舞台的边缘,如果不停止程序,即使把小猫拖回来,小猫还是会继续跑。
现在的移动命令,小猫运动的比较快,我们希望小猫的动作可以更自然一点,每次移动后有一个小的停顿,可以如图通过增加等待指令在移动指令下面,再次运行观看效果。后面我们将通过修改这段指令,让小猫跑动起来的样子更自然,这里暂时先这样。
通过上一步,小猫持续运动起来了,但是根据我们的要求,我们是希望小猫跑向足球,而不是一直向前跑,这个时候就需要在跑动时不断调整方向,让小猫面向足球的方向,这里通过“面向……”指令来实现这个功能。
将面向指令放在重复执行里所有指令的最上面,组合指令如下,再次观察指令效果,会发现小猫可以开始向足球移动了。
完成上面这步之后,会发现有一个问题,小猫在向足球移动时,小猫会随着方向转动非常不美观。这里我们调整小猫的旋转模式为左右旋转,这样看起来会更加自然。双击组合后的代码,不断拖动小猫到不同的位置来查看运行效果
移动足球到屏幕任意的位置,我们可以通过指令“移到鼠标指针”来实现,还记得吗?那里有一个random position选项。
因为这个指令是对足球下达的,所以应该在足球这个角色中添加这条指令。
现在我们在足球角色下双击“移动……”指令,可以手动控制将足球移动到随之的位置了。
先双击小猫角色的指令,然后切换到足球角色,通过不断的双击“移动……”指令,现在小猫开始追着足球不断跑了
到目前位置,我们的程序需要不断手动的点击小猫的代码,然后再不断的点击足球的代码,在实际的程序运行中是无法这样操作的。
我们希望当小猫向足球跑,碰到足球时,能够自动的让足球变换一个位置。
这里面就需要用到一些新的指令。
首先要能识别出小猫碰到足球。选择小猫角色,在监测指令中,有一个“碰到”指令,这条指令用来监视舞台中的小猫是否碰到了指定元素。注意到这个指令的上下都没有凸起或凹槽,因为这个指令并不是作为顺序执行的语句,而是需要嵌入到其他指令中来使用的。
其次需要使用的新指令是在控制指令中的“如果……那么,否则”指令,怎么样?有没有感觉这个指令有点像语文中学到的“如果……那么……”关联词呢?没错,这里表达的就是同样的逻辑。
将以上两条新指令拖动到小猫角色的脚本区,组合起来。
在监视指令的下拉列表中选择足球元素的名字,这样组合后的指令翻译成我们的话,就是当发现小猫碰到足球的时候,我们要怎么样?否则,当小猫没有碰到足球的时候,我们要怎么样?
根据我们的设想,我们希望当小猫没有碰到足球的时候一直跑向足球,而当碰到足球的时候,通知足球移动到一个新的位置。
现在这段程序翻译成我们说的话,就是重复的让小猫跑起来,如果小猫碰到足球,这里我们不知道该怎么办先空着,如果小猫没有碰到足球,那么小猫就不停的跑。
下面我们需要增加一些代码,让小猫碰到足球时,足球能够自动移动,就好像小猫碰到足球时告诉足球一下,“足球,该你移动了”。
这里我们需要用到一个发送消息的指令,在事件指令中,有一个“广播消息”指令,将他拖动到脚本区。
我们希望给消息起一个新的名字,叫“小猫踢球”,点击下拉列表中的“新消息……。
在对话框中写小猫踢球然后确定。
下面我们将这条消息与之前的代码组合起来。
现在,小猫已经在碰到球时,会向整个舞台广播名叫“小猫踢球”的消息。
回到足球角色,在足球角色的移动代码前添加“当接收到……”指令,组合后的指令如下,这个指令也在事件指令中可以找到。这样,当足球角色听到小猫广播的消息,就会自动执行移动的命令了。
现在回到小猫角色,双击组合后的指令,看看发生了什么?
没错,小猫踢球的连续动作已经实现了。
最后就是在小猫的所有指令组合前加上控制程序开始运行的命令
我们的程序虽然已经初步完成了,但是会发现小猫移动的样子很呆板,如果小猫跑动的时候,两条腿能够像真正跑步那样动起来,会更加好看一些,下面我们就来实现这个功能。
选择小猫角色,在指令区有一个造型标签,
点击造型标签,会发现有造型1,造型2两个样子,上下来回点一点两个造型,会发现舞台中的小猫角色腿不停的动起来了,实际的动画,就是通过连续播放这种不同造型的角色,来给人一种角色动起来的感觉。
下面我们就希望,在小猫运动的过程中,能够让程序自动的来回切换这两种造型。这个功能是通过“外观”指令中的下面两条指令来实现的。
“将造型切换为……”:指令可以自动控制将角色切换到指定的造型,下拉列表可以选择。
下一个造型:通过循环的方式,从第一个造型开始依次切换,当切换到最后一个造型时再从第一个开始,由于这里只有两个造型,因此切换顺序是1、2、1、2……
在小猫角色中组合如下指令,再起运行,小猫是不是已经像跑起来的样子了?
我们也可以采用第二个切换造型的指令,让代码看上去更加简洁。
现在小猫踢球的程序已经完成了。
请小朋友试着再新建一个小猴子的角色,让小猴子和小猫一起来踢球吧。
二、猴子选大王的编程,数据结构方法
不确定具体题目,从网上摘抄来的题目:
山上有n只猴子要选大王,选举办法如下:所有猴子从1到n进行编号并围坐一圈,从第一号开始按顺序1,2,...m继续报数,凡是报m号的猴子都退出到圈外,照此循环报数,直到圈内只剩下一只猴子时,这只猴子就是大王.输出大王的编号。
这个题目是循环链表的应用,循环链表参见:
structCircularLinkedListElement
CircularLinkedListElement*next;
CircularLinkedListElement*start;
读入猴子数量n,以及淘汰的号码m
注意输入的是正整数,为了满足一般从0开始计数的规律,读入后将n、m均减一
printf("Pleaseentermonkeysnumbern:");
fprintf(stderr,"**Error:Monkey'snumbershouldbepositive.\n");
printf("Pleaseenterobsoletenumberm:");
fprintf(stderr,"**Error:Obsoletenumbershouldbepoistive.\n");
start=(CircularLinkedListElement*)malloc(sizeof(CircularLinkedListElement));
fprintf(stderr,"**Error:mallocerror.\n");
q=(CircularLinkedListElement*)malloc(sizeof(CircularLinkedListElement));
fprintf(stderr,"**Error:mallocerror.\n");
printf("%d",p->position+1);
printf("%d\n",p->position+1);
printf("Obsoletemonkeyis:%d\n",q->position+1);
printf("Themonkeykingis%d.\n",start->position+1);
}
英文系统,所以输出都写的是英文,见谅
英文系统,所以输出都写的是英文,见谅
三、怎么学习编程
学习编程是一件好事,不要认为编程很难,其实它并不难,不过之前你得先了解你学习编程的目的是什么?这个很重要,因为目的决定你的发展方向。目前对于编程有很多种编程语言以及相对应的开发软件,根据你的情况选一种语言进行专业学习,不要盲乱学习。编程是一种融汇贯通的东西,学会基础到后边就越来越简单了。而且可以向多种语言发展。因为毕竟世上没有永远不过时的东西嘛!下面说明一些常用的编程语言。
C语言是一种可移植性和多系统平台的编程语言
JAVA是一种功能强大可移植性强的开发语言
Java Script是一种基于客户端的脚本语言
程序语言,顾名思义就是一种语言,是用于交流的,程序就是计算机的语言和人类语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现,可是因为种种原因,大多数人在如何学好语言,如何学好开发平台上疲于奔命,到头来你只会敲写代码。如果想做一个合格的程序员,C++、JAVA、sql、都是一定要学的,另外,不要去学你喜欢的,也不要去费劲脑子想该学什么,看看IT界,IT市场需要什么,你就学什么。
从理论上来说,需要广泛的阅读,了解算法的博大精深和计算机的基本理论。
从实践上来说,需要有广泛的练习,练习的广泛在于练习不同的内容。
然后就是创新精神和数学思维能力,这些都是需要培养的。
学编程要具备一定的基础,总结之有以下几方面:
(1)数学基础、从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养、学程序设计要有一定的逻辑思维能力,“思维能力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程的过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言、面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类:
1.本地开发应用软件开发的工具有:Visual Basic、Delphi、VC++( C++ Builder)等;数据库开发工具有:Visual Foxpro、Oracle Developer、Power Builder等。
2.跨平台开发开发工具如 Java等。
3.网络开发对客户端开发工具如:Java Script等;对服务器开发工具如:PHP、ASP、JSP、ISAPI、NSAPI、CGI等。以上不同的环境下几种开发工具中 VB法简单并容易理解,界面设计是可设化的,易学、易用。选 VB作为入门的方向对出学者是较为适合的。(但现在已经过时)
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
1、先照书上的题目写,题目的设计是有道理的巩固基础知识。
2、找数学题,写个小程序解决,熟悉算法和基础函数。
3、自己出题目,小一点的,如自编资源管理器、自编写字板之类,练习WINDOWS下的编程。
4、结合身边的事,找个中等课题,或看别人的程序,自已想办法实现。
5.把教材中的例子,自己仿照着写一遍,上机运行,看结果.要知道,任何产品都是有例子的,有机结合或仿照。
6.从自己熟悉的事情入手,如成绩统计,编制一段程序,完成一个功能.然后再完善。
7.要反复破坏代码,从破坏中寻找代码的规律。
编程是要用计算机能够识别的语言让计算机去运行,现在所说的语言多指高级语言。编程时,先用高级语言编出程序,因为计算机不能识别高级语言,机器只认识0和1,所以要再用专门的编译程序将高级语言翻译成计算机可以识别的机器语言。就像你要将你的意愿告诉计算机,你就要有一个翻译,让他把你的意愿翻译给计算机,语言就是具有这个功能的,同样,翻译可以有好多种,现在的计算机语言有好多种,每种语言都有自己的特点,并且随着时代的发展,一些语言已经被淘汰了,一些语言被改进了(如c语言发展了c++,微软将Java弄成了C#),现在比较热门的语言有Java(适用于网络编程,现在很热门,并且与平台无关)、c语言(尽管很老了,可是效率很高,可移植性很好,大学的计算机,非计算机专业的学生几乎都要学习它)、VB(即微软的Visual Basic,由原来的BASIC发展,语法很简单,但是很多高级程序员嘲笑vb为玩具语言,但是美国的一些大学仍然将此语言作为编程的入门课程)、Dlphi等等。
每种语言都有自己的特点,我的感觉是你还是先学习VB吧,我就是从它开始的,如果想以后搞得大一些,c、vc++比较好一些,不仅仅因为效率,还因为平台可移植性好。至于Java或者微软吹嘘的.NET,我的感觉是,他们的功能确实很好,Delphi也很不错的,也有好多的人在学习。但是作为一个中学生,你不可能有太多的时间学这么多多东西。
如果我建议的话,你还是从VB或者c语言(也有些人说c++比较好)开始吧。等你把这些东西学的有点门路了,再接触Delphi Java甚至是微软的.NET的几种语言。
编程是很有意思的事情,祝学习顺利!