我正在编写一个程序来玩二十一点,其中一个函数会计算得分。它接收一个输入,它是卡的结构数组,其中一个属性是值(对于ace,值为11)。我的函数应该确定值的总和是否超过21,如果1张牌是ace,那么ace的值会变为1.有人能帮我解决这个问题吗?
for index=1:length(input)
if(input(input).value == 11)
input(index).value = 1;
end;
end;
答案 0 :(得分:0)
您实际上并没有在原始代码段中对卡片进行求和。你似乎在input(input)
中也有拼写错误,我认为这应该是input(index)
。如果你想像你一样使用for循环,你会做这样的事情:
total = 0;
for index=1:length(input)
if(input(index).value == 11)
input(index).value = 1;
end;
total = total + input(index);
end;
更多MATLAB的做法是使用sum
内置命令来避免循环。