使用变量来创建 Sphero 提供的 Hot Potato 游戏。 您将使用伪代码和阅读文档来实现这款经典游戏。 您还将学习技术概念,如循环直到内部的随机性。 完成文本 2 或 3 后,这是一项很棒的活动。
学习成果:
• 我可以练习行业标准,包括:
- 绘制流程图
- 从伪代码创建代码
- 阅读技术文档
• 我可以定义和使用计算机科学基础知识,其中包括
- 定义变量
- 有条件的:if / then / else
- 循环:inifinite,while,for
- 在范围内随机
- 数据类型:整数和浮点数
• 我可以学习和使用 JavaScript 语法,其中包括:
- 初始化变量:var,const,let & ECMAScript 历史
• 我可以使用 JavaScript 来创建一个程序
• 我可以使用 Sphero 执行创建的程序
说明
探索—了解概念
在这个活动中,您将使用 Sphero 创建一个 Hot Potato 游戏,就像在模块 4 中一样。但是这一次,您将使用 JavaScript 而不是 Blocks。
我们先来了解一些背景知识,并学习用于创建此游戏的概念,即循环直到和在范围内随机。
观看下面的视频并尽力回答以下问题:
什么是变量?
什么是运算符?
什么是循环直到陈述?
范围内的随机数是什么意思?
探索—流程图
看看下面的伪代码,并画出游戏的流程图。 这对你有帮助吗?
async function startProgram() {
while (true) {
// create a variable called ‘toss’ & set to zero
// create a variable called ‘expire’ & set it to a random float between 2 and 10
while (toss < expire) {
// while toss is greater than expire
// create a variable for the accelerometer and calculate
// set the main LED to green
if (accelTest > 3) {
// if the accelerometer is greater than 3
// play a ding sound
// set a strobe
// increase the toss by one
}
await delay(0.05); //
}
// play a sad noise
// set the main LED to red
for (var _i1 = 0; _i1 < 5; _i1++) {
// turn on the raw motor
}
// reset the toss to zero
await delay(0.05); //
}
}
将您的流程图的图片或屏幕截图添加到此步骤供老师查看。
技能学习—编程资源
在您了解关于 JavaScript 的更多信息时,利用其中的编程资源非常重要。编程社裙(包括 Sphero)非常支持。很多程序员通过尝试(像你一样)并提出问题来学习。
使用下面的伪代码作为指导,添加缺少的代码。在伪代码中有一些关键字链接可以帮助您查找对于其他一切de 信息,你需要探索Sphero 文档。不要担心查看并尝试一下功能。
提示
当你初始化一个变量时,你需要用 var 关键字来定义它。你也可以使用const(如果它是一个“常量”不变的变量),或者let(如果它在程序运行期间得到新的值)。
有趣的事实:async和await(在 Sphero 的程序中使用)实际上仍然是在未来ECMAScript 版本的草稿上。
为什么有这么多选择?像新词汇被添加到词典一样,编程语言也会被更新。这就是为什么软件开发人员知道如何阅读文档并不断学习是如此重要的原因!
ECMAScript是 JavaScript 语言所基于的规范,它每隔几年发布一个新标准。 ECMAScript 5(ES5)于 2009 年发布,使用“var”。 2015 年发布的 ES6 使用“const”和“let”。
关键词
随机浮点数
加速度计
声音
频闪
原始马达
async function startProgram() {
while (true) {
// create a variable called ‘toss’ & set to zero
// create a variable called ‘expire’ & set it to a random float between 2 and 10
while (toss < expire) {
// while toss is greater than expire
// create a variable for the accelerometer and calculate
// set the main LED to green
if (accelTest > 3) {
// if the accelerometer is greater than 3
// play a ding sound
// set a strobe
// increase the toss by one
}
await delay(0.05); //
}
// play a sad noise
// set the main LED to red
for (var _i1 = 0; _i1 < 5; _i1++) {
// turn on the raw motor
}
// reset the toss to zero
await delay(0.05); //
}
}
挑战—游戏、调试,再次游戏
你的代码在第3步中是如何结束的?
如果程序未按预期工作,请花些时间进行调试。
你结束了代码吗?
不要忘记 ";".
语法是否正确?
数字值是否正确?
每次您进行更改时,请运行该程序。 这将帮助您缩小问题范围。
回顾
通过回答以下问题来反思您通过 Sphero 学到的知识:
你在这个活动中最努力的地方是哪里?
对你来说最简单的部分是什么?
什么是变量?
为什么有必要在复杂的程序中使用变量?
描述该程序中使用的每个不同的循环:
循环一定次数的那个
永远循环的那个
一个循环,直到一个条件评估为 false
领取专属 10元无门槛券
私享最新 技术干货