#!/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])