gpt4 book ai didi

ruby - Ruby 数组中的基本方向

转载 作者:数据小太阳 更新时间:2023-10-29 08:26:37 26 4
gpt4 key购买 nike

我正在尝试创建一个程序来跟踪一个人向左转和向右转时的方位(例如,如果他们面向北方并向左转,他们将面向北方。)我将 编写为一个数组以两种方式工作。到目前为止,这是我的代码:

puts "What is your initial bearing?"
bearing = gets.chomp

puts "And what turns do you want to make?"
turn_list = gets.chomp

cardinal_directions = ["N", "E", "S", "W"]

position = cardinal_directions.index(bearing)
turn_list.each |direction|
case "L"
position += 1
case "R"
position -= 1
end

但是有一个明显的问题。说我这个人面朝西,想右转。我怎样才能告诉它从索引 3 到索引 0?或者,如果他们在北方并想向左转?

请原谅蹩脚的代码和格式,我是新手。非常感谢您的帮助!

最佳答案

因为您有 4 个可能的选项,所以当您的变量除以 4 时,您可以使用模运算(即求余数):

case turn_list
when "R"
position = (position + 1)%4
when "L"
position = (position - 1)%4
end

% 符号是模运算符,它会在两个数字相除时给出余数。那应该给你你想要的答案。例如,如果您在位置 3(西)并右转,则加 1 再除以 4 得到余数,即 0(北)。

(我编辑了案例“R”和“L”,因为我认为您在问题中将它们标记为倒着。)

关于ruby - Ruby 数组中的基本方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com