青少年程式設計Playgrounds之十三 邏輯運算

2021-10-24 06:20:42 字數 1806 閱讀 3093

青少年程式設計playgrounds之十三–邏輯運算

與第三關一字之差

地圖

本關練習使用邏輯

分析一下迴圈

for i in1.

..12

也就是說,byte需要走12步,則完成本關。當前方或者左邊沒有障礙這兩個條件都不滿足時,前進。而任一條件滿足時,則先右轉,然後前進一步。

for i in1.

..12moveforward()

}

再加上寶石檢查功能,即可

for i in1.

..12moveforward()

if isongem

}

該檢查功能,可以針對寶石出現在路徑中的任一位置,如果僅是針對本關地圖,可以直接放在迴圈外,一句兩句**的差異,相較於以我**水平編寫的冗餘**,這都不是事兒。

放在循壞外**如下:

地圖

如果單純完成本關完全沒有難度,關鍵是怎麼找到最優的方式解決本關問題。依然拋磚引玉中…

首先根據主程式給定迴圈,那麼byte需要在8步內解決問題。地圖中有三種情況

未點亮開關–直接點亮,然後左轉

寶石–蒐集

寶石+未點亮開關–右邊通路中有寶石需要蒐集

三種情況是互斥的,所以可以使用條件if else if

先完成兩個簡單的條件**

if isonclosedswitch

if isongem

**編寫介面新增的函式沒法呼叫,所以所有東西直接扔到主程式中了。

然後關鍵點,解決同時出現寶石和開關時情況,首先,當byte走到此處時,需要右轉,然後4步回到原位。

if isongem && isonclosedswitch

moveforward()

if isongem

}turnright()

}

先右轉,然後迴圈走四步,每次檢查是否有寶石,迴圈結束後,回到原來位置,右轉,面對下一步。

將所有主路的開關和寶石處理留給主程式

所以主程式變為

for i in1.

..8moveforward()

if isongem

}turnright()

}//當僅遇到未切換(點亮)開關時轉向

else

if isonclosedswitch

//遇到寶石,蒐集

if isongem

// 遇到未點亮開關,點亮

青少年程式設計競賽彙總

目前國家的政策在向多元化評價方式走,國家可不希望只有數學人才。所以越來越多的地方開始對奧數競賽進行打壓。同時舉辦更多有意思的比賽來逐漸取代奧數的選拔作用。其中兒童程式設計就是大熱!我國也擁有各種各樣的程式設計比賽,以供人才選拔,在義務教育階段最具影響力的 國字型大小比賽 莫過於5個。一 全國青少年探...

青少年趣味程式設計社群

近年來,在政策推動和市場需求增長下,steam教育與科技的結合應用正如火如荼地進行,無論是新型的科技元件 教育機械人或3d列印技術等,格物斯坦表示 無人機同樣也是。根據相關機構 國內steam教育行業未來將突破千億級的市場規模。於無人機來說,最重要的是它的四個軸,也就是能提供在空中平衡的螺旋槳。每個...

青少年學習程式設計的好處

程式設計?編的是什麼?我可以很負責任的告訴大家,編的是青少兒在學習和生活中遇到的所有問題的處理方法。從青少兒編寫的程式中,可以看出乙個孩子對所遇到問題的思考方式和解決辦法。同時,程式設計可以改善青少兒的思考方式和提高青少兒解決問題的能力。所有人的一生無非就一件事 解決問題。問題是永遠存在且不斷變化的...