Newer
Older
Ruby / itsudokode.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

#紙の用意がだるいときに便利。だろう。
#慌てて調理したスパゲッティ(´;ω;`)

questions = [
  "いつ","どこで","誰が","何をして","どうなった",
 ]

setumei =[
  "               説明",
  "「いつ」、「どこで」、「誰が」、「何をして」、「どうなった」",
  "の5つを順番に書いていって、",
  "最終的に、実にユニークなストーリーができる、大人数の定番ゲームです。",
  "それぞれの項目で書いたものは確定すると隠されるため、入力中に覗かれない限りは",
  "入力者以外の人がこっそり見ることは不可能になっています。ご安心ください!",
  "ちなみに、新年やハロウィンなど、日常のイベントがある日には、",
  "「イベント」から、その日にまつわるいつどこでを見ることができます。",
  "「イベント」のいつどこでは、少しずつ追加していきます。お楽しみに!",
  "※「イベント」のいつどこでは、見逃すとまた来年まで見ることができないので、",
  "  気になる方は当日に見に来てください。",
 ]

event_4w1h = {
  :newYear =>["真夜中に","家で","自分が","テレビを見ていたら","年が明けた!!"],
              
             }

def kakunin()
  print ("「はい」か「いいえ」で答えてください)...")
  print"\e[K"
  ans = gets.chomp
  return ans
end

def putStory(ary,opt = "なし")
  for j in ary               # 「いつ」、「どこで」、、
    if opt == "gets"
      gets
      print"\e[1A"
    end
    printf("%s\n",j)
  end
  gets
end

def findEvent
  date = Time.now
  month_and_day = [(date.month),(date.day)]
  event_days = {[1,1] => :newYear,[10,31] => :halloween,[12,25] => :christmas,
                }
  whatDay = event_days[month_and_day]
end
    

def honpen(questions)

while true
  print"\e[H"
  print"\e[2J"
  print"\e[H"
  result = []
  ans =nil
  for i in questions
    print("\e7")
    printf("あなたが書くのは「%s」です。\n",i)
    print  "記入してください..."
    input = gets.chomp
  print  "\n"
  printf("「%s」でよろしいですか?\n",input)
  while true
    
    ans = kakunin                # 回答を入手
    if ans == "はい"
      print  "確定しました。enterで次に進みます。\n"
      result << input
      gets
      print"\e[1J"
     break                       # while true抜け
    elsif ans == "いいえ"
     break
    else
      redo
    end
  end
  print"\e[1J"
  print("\e8")
  redo if ans == "いいえ"         # forループもっかい
  end
  
  puts"すべてが入力されました。"
  puts"         結果"
  putStory(result,"gets")
  print"もう一度やりますか?"
  while true
    ans = kakunin
    if ans == "いいえ"
      break
    elsif ans == "はい"
      break
    else
      redo
    end
  end
  break if ans == "いいえ"      # 本編から抜ける
end
end

print"\e[2J"
print"\e[H"
putStory(setumei)

ans = 0
sentakusi = {1 => "プレイする", 2 =>"イベント", 3 =>"終了"}
while true
until sentakusi[ans]
  print"\e[13H"
  print"\e[J"
  puts"         ホーム"
  count = 0
  for h in sentakusi.values
    count += 1
    printf("%d ...%s\n",count,h)
  end
  whatDay = findEvent
  print"\e[5;4m現在「イベント」が表示できます!\e[m\n"if whatDay
  print"やりたいことの番号を入れてください:"
  ans = gets.chomp.to_i
  print"\e[13H" unless sentakusi[ans]
end

case sentakusi[ans]
 when "プレイする"
   honpen(questions)
 when "イベント"
   if whatDay
     putStory(event_4w1h[whatDay],"gets")
   else
     puts"現在イベントはありません。"
     gets
   end
 when "終了"
   break
end
ans = 0

end