蛇和梯子 - 编码蛇和梯子的跳跃

时间:2017-12-05 16:45:03

标签: matlab

我想制作一个简单的“蛇与梯子”游戏来完成动作,这样如果我降落在一个梯子上,它将被表示为一个阵列 Ladder = [3 5 11 20];,然后我希望我的Position增加LadderGain = [18 3 15 9];,反之亦然Snakes

我的想法是

if Position == Ladder
Position = Position + LadderGain;
end

认为它落地的指数会延续到LadderGain。这没用。我想知道如何在没有过多if语句的情况下使这个操作工作。

   if Ladder(Ladder == Position) 
       Position = Position + LadderGain(find(Ladder == Position,1));
   end

这是我提出的解决方案。

1 个答案:

答案 0 :(得分:1)

我会这样接近:

Ladder = [3 5 11 20];       % Ladder positions.
LadderGain = [18 3 15 9];   % Ladder gains.

while true % Loop.
    Position = input('Enter position: ');       % Request user input.

    if any(Position == Ladder)                  % Check if Position matches any of the Ladder positions.
        idx = find(Position == Ladder);         % Find the index of the matching case.
        Position = Position + LadderGain(idx);  % Add the corresponding gain to the position.
    end

    fprintf('Position: %d\n', Position);    % Display new position.
end

测试案例1:玩家不会降落在梯子上。

Enter position: 0
Position: 0

测试案例2:玩家落在梯子上。

Enter position: 3
Position: 21