青少年程式設計playgrounds之十三–邏輯運算
與第三關一字之差
地圖
本關練習使用邏輯或
分析一下迴圈
也就是說,byte需要走12步,則完成本關。當前方或者左邊沒有障礙這兩個條件都不滿足時,前進。而任一條件滿足時,則先右轉,然後前進一步。for i in1.
..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教育行業未來將突破千億級的市場規模。於無人機來說,最重要的是它的四個軸,也就是能提供在空中平衡的螺旋槳。每個...
青少年學習程式設計的好處
程式設計?編的是什麼?我可以很負責任的告訴大家,編的是青少兒在學習和生活中遇到的所有問題的處理方法。從青少兒編寫的程式中,可以看出乙個孩子對所遇到問題的思考方式和解決辦法。同時,程式設計可以改善青少兒的思考方式和提高青少兒解決問題的能力。所有人的一生無非就一件事 解決問題。問題是永遠存在且不斷變化的...