diff --git a/sugoroku.rb b/sugoroku.rb new file mode 100755 index 0000000..a729558 --- /dev/null +++ b/sugoroku.rb @@ -0,0 +1,150 @@ +#!/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) + + + + + + +