MATLAB结构数组二十一点

时间:2015-10-23 04:46:08

标签: matlab structure

我正在编写一个程序来玩二十一点,其中一个函数会计算得分。它接收一个输入,它是卡的结构数组,其中一个属性是值(对于ace,值为11)。我的函数应该确定值的总和是否超过21,如果1张牌是ace,那么ace的值会变为1.有人能帮我解决这个问题吗?

for index=1:length(input)
    if(input(input).value == 11)
        input(index).value = 1;
    end;
end;

1 个答案:

答案 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内置命令来避免循环。