2016-02-29 52 views
2

我希望每隻烏龜都有它以前的顏色列表。然後我希望將列表縮減到最後兩個輸入並檢查兩個輸入是否相等。減少列表大小並檢查最後兩個輸入是否相等

在旅途中部分我已經插入:

set colormemory lput color colormemory 

我希望我的列表,只有[X,Y],然後檢查是否X = Y。

我該如何繼續?

謝謝!

回答

1

本質上講,你需要檢查如果顏色存儲器在列表中至少有2個元素,那麼你就通過最後和丁最後一個功能提取最後兩個元素。 然後通過從子列表中獲取第一個和第二個項目來檢查它們是否相等。

如果列表是[1 2 3],但最後會給你[1〜2]的名單和最後的,但,最後名單會給你2 ...我一句倒數第二個元素和最後一個元素一起得到你的最後兩個元素

ask turtles 
[ 
    if length colormemory > 1 [ 
     let last-two sentence (last (but-last colormemory)) (last colormemory) 
     if (item 0 last-two) = (item 1 last-two) [ show "they're equal"] 
    ] 

] 
+0

非常感謝你的回覆。 我對你的代碼有幾個問題。 Q1 ---- 如何縮短內存?現在當我要求一隻烏龜向我展示她的記憶時,我得到: '請問龜11 [show colormemory] ​​ (龜11):[11 55 55 55 55 55 55 55 55 55 55 55 55]' 可以嗎有可能將內存減少到內存中的最後4個(按時間順序)輸入?例如'[55 55 55 55]' 非常感謝。 – Misclogo

+0

您可能想使用子列表:set colormemory sublist colormemory((length colormemory) - 5)((length colormemory) - 1)。你需要檢查列表的長度是否有至少4個元素。 – mattsap

+0

非常感謝您的回覆。我已經實現了代碼,但是它將列表縮短爲內存中的前4個元素,這與您之前的消息的代碼相沖突。當我:'問烏龜x [顯示顏色內存](烏龜11):[11 22 33 44 55 66 77 88]'我得到[11 22 33 44],而我需要最後四項[55 66 77 88]。我嘗試顛倒名單,但我不確定這是否是解決問題的最佳方式。 – Misclogo