情報科学概論(再履修)
Rクラス 小テスト 2004.12.3

Back

以下の設問の解答は所定の解答用紙に記入 して添付書類として提出して下さい.その際に,ファイル名 を必ず自分にあったものに変更することと学生番号と氏名を記入すること を忘れないようにして下さい.


先週と同じような距離の問題を考える.経路は今回は図1に示すようなものへと 変更する.直線距離を求めるスクリプトを以下の指示に従って作成せよ.

図1 経路図


解答例

include Math

d = 0

for i in 0..6
  dice = rand(6) + 1
  d += dice
  
  case d
  when 0..8
    r = d
  when 8..16
    r = sqrt(8*8 + (d-8)*(d-8))
  when 16..22
    r = sqrt(8*8 + (8-(d-16))*(8-(d-16)))
  when 22..28
    r = sqrt(2*2 + (8-(d-22))*(8-(d-22)))
  when 28..33
    r = sqrt(2*2 + (2+(d-28))*(2+(d-28)))
  when 33..38
    r = sqrt(7*7 + (2+(d-33))*(2+(d-33)))
  when 38..41
    r = sqrt(7*7 + (7-(d-38))*(7-(d-38)))
  else
    r = sqrt(4*4 + (7-(d-41))*(7-(d-41)))
  end

  printf "サイコロの目: %2d\n", dice
  printf "進んだ距離:   %2d\n", d
  printf "直線距離:%7.2f\n\n", r
end


Back