Newer
Older
Ruby / sugoroku.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

me = 0
def sugoroku(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w)
  while m < a
    kaisuu += 1
    printf("%d回目\n", kaisuu)
    sleep(2)
    print("エンターキーを押して、サイコロを振ってね。")
    gets
    print("サイコロ:")
    sleep(3)
    saikoro = rand(6) + 1
    printf("%d\n", saikoro)
    sleep(0.4)
    while saikoro > 0
      me += 1
      saikoro -= 1
      sleep(0.6)
      printf("%d\n", me)
    end

    sleep(1)

    if me == b || me == c || me == d || me == e || me == f || me == g || me == h || me == i || me == j || me == k || me == l
      puts("ギミック")
      sleep(2)
    end
  
    if me == b
      printf("%d進む\n", m)
      me += m
    elsif me == c
      printf("%d戻る\n", n)
      me -= n
    elsif me == d
      printf("%d戻る\n", o)
      me -= o
    elsif me == e
      printf("%d戻る\n", p)
      me -= p
    elsif me == f
      printf("%d進む\n", q)
      me += q
    elsif me == g
      printf("%d進む\n", r)
      me +=r
    elsif me == h
      printf("%d戻る\n", s)
      me -= s
    elsif me == i
      printf("%d進む\n", t)
      me += t
    elsif me == j
      printf("%d戻る\n", u)
      me -= u
    elsif me == k
      printf("%d進む\n", v)
      me += v
    elsif me == l
      printf("%d戻る\n", w)
      me -= w
    end

    sleep(1)
    printf("マス目は%dだよ!\n", me)
    sleep(2)
    if 30 >= a
      me = a
      puts("ストップ!")
      puts("ここから先は、2つの道があるよ!")
      puts("サイコロを振って1,3,5が出たら短いが危険な道、2,4,6が出たら長いが安全な道だよ!")
      print("エンターキーを押して、サイコロを振ってね。")
      gets
      print("サイコロ:")
      sleep(3)
      saikoro = rand(6) + 1
      printf("%d\n", saikoro)
      sleep(1)
      if saikoro % 2 == 1
        puts("短いが危険な道を進むよ!")
        sentaku = 1
      elsif saikoro % 2 == 0
        puts("長いが安全な道を進むよ!")
        sentaku = 2
      end
    end
  end
end

puts("すごろくゲームスタート")
while true
  if me <= 30
    sugoroku(30, 2, 5, 7, 8, 10, 13, 16, 17, 19, 22, 25, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2)
    if sentaku == 1
      sugoroku(10, 0, 32, 34, 36, 0, 0, 38, 0, 40, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 40, 0, 0)
    elsif sentaku == 2 
      sugoroku(20, 42, 0, 0, 0, 47, 52, 0, 57, 0, 0, 0, 4, 0, 0, 0, 4, 4, 0, 10, 0, 0, 0)
    end

  elsif me >= 60
    sugoroku(30, 62, 65, 67, 68, 70, 73, 76, 80, 84, 86, 89, 2, 2, 3, 7, 4, 4, 2, 1, 84, 1, 89)
  end
end

printf("%d回でゴールしたよ!!\n", kaisuu)