iT邦幫忙

0

Karel - Unit 8 Lesson 5

  • 分享至 

  • xImage
  •  

最近開始玩 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.
https://ithelp.ithome.com.tw/upload/images/20240201/20145746JsM8zcBPTf.png
(From Wikipedia)
Karel Reader
Learn to Karel: Start Game

熟悉一下語法後,一路過關斬將到 Unit 8,Unit 8 Lesson 5 我真的卡蠻久的,
題目如下:
必須如同右下角的目標,所有點點都要貼上菱形貼紙,且Karel機器人要在右上角,且是面向右邊的!
https://ithelp.ithome.com.tw/upload/images/20240201/20145746IgaMyW6JbF.png

以下是我的解法:

//Make Karel fill the world
//with beepers
function 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(),就完成拉~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言