scratch画三角函数(43.Scratch青少年编程实例教程)

前言

大家应该都玩过五子棋。五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。通常双方分别使用黑白两色的棋子,下在棋盘横线与竖线的交叉点上,先形成5子连线者获胜。所以,我更喜欢形象地叫它五子连珠。

下面是我从网络找到的相关资料,我们在编写程序前,必须要了解这些相关知识。

五子棋的棋盘由横纵各15条等距离,垂直交叉的平行线构成,在棋盘上,横纵线交叉形成了225个交叉点为对弈时的落子点。邻近两个交叉点的距离要略大于棋子的直径。

以对局开始时的黑方为准,棋盘上的纵行线从近到远用阿拉伯数字1-15标记,横行线从左到右用英文字母A-O按字母顺序标记。由于每个英文字母都对应着一条纵线,每个阿拉伯数字都对应着一条横线,所以,棋盘上的每一个交叉点都可用英文字母和阿拉伯数字的组合来标示出来。在标示各点时,要将英文字母放在前边,阿拉伯数字放在后边。如“L6”“F4”等。

在棋盘上有5个比较特殊的交叉点,用实心小圆点标示出来,这5个点称为“星”。中间的星也称天元,位置在H8,表示棋盘的正中心。其他4个星,也叫小星,分别在D12、L12、D4、L4位置。星在棋盘上起标示位置的作用,利于在行棋、复盘、记录等时,更清晰、迅速地找到所需位置。

编程前的思考

本节Scratch编程课程,我们将使用画笔工具来绘制一个棋盘。你也许会向我建议:为什么不直接找个绘制好的棋盘图片,作为舞台背景,多省事呀。但是,如果真这么做,后续编程可能会变得复杂起来。

实际上,Scratch这款强大的工具,给我们提供了“画笔”工具,而五子连珠棋盘又是有规律可循的,画一个棋盘还是绰绰有余的。

接下来讲下我的思路:我们都知道,舞台背景是360x480,所以我们的正方形棋盘的边长必须小于360。每行都有14个格子,也就是每条边被分成了14份。如果棋盘直接和舞台边缘对齐,这么算的话,每个小格子边长是360➗14=25.714286。但是,棋盘的最外边也可能落子,必须把棋子的大小计算进去。所以,我们把棋盘的最上面和最下面也增加一个小格子的长度,这么计算的话,每个小格子边长是360➗16=22.5

经过上述分析,我们得出棋盘的每一小格边长是22.5,棋盘的边长是22.5x14=315 。

但是,为了后续的计算方便,我们直接把每个小格子的边长凑整为23。棋子的宽度应当小于等于小格子的边长,棋子的宽度可以设计为20。 棋盘的边长就是23x14=322,上下两边多出(360-322)➗2 = 19 ,已经足够放置棋子了,因为棋子最多只会在边上多出半个棋子,半个棋子宽度是10,10<19。

编写代码

首先要把画笔工具从Scratch的扩展库中,添加进来。

我的代码如下图所示:

  1. 首先准备一张白纸
  2. 拿来一只黑色的笔
  3. 这只笔粗细规格为1
  4. 把笔移动到白纸的左上角。322➗2=161,所以左上角坐标是x值-161,y值161 。
  5. 从左往右方向准备画线。
  6. 进入重复执行15次:第一次执行:(1)把笔接触白纸,向右画线322(棋盘的边长是322,这时笔运行到了右上角)。(2)把笔离开白纸。(3)向下移动23,(每一小格的边长是23,也就是移到了准备画的第二条线的最右边)。(4)从右向左方向准备画线。第二次执行:(1)把笔接触白纸,向左画线322(棋盘的边长是322,这时笔运行到了画好的第二条横线的最左边)。(2)把笔离开白纸。(3)向下移动23,(每一小格的边长是23,也就是移到了准备画的第三条横线的最左边)。(4)从左向右方向准备画线。第三次执行......最后,将15条横线,从上往下依次画完。
  7. 抬笔后,把笔移动到左上角,准备向下画线。
  8. 进入重复执行15次:这次重复执行,和上面是一个原理,只不过是从左往右,依次画15条竖线。这里不再详细描述执行过程。

运行程序后,我们能清楚地看到整个绘画过程。一张规则的棋盘被Scratch软件很轻松地画了出来。

scratch画三角函数(43.Scratch青少年编程实例教程)(1)

图1

视频效果

最后,我将本节Scratch编程的运行演示录制了视频,大家点击下方的“三角形”播放按钮观看。


本次Scratch编程课程就讲到这里,后续课程见!

本文所有图片、视频及文字内容,均为原创,转载时请保留版权信息。

查看更多Scratch编程教程,请点击下一行的了解更多

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页