Newer
Older
Ruby / sugo2.rb
@MIZUNO Manaka MIZUNO Manaka on 16 Aug 2022 1 KB 2022-08-16 22:46:21
#!/usr/bin/env ruby
# coding: utf-8

# 配列をシンプルに使う。
# マス目とそこに止まったらいくつ進むかを配列要素に書くだけ

# ベースとなるマス目: 長さ10
masu	= [0, 1, 2, 0, 0, -2, 0, 2, 0, 0]

# 分岐A: 着実 長さ10
a	= [0, 0, 0, 1, -2, 0, 0, 0, 0, 0]
# 分岐B: 勝負 長さ10
b	= [2, 3, 2, 1, -2, 0, 0, 0, -99, 0]
# [現在位置, 回数]
status	= [0, 0]

def sugoroku(me, kai, course)
  p course
  while me < course.length
    kai += 1
    printf("%d回目 @ %dマス目\nEnterで進む。", kai, me)
    gets
    saikoro = rand(6)+1
    printf("%dが出た\n", saikoro)
    me += saikoro
    if me >= course.length
      puts "ゴール超えたのでストップ"
      me = course.length - 1
      break
    end
    p course[me]
    if course[me] != 0
      if course[me] > 0
        printf("%dマス進みます\n", course[me])
      else
        printf("%dマス戻ります\n", -course[me])
      end
      me += course[me]
    end
  end
  return [me, kai]
end

status = sugoroku(status[0], status[1], masu)
print("ルートを変えます。偶数はA、奇数はBコース! [Enter]")
gets
sai = rand(6)+1
printf("%d が出ました。\n", sai)
if sai%2 == 0
  masu = masu+a		# 基本コースの後ろにAを足す
  print("Aコース")
else
  masu = masu+b		# 基本コースの後ろにBを足す
  print("Bコース")
end
puts("に進みます。")
status = sugoroku(status[0], status[1], masu)
printf("%d回でゴールしました。\n", status[1])