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