Newer
Older
Ruby / keisan.rb
@MIZUNO Manaka MIZUNO Manaka on 3 Sep 2022 16 KB 2022-09-03 22:18:09
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

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,7桁/1桁 46:10,8桁/2桁 47:10,8桁/3桁 48:10,8桁/4桁 49:10,8桁/5桁 50:10,8桁/6桁 51:10,8桁/7桁 52:10,8桁/8桁 53:10,9桁/9桁 54:10,9桁/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
def erabu(a)
  print("選択:")
  gets.chomp.to_i
end
while true
  puts keisansentaku
  sentaku = erabu(sentaku)
  if sentaku == 1
    puts kakezansentaku1
    bangou = erabu(sentaku)
    if bangou <= kakezansentaku2.length && bangou >= 0
      kakezan(kakezansentaku2[bangou])
      break
    end
  elsif sentaku == 2
    puts warizansentaku1
    bangou = erabu(sentaku)
    if bangou <= warizansentaku2.length && bangou >= 0
      warizan(warizansentaku2[bangou])
      break
    end
  elsif sentaku == 3
    puts mitorizansentaku1
    bangou = erabu(sentaku)
    if bangou <= mitorizansentaku2.length && bangou >= 0
      mitorizan(mitorizansentaku2[bangou])
      break
    end
  else
    puts("その選択肢はないよ!")
    redo
  end
end














#!/usr/bin/env ruby
# -*- coding: utf-8 -*-


















#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

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,7桁/1桁 46:10,8桁/2桁 47:10,8桁/3桁 48:10,8桁/4桁 49:10,8桁/5桁 50:10,8桁/6桁 51:10,8桁/7桁 52:10,8桁/8桁 53:10,9桁/9桁 54:10,9桁/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
    return kaitou
    kotae = gets.chomp.to_i
    if kotae == kaitou
      puts("正解!")
      warizansentaku2[4] += 1
      redo
    else
      puts("不正解...")
      printf("答えは%dだよ!\n", kaitou)
      printf("%d問正解したよ!!\n", warizansentaku2[4])
    end
    break
  end
end

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