設問
図に示すような経路に沿ってサイコロの出た目の数に従って進むとする.サイコ ロの目の長さだけ,すなわち,1が出たら1m進むとする.そのとき,経路に沿っ て進んだ距離とスタート地点からの直線距離を以下のように表示するスクリプト を作成せよ.ゴールにはサイコロの目がちょうどでなくても上がれるものとし, ゴールしたときの距離はゴール地点のものとする.
サイコロの目: 2,進んだ距離: 2 m,直線距離: 2.00 m サイコロの目: 1,進んだ距離: 3 m,直線距離: 3.00 m サイコロの目: 5,進んだ距離: 8 m,直線距離: 5.66 m サイコロの目: 3,進んだ距離: 11 m,直線距離: 5.00 m サイコロの目: 1,進んだ距離: 12 m,直線距離: 4.47 m サイコロの目: 6,進んだ距離: 18 m,直線距離: 5.66 m サイコロの目: 1,進んだ距離: 19 m,直線距離: 8.06 m サイコロの目: 6,進んだ距離: 25 m,直線距離: 9.00 m サイコロの目: 3,ゴール! |
d1 = 0 d2 = 0 while d1 dice = rand(6) + 1 d1 += dice case d1 when 1..4 d2 = d1 when 4..8 d2 = sqrt(4 * 4 + (d1 - 4) * (d1 - 4)) when 8..10 d2 = sqrt((4 + (d1 - 8)) * (4 + (d1 - 8)) + 4 * 4) when 10..18 d2 = sqrt(6 * 6 + (14 - d1) * (14 - d1)) when 18..20 d2 = sqrt((6 + (d1 - 18)) * (6 + (d1 - 18)) + 4 * 4) when 20..24 d2 = sqrt(8 * 8 + (24 - d1) * (24 - d1)) when 25 d2 = 9 else break end printf "サイコロの目:%2d,進んだ距離:%3d m,直線距離:%6.2f m\n", dice, d1, d2 end printf "サイコロの目:%2d,ゴール!\n", dice |
設問
図に示すような経路に沿ってサイコロの出た目の数に従って進むとする.サイコ ロの目の長さだけ,すなわち,1が出たら1m進むとする.そのとき,経路に沿っ て進んだ距離とスタート地点からの直線距離を以下のように表示するスクリプト を作成せよ.ゴールにはサイコロの目がちょうどでなくても上がれるものとし, ゴールしたときの距離はゴール地点のものとする.
サイコロの目: 2,進んだ距離: 2 m,直線距離: 2.00 m サイコロの目: 4,進んだ距離: 6 m,直線距離: 4.47 m サイコロの目: 6,進んだ距離: 12 m,直線距離: 4.00 m サイコロの目: 6,進んだ距離: 18 m,直線距離: 7.21 m サイコロの目: 3,進んだ距離: 21 m,直線距離: 6.08 m サイコロの目: 4,進んだ距離: 25 m,直線距離: 9.00 m サイコロの目: 1,ゴール! |
include Math d1 = 0 d2 = 0 while d1 dice = rand(6) + 1 d1 += dice case d1 when 1,2 d2 = d1 when 2..6 d2 = sqrt(2 * 2 + (d1 - 2) * (d1 - 2)) when 6..8 d2 = sqrt((2 + (d1 - 6)) * (2 + (d1 - 6)) + 4 * 4) when 8..16 d2 = sqrt(4 * 4 + (12 - d1) * (12 - d1)) when 16..18 d2 = sqrt((4 + (d1 - 16)) * (4 + (d1 - 16)) + 4 * 4) when 18..22 d2 = sqrt(6 * 6 + (22 - d1) * (22 - d1)) when 22..25 d2 = 6 + (d1 - 22) else break end printf "サイコロの目:%2d,進んだ距離:%3d m,直線距離:%6.2f m\n", dice, d1, d2 end printf "サイコロの目:%2d,ゴール!\n", dice |
Back |