Newer
Older
Ruby / chuukan_happyou.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'csv'
def displayList
  puts "\e[1m-持ち物リスト-------------------\e[0m"
  CSV.foreach("chuukan_happyou.csv") do |i|
    puts " ・ #{i[0]}"
  end
  puts "\e[1m--------------------------------\e[0m"
end
def displayMenu
  puts "\e[30;107m\nメニュー"
  if CSV.read("chuukan_happyou.csv") == []
    print "\e[9m 1 : 1つずつ持ち物確認する\n 2 : リストで持ち物確認する\n\e[0m\e[30;107m 3 : 「持ち物」を追加する\n\e[9;30;107m 4 : 「持ち物」を消去する\n 5 : 「持ち物」をリセットする\n\e[0m\e[30;107m空白(何も入力しないで Enter ) : 終了する\e[0m"
  else
    print " 1 : 1つずつ持ち物確認する\n 2 : リストで持ち物確認する\n 3 : 「持ち物」を追加する\n 4 : 「持ち物」を消去する\n 5 : 「持ち物」をリセットする\n空白(何も入力しないで Enter ) : 終了する\e[0m"
  end
end
puts "\e[1;3;93m忘れ物防止!! 確認しよう!\e[0m"
displayMenu
while true
  data = CSV.read("chuukan_happyou.csv")
  data2 = data
  print "\nモード(半角数字を入力) : "
  mode = gets.chomp
  if mode == "1" && data != []
    data.each do |i|
      print "\e[1m#{i[0]}\e[0mは持ちましたか?(Enter)"
      gets
    end
    puts "\e[1;3;96m準備OK!!\e[0m"
  elsif mode == "2" && data != []
    displayList
    print "全部持ちましたか?(Enter)"
    gets
    puts "\e[1;3;96m準備OK!!\e[0m"
  elsif mode == "3"
    tsuika_array = []
    while true
      print "リストに追加するもの(空白で終了) : "
      tsuika = gets.chomp
      if tsuika == ""
        break
      else
        if data.include?([tsuika])
          puts "\e[3;91m#{tsuika}は既に持ち物リストに入っています\e[0m"
        else
          tsuika_array << tsuika
          CSV.open("chuukan_happyou.csv", "a") do |i|
            i << [tsuika]
          end
        end
      end
    end
    if tsuika_array == []
      puts "\n\e[3;37mキャンセルしました\e[0m"
    else
      puts "\e[3;37m"
      tsuika_array.size.times do |i|
        print "#{tsuika_array[i]}、"
      end
      puts "\bを持ち物リストに追加しました\e[0m"
      if data2 == []
        displayMenu
      end
    end
  elsif mode == "4" && data != []
    kesu_array = []
    while true
      print "リストから削除するもの(空白で終了) : "
      kesu = gets.chomp
      if kesu == ""
        break
      else
        if data.include?([kesu])
          kesu_array << kesu
          data.delete_if{|i| i.include?(kesu)}
          CSV.open("chuukan_happyou.csv", "w") do |i|
            data.each do |j|
              i << j
            end
          end
        else
          puts "\e[3;91m#{kesu}は持ち物リストに含まれていません\e[0m"
        end
      end
    end
    if kesu_array == []
      puts "\n\e[3;37mキャンセルしました\e[0m"
    else
      puts "\e[3;37m"
      kesu_array.size.times do |i|
        print "#{kesu_array[i]}、"
      end
      puts "\bを持ち物リストから削除しました\e[0m"
    end
    if CSV.read("chuukan_happyou.csv") == []
      displayMenu
    end
  elsif mode == "5" && data != []
    while true
      print "本当にリセットしますか?\n( 1 : リセットする / 2 : キャンセル) : "
      reset = gets.chomp.to_i
      case reset
      when 1
        CSV.open("chuukan_happyou.csv", "w") do
        end
        puts "\n\e[3;37m持ち物リストをリセットしました\e[0m"
        displayMenu
        break
      when 2
        puts "\n\e[3;37mキャンセルしました\e[0m"
        break
      else
        puts "その操作は無効です"
      end
    end
  elsif mode == ""
    print "\e[3;37m終了します\n\n"
    break
  else
    puts "\e[3;91mその操作は無効です\e[0m"
  end
end