#!/usr/bin/env ruby # -*- coding: utf-8 -*- def cyuusen(n) srand() m = rand(n) return m end def kakunin(x,y) # 青すぎたwwデバッグなう 無限混乱区域 if x == "\n" return "ng(からうち)" end if /[0-9]+/ !~ x return "ng(やま)" end if /\d+/ =~ x # これが効きすぎる、、、 return "ng(d)" end if x.to_i == 0 && x != "0" # この発想は賢いな、、 return "ng(かつどん)" else x = x.to_i if x >= 0 && x <= y return "ok" elsif x == 10 return 10 else return "ng(いままでの)" end end end if false puts"ゆびすま" #アップデートもがんばる(有言実行したい。。) sleep(0.5) #動くけどまだ変わってないよ puts" 説明" puts"数を言って、親指を立てて、" puts"立てた親指の数と言った数が2回同じだったら勝つやつです。" puts"人数は自分を入れて、4人までで選べます。" puts"一人はあなたです。他のプレイヤーは自動で行動します。" puts"誰か1人が勝った時点でゲームを終了します。" puts"行動は数字で決定します。行動可能なときに選択肢を提示します。" puts"行動可能なときに、数字以外を入力した場合は0とみなします。" puts"なお、行動可能なとき、「10」と入力するとゲームをやめることができます。" puts"このゲームはenterで始めます。説明を読み終えたらenterを押してください。" gets #if false # 謎??????if???もっといい方法ありそう while check != "ok" print"人数を決めてください(2〜4人):" ninzuu = gets check = kakunin(ninnzuu,4) if ninzuu == 0 || 1 check = "ng" end end #end ninzuu = ninzuu.to_i namae = [] if ninzuu <= 1 end namae = ["あなた","Aさん","Bさん","Cさん"] te_a = 2 #変数 プレイヤー系 te_b = 2 te_c = 2 te_you = 2 yubi_a = 0 yubi_b = 0 yubi_c = 0 yubi_you = 0 yubi_max = 8 jyunban = 0 #変数 システム系 kaisu = 1 check = 0 n = 0 while true printf(" %d周目\n",kaisu) sleep (0.5) printf("%sが数を言う番です\n",namae[jyunban]) puts "いっせーの!" if jyunban == 0 while check != "ok" && check != 10 #あなたの番 printf("言う数を入力してください(0〜%dまで):",yubi_max) iu = gets check = kakunin(iu,yubi_max) #答えになってないと無限ループ end iu = iu.to_i if check == 10 break end else #あなた以外の番(ランダムiu) iu = cyuusen(yubi_max +1) end check = 0 while check != "ok" && check != 10 printf("出す数を入力してください(0〜%dまで):",te_you) yubi_you = gets #kakuninが使うため実は文字列 check =kakunin(yubi_you,te_you) #入力なしに対応!! end yubi_you = yubi_you.to_i #ここで数字になる(言う数〜も同様) if check == 10 break end printf("%d!\n",iu) yubi_a = cyuusen(te_a +1) yubi_b = cyuusen(te_b +1) yubi_c = cyuusen(te_c +1) yubi = [yubi_a,yubi_b,yubi_c,yubi_you] puts" 指の数" while n < 4 printf("%s:%d ",namae[n],yubi[n]) n += 1 end n = 0 kei = yubi_a + yubi_b + yubi_c + yubi_you printf(" 合計:%d\n",kei) sleep(2) if kei == iu #誰かが当てたとき printf("%sが数を当てました!\n",namae[jyunban]) yubi_max -= 1 if jyunban == 0 te_a -= 1 elsif jyunban == 1 te_b -= 1 elsif jyunban == 2 te_c -= 1 elsif jyunban == 3 te_you -= 1 end sleep(0.5) puts" 手の数" te = [te_a,te_b,te_c,te_you] while n < 4 printf("%s:%d ",namae[n],te[n]) n += 1 sleep(1) end print"\n" if te_a == 0 || te_b == 0 || te_c == 0 || te_you == 0 #誰かのteが0 printf("%sの勝ちです!\n",namae[jyunban]) sleep(0.5) break end end jyunban += 1 if jyunban == 4 jyunban = 0 kaisu += 1 end n = 0 check = 0 end puts"それではゲームを終了します。また遊ぼうね!" end nanka = gets check = kakunin(nanka,4) p check p nanka.to_i