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

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, x)
  if a == 30
    me = 0
    kaisuu = 1
  elsif a == 40
    me = 30
  elsif a == 60
    me = 40
  elsif a == 90
    me = 60
  end
  
  while me < a
    srand()
    printf("%d回目\n", kaisuu)
    sleep(2)
    print("エンターキーを押して、サイコロを振ってね。")
    gets
    print("サイコロ:")
    sleep(3)
    saikoro = rand(6) + 1
    printf("%d\n", saikoro)
    kaisuu += 1
    sleep(0.4)
    while saikoro > 0
      me += 1
      saikoro -= 1
      sleep(0.6)
      printf("%d\n", me)
    end

    sleep(1)

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

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

puts("すごろくスタート")
while true
  me = 0
  sentaku = 0
  puts("hahahaha")
  if me <= 30
    sugoroku(30, 2, 1, 7, 1, 12, 1, 19, 2, 26, 2, 28, 2, 5, 1, 9, 1, 15, 1, 22, 2, 25, 2, 0)
    me = 30
    sleep(3)
    break
    if sentaku == 1
      puts sentaku
      me = 30
      sugoroku(40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 34, 1, 36, 1, 38, 1, 40, 1, 0)
      break
    elsif sentaku == 2
      puts sentaku
      me = 40
      sugoroku(60, 42, 2, 46, 2, 50, 2, 54, 2, 55, 2, 58, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
      break
    end
  end

  if me >= 60
    me = 60
    sugoroku(100, 62, 2, 67, 3, 73, 2, 81, 4, 88, 6, 97, 1, 66, 2, 74, 3, 87, 4, 90, 2, 96, 6, 99)
    break
  end
end

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