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

#mogrify -resize '>400x300' *.jpg 画像を小さくする魔法
#pid = spawn "display -geometry +10+20 #{gazou}" ひとつだけの画像を出すときに

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

#工夫したところ
#・CSVを使ってできるだけ行数が少ないものにしました。
#・あとからでも、場所を追加できるようにしました。
#・操作しやすいように、番号で選択するようにしました。
#実装しているもの
#・選んだスポットについての、サイト・写真・案内文を見ることができる。
#・CSVに書き加えれば、いつでも場所の情報を追加することができる。
#・クイズができる

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

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


puts"遊佐観光案内!!"
pid = spawn "display -geometry +10+20 C-3_マスコット_遊佐_タイトル用.png"
sleep(5)
Process.kill(:INT,pid)
puts"1:観光案内・2:スポットクイズ"
puts"どちらを選びますか?"
while true
  erabu = gets.to_i
  if erabu == 1
require 'csv'
yuza = CSV.read("j2311_last.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}"
   pid1 = spawn "montage -geometry 500x340 #{gazou} - | display -geometry +10+20 -"
    sleep(7)
    Process.kill(:INT,pid1)
    puts"ばいばい"
    break
  else
    puts"もう一回入力して下さい。"
    redo
  end
  end
  break
  end
  break
  elsif erabu == 2
    system"ruby yuza_quiz.rb"
    break
  end
end

#記録
#鮭の遡上で有名  Emacsだとこの字のみ
#鮭の溯上で有名  Terminalだとこの字のみ