作为一名准魔术师,Elyse 需要练一些基本功。她有一叠想要摆弄的纸牌。
为了让事情简单一些,她只用 1 到 10 这些牌,这样她的牌堆就可以用一个由数字组成的内表来表示。某张牌的位置对应内表的行。也就是说,第 1 行指第一张牌,第 2 行指第二张牌,依此类推。
要取一张牌,就返回给定牌堆中下标为position的那张牌。
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
position = 3 ). " card = 4
施展一点手法,把下标为position的牌换成提供的替换牌。返回调整后的牌堆。
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(new_Stack) = set_Item( stack = stack
position = 3
replacement = 6 ).
" new_Stack = 1, 2, 6, 1
在牌堆顶部插入一张新牌,让一张牌出现。返回调整后的牌堆。
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Top( stack = stack
new_Card = 8 ).
" new_Stack = 5, 9, 7, 1, 8
把牌堆中指定position处的牌移除,让一张牌消失。返回调整后的牌堆。
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack = stack
position = 3 ).
" new_Stack = 3, 2, 4, 8
移除牌堆顶部的牌,让一张牌消失。返回调整后的牌堆。
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 3, 2, 6, 4
在牌堆底部插入一张新牌,让一张牌出现。返回调整后的牌堆。
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Bottom( stack = stack
new_Card = 8 ).
" new_Stack = 8, 5, 9, 7, 1
移除牌堆底部的牌,让一张牌消失。返回调整后的牌堆。
data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 5, 9, 7, 1
返回牌堆的大小(行数)。
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).
" size_of_Stack = 5