Newer
Older
Ruby / tyuukanhappyou.rb
@MIZUNO Manaka MIZUNO Manaka on 17 Sep 2022 25 KB 2022-09-17 15:49:27
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

puroguramu = %w(すごろく 買い物 計算 トランプ)
puts puroguramu
while true
  print("やりたいものを選ぼう!!\n選択:")
  sentaku = gets.chomp
  if sentaku == puroguramu[0] || sentaku == puroguramu[1] || sentaku == puroguramu[2] || sentaku == puroguramu[3]
    printf("%sのプログラムをするよ!!\n", sentaku)
    if sentaku == "すごろく"
      masume = [0, 0, 1, 0, 0, -1, 0, 1, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0, -2, 0, 0, -2, 1, 0, 2, 0]
      a = [0, 0, 0, 0, 0, 0, -5, -4, -5, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
      b = [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 2, 0, 0] 
      c = [0, 0, 2, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 2, -3, 0, 2, 0, 0, 0, -3, 4, 0, -4, 0, 0, 0, -4, 6, 0, -2, 0, 0, -2, 0, 0, -4, 1, 0, -89]
      x = [0, 0]

      def sugoroku(me, kaisuu, masume)
        while me < masume.length
          sleep(2)
          kaisuu += 1
          srand()
          printf("%d回目\n", kaisuu)
          sleep(2)
          print("エンターキーを押して、サイコロを振ってね。")
          gets
          print("サイコロ:")
          sleep(3) 
          saikoro = rand(6) + 1
          puts saikoro
          sleep(1)
          while saikoro > 0
            me += 1
            saikoro -= 1
            printf("%d\n", me)
            sleep(0.6)
          end
          if me >= masume.length
            break
          end
          if masume[me] != 0
            puts("ギミック")
            sleep(2)
            if masume[me] > 0
              printf("%dマス進む\n", masume[me])
            elsif masume[me] < 0 && masume[me] != -89
              printf("%dマス戻る\n", -masume[me])
            elsif masume[me] == -89
              puts("スタートに戻る")
            end
            me += masume[me]
          end
          sleep(1)
          printf("マス目は%dだよ!\n", me)
          sleep(2)
        end
        return [me, kaisuu]
      end

      puts("すごろくスタート")
      x = sugoroku(x[0], x[1], masume)
      puts("ストップ!\nここから先は、2つの道があるよ!\nサイコロを振って1,3,5が出たら短いが危険な道、2,4,6が出たら長いが安全な道だよ!")
      sleep(10)
      print("エンターキーを押して、サイコロを振ってね。")
      gets
      print("サイコロ:")
      sleep(3)
      saikoro = rand(6) + 1
      puts saikoro
      sleep(1)
      if saikoro % 2 == 1
        puts("短いが危険な道を進むよ!")
        masume += a
      elsif saikoro % 2 == 0
        puts("長いが安全な道を進むよ!")
        masume += b
      end
      x = sugoroku(x[0], x[1], masume)
      masume += c
      x = sugoroku(x[0], x[1], masume)
      puts("ゴール!!")
      sleep(1.5)
      printf("%d回でゴールしたよ!!\n", x[1])
    elsif sentaku == "買い物"
      manpuku = %w(100, 100, 200)
      bangou = 0
      syurui = %w(主食 主菜 副菜 汁物)
      tabemono = %w(お米 ハンバーグ 千切りキャベツ 味噌汁 納豆ご飯 唐揚げ ツナマヨサラダ コンソメスープ ふりかけご飯 照焼チキン きんぴらごぼう コーンスープ 卵かけご飯 玉子焼き ミックスキャベツ オニオンスープ わかめご飯 ステーキ なすごんげ 卵スープ たけのこご飯 焼き肉 枝豆 わかめスープ 醤油ラーメン 餃子 もやしナムル 麻婆豆腐 味噌ラーメン シュウマイ おひたし シチュー カレーライス 回鍋肉 ミニトマト 八宝菜 そば エビフライ 天ぷら なめこ汁 うどん とんかつ ブロッコリー 豚汁 パン お刺し身 海藻サラダ 納豆汁)
      kyounogohan = []
      zairyou = %w(お米 ひき肉 キャベツ 味噌 納豆 鶏肉 ツナ コンソメスープのもと ふりかけ 鶏肉 ごぼう コーンスープのもと 卵 卵 キャベツ オニオンスープのもと わかめ 牛肉 なす 卵 たけのこ 豚肉 枝豆 わかめ 麺 餃子の皮 もやし 豆腐 麺 シュウマイ ほうれん草 シチューのもと カレールゥ ピーマン ミニトマト きくらげ そば エビ さつまいも なめこ うどん 豚肉 ブロッコリー 豚肉 パン お刺し身 海藻 納豆)
      kaumono = []

      puts("今からご飯に何を食べるか選ぶよ!")
      sleep(3)
      bangou = 0
      while bangou < 4
        sentaku = rand(tabemono.length)
        if sentaku % 4 == bangou
          printf("%sは%sだよ!\n", syurui[bangou], tabemono[sentaku])
          sleep(2)
          kyounogohan << tabemono[sentaku]
          kaumono << zairyou[sentaku]
          bangou += 1
        else
          redo
        end
      end
      puts("これから家にない材料を買いに行くよ!")
      sleep(4)
      puts("買うものを予想して順番に選ぼう!")
      sleep(3)
      puts zairyou
      bangou = 0
      while bangou < 4
        printf("\n%sに必要なものを上から選ぼう!\n", kyounogohan[bangou])
        sentaku = gets.chomp
        if sentaku == kaumono[bangou]
          puts("正解!")
          bangou += 1
        else
          puts("不正解...もう1度選び直そう!")
          redo
        end
        sleep(2)
      end
      puts("これで必要なものはそろったよ!!")
    elsif sentaku == "計算"
      seikaisuu = 0
      keisansentaku = %w(選択画面 1:かけ算 2:わり算 3:見取り算(加算))
      kakezansentaku1 = %w(かけ算選択画面 0:1桁*1桁 1:2桁*1桁 2:2桁*2桁 3:3桁*1桁 4:3桁*2桁 5:3桁*3桁 6:4桁*1桁 7:4桁*2桁 8:4桁*3桁 9:4桁*4桁 10:5桁*1桁 11:5桁*2桁 12:5桁*3桁 13:5桁*4桁 14:5桁*5桁)
      kakezansentaku2 = [[9, 1, 9, 1, seikaisuu], [90, 10, 9, 1, seikaisuu], [90, 10, 90, 10, seikaisuu], [900, 100, 9, 1, seikaisuu], [900, 100, 90, 10, seikaisuu], [900, 100, 900, 100, seikaisuu], [9000, 1000, 9, 1, seikaisuu], [9000, 1000, 90, 10, seikaisuu], [9000, 1000, 900, 100, seikaisuu], [9000, 1000, 9000, 1000, seikaisuu], [90000, 10000, 9, 1, seikaisuu], [90000, 10000, 90, 10, seikaisuu], [90000, 10000, 900, 100, seikaisuu], [90000, 10000, 9000, 1000, seikaisuu], [90000, 10000, 90000, 10000, seikaisuu]]
      warizansentaku1 = %w(わり算選択画面 0:1,2桁/1桁 1:2,3桁/1桁 2:2,3桁/2桁 3:3,4桁/1桁 4:3,4桁/2桁 5:3,4桁/3桁 6:4,5桁/1桁 7:4,5桁/2桁 8:4,5桁/3桁 9:4,5桁/4桁 10:5,6桁/1桁 11:5,6桁/2桁 12:5,6桁/3桁 13:5,6桁/4桁 14:5,6桁/5桁 15:6,7桁/1桁 16:6,7桁/2桁 17:6,7桁/3桁 18:6,7桁/4桁 19:6,7桁/5桁 20:6,7桁/6桁 21:7,8桁/1桁 22:7,8桁/2桁 23:7,8桁/3桁 24:7,8桁/4桁 25:7,8桁/5桁 26:7,8桁/6桁 27:7,8桁/7桁 28:8,9桁/1桁 29:8,9桁/2桁 30:8,9桁/3桁 31:8,9桁/4桁 32:8,9桁/5桁 33:8,9桁/6桁 34:8,9桁/7桁 35:8,9桁/8桁 36:9,10桁/1桁 37:9,10桁/2桁 38:9,10桁/3桁 39:9,10桁/4桁 40:9,10桁/5桁 41:9,10桁/6桁 42:9,10桁/7桁 43:9,10桁/8桁 44:9,10桁/9桁 45:10,11桁/1桁 46:10,11桁/2桁 47:10,11桁/3桁 48:10,11桁/4桁 49:10,11桁/5桁 50:10,11桁/6桁 51:10,11桁/7桁 52:10,11桁/8桁 53:10,11桁/9桁 54:10,11桁/10桁)
      warizansentaku2 = [[9, 1, 9, 1, seikaisuu], [90, 10, 9, 1, seikaisuu], [9, 1, 90, 10, seikaisuu], [900, 100, 9, 1, seikaisuu], [90, 10, 90, 10, seikaisuu], [9, 1, 900, 100, seikaisuu], [9000, 1000, 9, 1, seikaisuu], [900, 100, 90, 10, seikaisuu], [90, 10, 900, 100, seikaisuu], [9, 1, 9000, 1000, seikaisuu], [90000, 10000, 9, 1, seikaisuu], [9000, 1000, 90, 10, seikaisuu], [900, 100, 900, 100, seikaisuu], [90, 10, 9000, 1000, seikaisuu], [9, 1, 90000, 10000, seikaisuu], [900000, 100000, 9, 1, seikaisuu], [90000, 10000, 90, 10, seikaisuu], [9000, 1000, 900, 100, seikaisuu], [900, 100, 9000, 1000, seikaisuu], [90, 10, 90000, 10000, seikaisuu], [9, 1, 900000, 100000, seikaisuu], [9000000, 1000000, 9, 1, seikaisuu], [900000, 100000, 90, 10, seikaisuu], [90000, 10000, 900, 100, seikaisuu], [9000, 1000, 9000, 1000, seikaisuu], [900, 100, 90000, 10000, seikaisuu], [90, 10, 900000, 100000, seikaisuu], [9, 1, 9000000, 1000000, seikaisuu], [90000000, 10000000, 9, 1, seikaisuu], [9000000, 1000000, 90, 10, seikaisuu], [900000, 100000, 900, 100, seikaisuu], [90000, 10000, 9000, 1000, seikaisuu], [9000, 1000, 90000, 10000, seikaisuu], [900, 100, 900000, 100000, seikaisuu], [90, 10, 9000000, 1000000, seikaisuu], [9, 1, 90000000, 10000000, seikaisuu], [900000000, 100000000, 9, 1, seikaisuu], [90000000, 10000000, 90, 10, seikaisuu], [9000000, 1000000, 900, 100, seikaisuu], [900000, 100000, 9000, 1000, seikaisuu], [90000, 10000, 90000, 10000, seikaisuu], [9000, 1000, 900000, 100000, seikaisuu], [900, 100, 9000000, 1000000, seikaisuu], [90, 10, 90000000, 10000000, seikaisuu], [9, 1, 900000000, 100000000, seikaisuu], [9000000000, 1000000000, 9, 1, seikaisuu], [900000000, 100000000, 90, 10, seikaisuu], [90000000, 10000000, 900, 100, seikaisuu], [9000000, 1000000, 9000, 1000, seikaisuu], [900000, 100000, 90000, 10000, seikaisuu], [90000, 10000, 900000, 100000, seikaisuu],[9000, 1000, 9000000, 1000000, seikaisuu], [900, 100, 90000000, 10000000, seikaisuu], [90, 10, 900000000, 100000000, seikaisuu], [9, 1, 9000000000, 1000000000, seikaisuu]]
      mitorizansentaku1 = %w(見取り算選択画面 0:1桁3口 1:1桁5口 2:1桁7口 3:1桁10口 4:2桁3口 5:2桁5口 6:2桁7口 7:2桁10口 8:3桁3口 9:3桁5口 10:3桁7口 11:3桁10口 12:4桁3口 13:4桁5口 14:4桁7口 15:4桁10口 16:5桁3口 17:5桁5口 18:5桁7口 19:5桁10口 20:6桁3口 21:6桁5口 22:6桁7口 23:6桁10口 24:7桁3口 25:7桁5口 26:7桁7口 27:7桁10口 28:8桁3口 29:8桁5口 30:8桁7口 31:8桁10口 32:9桁3口 33:9桁5口 34:9桁7口 35:9桁10口 36:10桁3口 37:10桁5口 38:10桁7口 39:10桁10口)
      mitorizansentaku2 = [[3, 9, 1, seikaisuu], [5, 9, 1, seikaisuu], [7, 9, 1, seikaisuu], [10, 9, 1, seikaisuu], [3, 90, 10, seikaisuu], [5, 90, 10, seikaisuu], [7, 90, 10, seikaisuu], [10, 90, 10, seikaisuu], [3, 900, 100, seikaisuu], [5, 900, 100, seikaisuu], [7, 900, 100, seikaisuu], [10, 900, 100, seikaisuu], [3, 9000, 1000, seikaisuu], [5, 9000, 1000, seikaisuu], [7, 9000, 1000, seikaisuu], [10, 9000, 1000, seikaisuu], [3, 90000, 10000, seikaisuu], [5, 90000, 10000, seikaisuu], [7, 90000, 10000, seikaisuu], [10, 90000, 10000, seikaisuu], [3, 900000, 100000, seikaisuu], [5, 900000, 100000, seikaisuu], [7, 900000, 100000, seikaisuu], [10, 900000, 100000, seikaisuu], [3, 9000000, 1000000, seikaisuu], [5, 9000000, 1000000, seikaisuu], [7, 9000000, 1000000, seikaisuu], [10, 9000000, 1000000, seikaisuu], [3, 90000000, 10000000, seikaisuu], [5, 90000000, 10000000, seikaisuu], [7, 90000000, 10000000, seikaisuu], [10, 90000000, 10000000, seikaisuu], [3, 900000000, 100000000, seikaisuu], [5, 900000000, 100000000, seikaisuu], [7, 900000000, 100000000, seikaisuu], [10, 900000000, 100000000, seikaisuu], [3, 9000000000, 1000000000, seikaisuu], [5, 9000000000, 1000000000, seikaisuu], [7, 9000000000, 1000000000, seikaisuu], [10, 9000000000, 1000000000, seikaisuu]]

      def kakezan(kakezansentaku2)
        while true
          srand()
          kazu1 = rand(kakezansentaku2[0]) + kakezansentaku2[1]
          kazu2 = rand(kakezansentaku2[2]) + kakezansentaku2[3]
          printf("%d*%d\n", kazu1, kazu2)
          print("答えを入力:")
          kaitou = kazu1*kazu2
          return kaitou
          kotae = gets.chomp.to_i
          if kotae == kaitou
            puts("正解!")
            kakezansentaku2[4] += 1
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kaitou)
            printf("%d問正解したよ!!\n", kakezansentaku2[4])
          end
          break
        end
      end

      def warizan(warizansentaku2)
        while true
          srand()
          kazu1 = rand(warizansentaku2[0]) + warizansentaku2[1]
          kazu2 = rand(warizansentaku2[2]) + warizansentaku2[3]
          kazu3 = kazu1*kazu2
          printf("%d/%d\n", kazu3, kazu2)
          print("答えを入力:")
          kaitou = kazu3/kazu2
          kotae = gets.chomp.to_i
          if kotae == kazu3/kazu2
            puts("正解!")
            warizansentaku2[4] += 1
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kazu3/kazu2)
            printf("%d問正解したよ!!\n", warizansentaku2[4])
          end
          break
        end
      end

      def mitorizan(mitorizansentaku2)
        mitorizansentaku2[3] = 0
        while true
          srand()
          kazu1 = 0
          kutisuu = mitorizansentaku2[0]
          while mitorizansentaku2[0] > 0
            kazu2 = rand(mitorizansentaku2[1]) + mitorizansentaku2[2]
            puts kazu2
            kazu1 += kazu2
            mitorizansentaku2[0] -= 1
          end
          print("答えを入力:")
          kotae = gets.chomp.to_i
          if kotae == kazu1
            puts("正解!")
            mitorizansentaku2[3] += 1
            mitorizansentaku2[0] = kutisuu
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kazu1)
            printf("%d問正解したよ!!\n", mitorizansentaku2[3])
          end
          break
        end     
      end

      while true
        puts keisansentaku
        print("選択:")
        sentaku = gets.chomp.to_i
        if sentaku == 1
          puts kakezansentaku1
          print("選択:")
          while true
            sentaku = gets.chomp.to_i
            if sentaku <= kakezansentaku2.length && sentaku >= 0
              kakezan(kakezansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end
            break
          end

        elsif sentaku == 2
          puts warizansentaku1 
          print("選択:")
          while true
            sentaku = gets.chomp.to_i
            if sentaku <= warizansentaku2.length && sentaku >= 0
              warizan(warizansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end      
            break
          end

        elsif sentaku == 3
          puts mitorizansentaku1
          print("選択:")
          while true
            sentaku = gets.chomp.to_i
            if sentaku <= mitorizansentaku2.length && sentaku >= 0
              mitorizan(mitorizansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end
            break
          end

        else
          puts("その選択肢はないよ!")
          redo
        end
        break
      end






      
      seikaisuu = 0
      keisansentaku = %w(選択画面 1:かけ算 2:わり算 3:見取り算(加算))
      kakezansentaku1 = %w(かけ算選択画面 0:1桁*1桁 1:2桁*1桁 2:2桁*2桁 3:3桁*1桁 4:3桁*2桁 5:3桁*3桁 6:4桁*1桁 7:4桁*2桁 8:4桁*3桁 9:4桁*4桁 10:5桁*1桁 11:5桁*2桁 12:5桁*3桁 13:5桁*4桁 14:5桁*5桁)
      kakezansentaku2 = [[9, 1, 9, 1, seikaisuu], [90, 10, 9, 1, seikaisuu], [90, 10, 90, 10, seikaisuu], [900, 100, 9, 1, seikaisuu], [900, 100, 90, 10, seikaisuu], [900, 100, 900, 100, seikaisuu], [9000, 1000, 9, 1, seikaisuu], [9000, 1000, 90, 10, seikaisuu], [9000, 1000, 900, 100, seikaisuu], [9000, 1000, 9000, 1000, seikaisuu], [90000, 10000, 9, 1, seikaisuu], [90000, 10000, 90, 10, seikaisuu], [90000, 10000, 900, 100, seikaisuu], [90000, 10000, 9000, 1000, seikaisuu], [90000, 10000, 90000, 10000, seikaisuu]]
      warizansentaku1 = %w(わり算選択画面 0:1,2桁/1桁 1:2,3桁/1桁 2:2,3桁/2桁 3:3,4桁/1桁 4:3,4桁/2桁 5:3,4桁/3桁 6:4,5桁/1桁 7:4,5桁/2桁 8:4,5桁/3桁 9:4,5桁/4桁 10:5,6桁/1桁 11:5,6桁/2桁 12:5,6桁/3桁 13:5,6桁/4桁 14:5,6桁/5桁 15:6,7桁/1桁 16:6,7桁/2桁 17:6,7桁/3桁 18:6,7桁/4桁 19:6,7桁/5桁 20:6,7桁/6桁 21:7,8桁/1桁 22:7,8桁/2桁 23:7,8桁/3桁 24:7,8桁/4桁 25:7,8桁/5桁 26:7,8桁/6桁 27:7,8桁/7桁 28:8,9桁/1桁 29:8,9桁/2桁 30:8,9桁/3桁 31:8,9桁/4桁 32:8,9桁/5桁 33:8,9桁/6桁 34:8,9桁/7桁 35:8,9桁/8桁 36:9,10桁/1桁 37:9,10桁/2桁 38:9,10桁/3桁 39:9,10桁/4桁 40:9,10桁/5桁 41:9,10桁/6桁 42:9,10桁/7桁 43:9,10桁/8桁 44:9,10桁/9桁 45:10,11桁/1桁 46:10,11桁/2桁 47:10,11桁/3桁 48:10,11桁/4桁 49:10,11桁/5桁 50:10,11桁/6桁 51:10,11桁/7桁 52:10,11桁/8桁 53:10,11桁/9桁 54:10,11桁/10桁)
      warizansentaku2 = [[9, 1, 9, 1, seikaisuu], [90, 10, 9, 1, seikaisuu], [9, 1, 90, 10, seikaisuu], [900, 100, 9, 1, seikaisuu], [90, 10, 90, 10, seikaisuu], [9, 1, 900, 100, seikaisuu], [9000, 1000, 9, 1, seikaisuu], [900, 100, 90, 10, seikaisuu], [90, 10, 900, 100, seikaisuu], [9, 1, 9000, 1000, seikaisuu], [90000, 10000, 9, 1, seikaisuu], [9000, 1000, 90, 10, seikaisuu], [900, 100, 900, 100, seikaisuu], [90, 10, 9000, 1000, seikaisuu], [9, 1, 90000, 10000, seikaisuu], [900000, 100000, 9, 1, seikaisuu], [90000, 10000, 90, 10, seikaisuu], [9000, 1000, 900, 100, seikaisuu], [900, 100, 9000, 1000, seikaisuu], [90, 10, 90000, 10000, seikaisuu], [9, 1, 900000, 100000, seikaisuu], [9000000, 1000000, 9, 1, seikaisuu], [900000, 100000, 90, 10, seikaisuu], [90000, 10000, 900, 100, seikaisuu], [9000, 1000, 9000, 1000, seikaisuu], [900, 100, 90000, 10000, seikaisuu], [90, 10, 900000, 100000, seikaisuu], [9, 1, 9000000, 1000000, seikaisuu], [90000000, 10000000, 9, 1, seikaisuu], [9000000, 1000000, 90, 10, seikaisuu], [900000, 100000, 900, 100, seikaisuu], [90000, 10000, 9000, 1000, seikaisuu], [9000, 1000, 90000, 10000, seikaisuu], [900, 100, 900000, 100000, seikaisuu], [90, 10, 9000000, 1000000, seikaisuu], [9, 1, 90000000, 10000000, seikaisuu], [900000000, 100000000, 9, 1, seikaisuu], [90000000, 10000000, 90, 10, seikaisuu], [9000000, 1000000, 900, 100, seikaisuu], [900000, 100000, 9000, 1000, seikaisuu], [90000, 10000, 90000, 10000, seikaisuu], [9000, 1000, 900000, 100000, seikaisuu], [900, 100, 9000000, 1000000, seikaisuu], [90, 10, 90000000, 10000000, seikaisuu], [9, 1, 900000000, 100000000, seikaisuu], [9000000000, 1000000000, 9, 1, seikaisuu], [900000000, 100000000, 90, 10, seikaisuu], [90000000, 10000000, 900, 100, seikaisuu], [9000000, 1000000, 9000, 1000, seikaisuu], [900000, 100000, 90000, 10000, seikaisuu], [90000, 10000, 900000, 100000, seikaisuu],[9000, 1000, 9000000, 1000000, seikaisuu], [900, 100, 90000000, 10000000, seikaisuu], [90, 10, 900000000, 100000000, seikaisuu], [9, 1, 9000000000, 1000000000, seikaisuu]]
      mitorizansentaku1 = %w(見取り算選択画面 0:1桁3口 1:1桁5口 2:1桁7口 3:1桁10口 4:2桁3口 5:2桁5口 6:2桁7口 7:2桁10口 8:3桁3口 9:3桁5口 10:3桁7口 11:3桁10口 12:4桁3口 13:4桁5口 14:4桁7口 15:4桁10口 16:5桁3口 17:5桁5口 18:5桁7口 19:5桁10口 20:6桁3口 21:6桁5口 22:6桁7口 23:6桁10口 24:7桁3口 25:7桁5口 26:7桁7口 27:7桁10口 28:8桁3口 29:8桁5口 30:8桁7口 31:8桁10口 32:9桁3口 33:9桁5口 34:9桁7口 35:9桁10口 36:10桁3口 37:10桁5口 38:10桁7口 39:10桁10口)
      mitorizansentaku2 = [[3, 9, 1, seikaisuu], [5, 9, 1, seikaisuu], [7, 9, 1, seikaisuu], [10, 9, 1, seikaisuu], [3, 90, 10, seikaisuu], [5, 90, 10, seikaisuu], [7, 90, 10, seikaisuu], [10, 90, 10, seikaisuu], [3, 900, 100, seikaisuu], [5, 900, 100, seikaisuu], [7, 900, 100, seikaisuu], [10, 900, 100, seikaisuu], [3, 9000, 1000, seikaisuu], [5, 9000, 1000, seikaisuu], [7, 9000, 1000, seikaisuu], [10, 9000, 1000, seikaisuu], [3, 90000, 10000, seikaisuu], [5, 90000, 10000, seikaisuu], [7, 90000, 10000, seikaisuu], [10, 90000, 10000, seikaisuu], [3, 900000, 100000, seikaisuu], [5, 900000, 100000, seikaisuu], [7, 900000, 100000, seikaisuu], [10, 900000, 100000, seikaisuu], [3, 9000000, 1000000, seikaisuu], [5, 9000000, 1000000, seikaisuu], [7, 9000000, 1000000, seikaisuu], [10, 9000000, 1000000, seikaisuu], [3, 90000000, 10000000, seikaisuu], [5, 90000000, 10000000, seikaisuu], [7, 90000000, 10000000, seikaisuu], [10, 90000000, 10000000, seikaisuu], [3, 900000000, 100000000, seikaisuu], [5, 900000000, 100000000, seikaisuu], [7, 900000000, 100000000, seikaisuu], [10, 900000000, 100000000, seikaisuu], [3, 9000000000, 1000000000, seikaisuu], [5, 9000000000, 1000000000, seikaisuu], [7, 9000000000, 1000000000, seikaisuu], [10, 9000000000, 1000000000, seikaisuu]]

      def kakezan(kakezansentaku2)
        while true
          srand()
          kazu1 = rand(kakezansentaku2[0]) + kakezansentaku2[1]
          kazu2 = rand(kakezansentaku2[2]) + kakezansentaku2[3]
          printf("%d*%d\n", kazu1, kazu2)
          print("答えを入力:")
          kotae = gets.chomp.to_i
          if kotae == kazu1*kazu2
            puts("正解!")
            kakezansentaku2[4] += 1
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kazu1*kazu2)
            printf("%d問正解したよ!!\n", kakezansentaku2[4])
          end
          break
        end
      end

      def warizan(warizansentaku2)
        while true
          srand()
          kazu1 = rand(warizansentaku2[0]) + warizansentaku2[1]
          kazu2 = rand(warizansentaku2[2]) + warizansentaku2[3]
          kazu3 = kazu1*kazu2
          printf("%d/%d\n", kazu3, kazu2)
          print("答えを入力:")
          kotae = gets.chomp.to_i
          if kotae == kazu3/kazu2
            puts("正解!")
            warizansentaku2[4] += 1
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kazu3/kazu2)
            printf("%d問正解したよ!!\n", warizansentaku2[4])
          end
          break
        end
      end

      def mitorizan(mitorizansentaku2)
        mitorizansentaku2[3] = 0
        while true
          srand()
          kazu1 = 0
          kutisuu = mitorizansentaku2[0]
          while mitorizansentaku2[0] > 0
            kazu2 = rand(mitorizansentaku2[1]) + mitorizansentaku2[2]
            puts kazu2
            kazu1 += kazu2
            mitorizansentaku2[0] -= 1
          end
          print("答えを入力:")
          kotae = gets.chomp.to_i
          if kotae == kazu1
            puts("正解!")
            mitorizansentaku2[3] += 1
            mitorizansentaku2[0] = kutisuu
            redo
          else
            puts("不正解...")
            printf("答えは%dだよ!\n", kazu1)
            printf("%d問正解したよ!!\n", mitorizansentaku2[3])
          end
          break
        end     
      end

      while true
        puts keisansentaku
        print("選択:")
        sentaku = gets.chomp.to_i
        if sentaku == 1
          while true
            print("かけられる数を入力してね!(0以下の数はだめだよ!):")
            kakerarerukazu = gets.chomp.to_i
            if kakerarerukazu <= 0
              puts("0以下の数はだめだよ!")
              redo
            end
            break
          end
          while true
            print("かける数を入力してね!(0以下の数はだめだよ!)")
            kakerukazu = gets.chomp.to_i
            if kakerukazu <= 0
              puts("0以下の数はだめだよ!")
              redo
            end
            break
          end
              
              
              kakezan(kakezansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end
            break
          end

        elsif sentaku == 2
          puts warizansentaku1 
          print("選択:")
          while true
            sentaku = gets.chomp.to_i
            if sentaku <= warizansentaku2.length && sentaku >= 0
              warizan(warizansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end      
            break
          end

        elsif sentaku == 3
          puts mitorizansentaku1
          print("選択:")
          while true
            sentaku = gets.chomp.to_i
            if sentaku <= mitorizansentaku2.length && sentaku >= 0
              mitorizan(mitorizansentaku2[sentaku])
              break
            else
              puts("その選択肢はないよ!")
              redo
            end
            break
          end

        else
          puts("その選択肢はないよ!")
          redo
        end
        break
      end









      
    elsif sentaku == "トランプ"
      torannpu1 = ["3","1","4","5","2"]
      torannpu2 = ["1","3","4","2","5"]
      puts"神経衰弱ゲーム"
      puts"このゲームは2人で遊ぶよ"
      puts"先に5組揃えたほうが勝ちだよ"
      puts"カードを並べるから少し待ってね"
      sleep(3)
      spawn"display -geometry +10+20 torannpu.png"
      spawn"display -geometry +10+20 rei.png"
      puts"このカードの中から2つ選んでいってね"
      nokori = 3
      while true
        puts"最初のカードを選んでね"
        a = gets.to_i
        puts torannpu1[a]
        puts"次のカードを選んでね"
        b = gets.to_i
        puts torannpu2[b]
        if nokori < 2
          puts"おめでとう!君の勝ちだよ"
          break
        end
        if  torannpu1[a] == torannpu2[b]
          puts"もう一回引いてね"
          nokori -= 1
          torannpu1.delete_at(a)
          torannpu2.delete_at(b)
        elsif torannpu1[a] != torannpu2[b]
          puts"残念!次の人の番だよ"
        end
      end
    end
  else
    puts("その選択肢はないよ!")
    redo
  end
  break
end