Skip to main content

Image Decoder - Grasshopper




 Image Decoder

Details 詳細解說:


// 宣告變數 img, 型態自動依初始值設為字串

// 設定初始值為存放影像編碼
var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woowoowe wrreewrrw";

程式一開始宣告變數 img 存放影像編碼,影像編碼內穿插了 ‘e’ 這個字元符號,這個多餘的字元符號可以是任何沒有使用到的字元都可以替代,例如使用 ‘x’,或是使用兩種以上都可以,不過程式解碼時要記得都要濾掉。


這些多餘的字元符號把原來的圖案弄亂,所以可以讓不知道解碼的人看不出來是什麼圖案。如果我們收到知道如何解碼,可以把 'e' 字元符號去掉(Filter out 'e’),就可以看到原來的圖案了


IMAGE DATA

// 原來要顯示的圖樣 空白字元表示換行
var img = 
    "wvvwvvw wiiwiiw wbbwbbw wggwggw wyywyyw woowoow wrrwrrw"

IMAGE DATA ENCODE

// 影像編碼內穿插了 ‘e’ 這個字元符號,把原來的圖案弄亂
var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woowoowe wrreewrrw"



// 解碼部分,依序判斷陣列中的字元不為’e’ 則畫出編碼內容方塊

for (var letter of img) {
  if (letter !== ‘e’) {
    drawBoxes(letter);
  }
}




// 將變數 img 印出, 

print(img);

因為我們並沒有改變 img 內容,所以 img 內容仍是含有 ’e’ 字元未解碼的狀態 




YOUR CODE

// 宣告變數 img, 型態自動依初始值設為字串
// 設定初始值為存放影像編碼
var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woowoowe wrreewrrw";

// 解碼部分,依序判斷陣列中的字元不為’e’ 則畫出編碼內容方塊

for (var letter of img) {
  if (letter !== ‘e’) {
    drawBoxes(letter);
  }
}

// 將變數 img 印出, 

// 因為我們並沒有改變 img 內容,
// 所以 img 內容仍是含有 ’e’ 字元未解碼的狀態 
print(img);



所以我們要印出來的圖樣應該是這樣的


白紫紫白紫紫白 

白靛靛白靛靛白 
白藍藍白藍藍白 
白綠綠白綠綠白 
白黃黃白黃黃白 
白橙橙白橙橙白 
白紅紅白紅紅白


Reference:

Image Decoder explainer - Puzzle Explainer - Grasshopper Support
https://support.grasshopper.codes/t/image-decoder-explainer/29
When you run the for loop, it ignores all the e letters. So the output ends up being the same as drawBoxes('wvvwvvw wiiwiiw wbbwbbw wggwggw wyywyyw woowoow wrrwrrw').

Comments

Popular posts from this blog

KSB037 Motor Board 馬達板擴充積木

KSB037 Motor Board 馬達板擴充積木 key: makeblock,microbit,motor Description 說明: 使用 KSB037 Motor Board 馬達板擴充積木 https://github.com/edisonchiu/pxt-motor-KSB037 History v0.1 來源版本 https://github.com/lioujj/KSB037 v0.2 修正字串錯誤 Step 步驟: 1. Makeblock -> Advanced -> Add Package 2. 在 Search or enter project URL… 輸入擴充積木網址,      https://github.com/edisonchiu/pxt-motor-KSB037 3. 按下搜尋會出現擴充積木,按下去新增擴充積木 4. 積木區就會出現新的積木可以用了。 KSB037 馬達擴充板 擴充積木測試程式 KSB037_CustomBlock_Test 目的說明: 按下按鈕可以測試馬達和板子是否正常運作 注意事項: 馬達擴充板 外接馬達需要外接電源,且電源開關需要開啟。 馬達擴充板 指撥開關 2,3,4,5 需要在 ON 的狀態。 功能說明: 按 A 左邊馬達往前全速(1023)運轉。 按 B 右邊馬達往前全速(1023)運轉。 按 A+B 兩邊邊馬達同時往前全速(1023)運轉。 以上皆非則馬達停止顯示中心一個點。 micro:bit - KSB037 Motor Simple Test (JavaScript) Source Code 源碼如下:

RF Remote 遙控器

  # RF Remote 遙控器發射端 -------------------------------------------------------- StartUp 當啟動時() sendZeroSet搖桿校正 Radio Group 廣播群組設為 = 1 -------------------------------------------------------- Forever 重複無限次() X1 Y1 = (x,y) buttonProc按鈕程序 -------------------------------------------------------- KEY D sendZeroSet搖桿校正 -------------------------------------------------------- buttonProc 按鈕程序() KEY   1 2 3 45670 -------------------------------------------------------- sendZeroSet 搖桿校正() X0 Y0 = (x,y) -------------------------------------------------------- # RF Car 機器人接收端 # Variables 變數定義 ---------------------------------------- KEY 0=未按下 1=A,2=B,..34567(按鍵) X0,Y0 類比搖桿初始位置值 X,Y 類比搖桿移動位置值 X=X1-X0,Y=Y1=Y0 speed = min(abs(Y)*2,1023) speed_L = speedFitRange(speed+(X*2)) speed_R = speedFitRange(speed-(X*2)) ---------------------------------------- # Status Flag 狀態旗標 flag_set_zero 類比搖桿是否有歸零 flag_update 是否有收到更新值 flag_run 馬達是否啟動 --------------------------------...