Newer
Older
Ruby / tyuukan.rb
@HYODO An HYODO An on 14 Sep 2024 1 KB 2024-09-14 22:04:28
#!/usr/bin/env ruby
# -*- coding:utf-8 -*-

require 'csv'
require 'timeout'
qsa=CSV.read("tyuukan.csv", headers:true)
puts("カップラーメンの待ち時間は何分ですか?(数字だけで入力)")
print("\e[5m>>\e[m")
wt=gets.to_f
puts("お湯を入れたらエンターを押してください。タイマーがスタートします")
print("\e[5m>>\e[m")
gets
a=1
c=d=0
time=Time.now
begin
  Timeout.timeout(60*wt){
    while true
      srand()
      b=rand(qsa.length)
      printf("%d問目:%s\n",a,qsa[b]["quiz"])
      puts(qsa[b]["selection1"])
      puts(qsa[b]["selection2"])
      puts(qsa[b]["selection3"])
      puts("選択肢の数字で答えてね。")
      while true
        print("\e[5m>>\e[m")
        ans=gets.chomp.to_i
        if ans==qsa[b]["ans_number"].to_i
          puts("\e[31;47m正解!\e[m")
          d+=1
          break
        elsif ans>=4||ans==0
          print("選択肢の数字で答えてね。")
          sleep(0.5)
          print("\e[24D\e[J\e[1A\e[J")
          redo
        else
          puts("\e[34;47m不正解…\e[m")
          c+=1
          break
        end
      end
      printf("正解は%sの%sでした。\n",qsa[b]["ans_number"],qsa[b]["answer"])
      sleep(1)
      printf("残り%d秒!\n",wt*60-(Time.now-time))
      puts("")
      a+=1
    end
  }
rescue Timeout::Error
  puts("")
  puts("========================終了========================")
  printf("%d分立ちました。\n",wt)
  printf("%d問解くことができました。\n",a)
  printf("%d問正解して、%d問不正解でした。\n",d,c)
  puts("召し上がれ!!")
end