Karel - Unit 8 Lesson 5

最近开始玩 Karel game,我觉得是一个训练逻辑思考不错的游戏,而且一但陷入,就不知不觉的一直解下去XD!

Karel简介

Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming. Pattis used the language in his courses at Stanford University, California.
http://img2.58codes.com/2024/20145746JsM8zcBPTf.png
(From Wikipedia)
Karel Reader
Learn to Karel: Start Game

熟悉一下语法后,一路过关斩将到 Unit 8,Unit 8 Lesson 5 我真的卡蛮久的,
题目如下:
必须如同右下角的目标,所有点点都要贴上菱形贴纸,且Karel机器人要在右上角,且是面向右边的!
http://img2.58codes.com/2024/20145746IgaMyW6JbF.png

以下是我的解法:

//Make Karel fill the world//with beepersfunction main() {   //your code here   while(leftIsClear()){      putBeeperLine();      turnBack();      }   putBeeperLine();}function putBeeperLine(){   putBeeper();   while(frontIsClear()) {      move();      putBeeper();   }}function turnBack(){   turnAround();   while(frontIsClear()){      move();      }   turnRight();   move();   turnRight();}

他预设写好一个function putBeeperLine(),把第一排每个点点都贴上菱形贴纸,接下来就是我得将剩余的每一排都像第一排一样贴上贴纸,我的想法是,让机器人回到起始位置后,往上走一格,然后重複第一个function,就完成了!
那该怎么做呢?

step1. 让机器人到下一行的左边
我新增一个function turnBack(),叫他先转身(turnAround),然后用while的指令,让他可以重複执行,下move的指令回到起点,这时机器人是面向左边的,所以叫他右转,并往上一格,到第二行,然后再右转,面向右边后,再执行第一行的function,这样第二排就完成了!

step2. 让机器人走到最后一格
现在第一排第二排都完成了,但是要怎么让他重複执行到最后一格呢?
就要回到function main(),一样用while的指令重複执行程式,
一组
putBeeperLine()
function turnBack()
让他重複,他会到前一行,然后后面再加上一组putBeeperLine(),就完成拉~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章