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

#mogrify -resize '>400x300' *.jpg 画像を小さくする魔法

#このプログラムのテーマは「現在は人口が減少している・観光客もまだ少ない遊佐を、
たくさんの人がいる・観光客が多く活気がある町にするプログラム」です。
#現在の遊佐は人口が減少(特に若い人や子供)していて、まだ観光客も少ないため、
魅力や行くと楽しくなるスポットを紹介し、遊佐が人がたくさんいる賑やかな町に
なるようにと考えこのプログラムを作りました。

#工夫したところ
・CSVを使ってできるだけ行数が少ないものにしました。
・あとからでも、場所を追加できるようにしました。

#実装しているもの
・選んだスポットについての、サイト・写真・案内文を見ることができる。
・CSVに書き加えれば、いつでも場所の情報を追加することができる。

#中間発表で「こうするともっと良くなるよ」と講評で言われた、実装できたもの。
1.自分自身の言葉を入れる。→自分が実際に見て思ったことをできるだけ多く入れるようにしてみました。
2.選択した場所のみ画像が見れるようにしたこと。→鳥海山を選んだ場合、鳥海山の写真のみ見れるように作った。

#新たに実装できたこと(今後の展望に書いたこと)
1.選択できる場所を増やしたい
→スポット「神泉の水」を追加しました。
2.もっと親しみやすくなるように、できれば遊佐のキャラクターやオリジナルキャラクターを入れたい
→タイトルに登場するようにしました。
3.遊佐クイズも作りたい
→遊佐クイズのプログラムをsystemでj2311_last.rbに組み込み、できるようにしました。

#新たに、実装したいこと
スポットを地域別で絞れるようにしたいです。


puts"遊佐観光案内!!"
puts"1:観光案内・2:スポットクイズ"
puts"どちらを選びますか?"
erabu = gets.to_i
while true
  if erabu == "1"
require 'csv'
yuza = CSV.read("yuza.csv", headers:true)
basho = yuza["場所"]            # 「場所」の列が配列で入る
puts "何番の場所の情報を見ますか?"
basho.each_with_index do |b, n| # bが場所、nが配列の番号(添字)
  printf("%2d: %s\n", n, b)
end
 print "番号: "
n =  gets.to_i
 
  while true
  if n<0 || n>=basho.length
    puts "さようなら!"
    break
  end
  
  sentaku = yuza[n]		# 配列のn番目のものをもってくる
  bun = sentaku["案内文"]	# その行の"案内文"の列を取る
  url = sentaku["URL"]          # その行の"URL"の列を取る
  gazou = sentaku["写真"]
  while true
    puts"案内文を見ますか?(いいえと選択したら、写真と案内文が見れます)"
    puts"案内文を見るとそれに関するサイトに飛びます。"
    puts"はい、いいえ"
    puts"入力:"
    erabu = gets.chomp
  if erabu == "はい"
  printf("%s\n", bun)
  system "firefox #{url} &"	# #{url}がurl変数に置き換わって実行される
  break
  elsif erabu == "いいえ"
    puts"わかりました。"
    puts"サイトは見ないで、写真を見ましょう。"
    puts"#{bun}"
    pid = spawn "display -geometry +10+20 #{gazou}"
    sleep(7)
    Process.kill(:INT,pid)
    puts"ばいばい"
    break
  else
    puts"もう一回入力して下さい。"
    redo
  end
  end
  break
  end
  break
  elsif erabu == "2"
    system"ruby yuza_quiz.rb"
    break
  end
end