Newer
Older
Ruby / CPR.rb
@SATO Yuki SATO Yuki on 16 Dec 16 KB 2023-12-16 00:06:13
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

puts"これから救急蘇生法の勉強を始めるよ。"
puts"--------------------"
puts"まず君は、救急蘇生法を知っているかな?       "
puts"1.知っている"
puts"2.知らない"

while true
print"どちらかを選んで入力してね!"
go=gets.chomp.to_i

if go == 1
  puts"すごい!じゃあこのプログラムでさらに救急蘇生法への理解を深めていこう!"
break  
elsif go == 2
    puts"全然知識がなくても大丈夫!いちから救急蘇生法を学んでいこう!"
    break
else
  puts"その選択肢はないよ。もう一度質問を読もう。"
  redo
end
end

puts"--------------------"
puts"早速勉強を始めていくよ!"
puts"--------------------"

puts"まずは一問目。"

puts"あなたが公園にいたとします"

puts"周りにはウォーキングしている大人や、遊んでいる親子がいます。"

puts"ベンチに座っていたら、急に人が目の前で倒れてしまいました。"

puts"さてこんなとき、あなたは最初に何をする?"
puts"--------------------"
puts"選択肢から選んでね。"
puts"1.周りの人に助けを求める"

puts"2.無視して、他の人がその人を助けるのを待つ"

puts"3.倒れている人の反応(意識)の確認をする。。"
   

while true
  print"自分の答えを入力:"
  no1 = gets.chomp.to_i
  if no1 == 1
    puts "それも大切なことだけど、実は先にやらなければならないことがあるんだ。"
    break
  elsif no1 == 2
    puts"不正解!命は1分1秒を争うから、自ら動くことはとても大切だよ。"
    break
  elsif no1 == 3
    puts"正解!よくわかったね。"
    break
  else
    puts"その答えはないよ。もう一度問題文を読もうね。"
    redo
  end
end
puts"-------------------"
puts"まず救急蘇生は最初に、3の反応(意識)の確認をするよ。"
puts"大きな声をかけ、肩を軽く叩き、「もしもし」「大丈夫ですか」「聞こえますか」などと声をかけるよ。"
puts"反応がなければ、またあるいは判断に迷う場合は、1のように周りの人に助けを求め、119番通報とAEDの手配をお願いするよ。"

puts"じゃあ、三十秒間待っているから、実際に声を出して言ってみよう!"
puts"「もしもし、大丈夫ですか、聞こえますか。」「あなたは119番通報を、あなたはAEDの手配をお願いします!」"
sleep(30)
puts"言えたかな?そしたら、次の問題に進もう!"
puts"--------------------"
puts"次に、呼吸の確認をするよ。"
puts"倒れている人が心停止を起こしているかを判断するために、呼吸を確認するよ。"

puts"呼吸を確認するときには、倒れている人の胸部と腹部の動きの観察に集中する。"
puts"普通通りの呼吸がないときや判断に迷うときは胸骨圧迫を開始するよ。"
puts"--------------------"
puts"さてここで問題!"
puts"胸骨圧迫は一分間にどのくらいのスピードでやるのだろう?"
puts"1.一分間に140〜160回"
puts"2.一分間に100〜120回"
puts"3.一分間に70〜80回"

while true
  print"自分の答えを入力:"
  kotae=gets.chomp.to_i
  
if kotae == 1
  puts "不正解!一分間に140回以上するのは多すぎると言われているよ。"
  break
elsif kotae == 2
  puts"正解!"
  break
  
elsif kotae == 3
  puts"不正解!胸骨圧迫では、もう少しスピードを早める必要があるよ。"
  break
else
  puts"その答えはないよ。もう一度問題文を読もうね。"
  redo
end
end
puts"--------------------"

puts "胸骨圧迫では、2の一分間に100回〜120回のテンポで30回続けて行うのがよいとされているよ。"
puts"胸骨圧迫をするときは、倒れている人を硬い床の上に上向きで寝かせ、"
puts"救助者は、倒れている人の片側、胸のあたりに両膝をつく。"

puts"倒れている人の胸の真ん中に片手の手のひら下部を置き、その上にもう一つの手を重ね、"
puts"上に重ねた手の指で、下の手の指を引き上げるよ。"
puts"両肘を伸ばして、倒れている人の体と平行になるように体重をかけて、大人の場合約5センチ沈む程度に圧迫するよ。"
puts"その時、手は胸から離さずに、速やかに力を緩めて、元の高さに戻すことを心がけてね。"
puts"     "
puts"胸骨圧迫について、わかったかな?"
puts"1.はい"
puts"2.いいえ"

while true
  print"入力:"
  a=gets.chomp.to_i

  if a == 1
    puts"じゃあ、次に進もう!"
    break
  elsif a == 2
    puts"わかった!じゃあ、15秒待っているから読んでね!"
    sleep(15)
    break
  else
    puts"疲れたのかな?1か2のどちらかを入力してね。"
    redo
  end
end
puts"---------------------"

puts"次は、気道確保についてだよ。"
puts"気道確保は「頭部後屈あご先挙上法(とうぶこうくつあごさききょじょうほう)」ともいうよ。"
puts"片方の手を倒れている人の額(おでこ)に、もう一つの手の人差し指と中指をしたあごの先に当てて、"
puts"下あごを引き上げるようにして、額に置いた手で頭部を後ろに傾ける。"
puts"頚椎損傷(首の骨が折れているなど)が疑われるときは、特に注意して静かに行ってね。"
puts"     "
puts"気道確保について、わかったかな?"
puts"1.はい"
puts"2.いいえ"

while true
  print"入力:"
  a=gets.chomp.to_i

  if a == 1
    puts"じゃあ、次に進もう!"
    break
  elsif a == 2
    puts"わかった!じゃあ、15秒待っているから読んでね!"
    sleep(15)
    break
  else
    puts"疲れたのかな?1か2のどちらかを入力してね。"
    redo
  end
end

puts"---------------------"

puts"次に、人工呼吸についてだよ。"
puts"救助者は、先程の気道を確保したまま、額に置いた手の親指と人差し指で倒れている人の鼻をつまむよ。"
puts"救助者は、自分の口を大きく開け、倒れている人の口を覆う。"
puts"そしたら、約1秒かけて、倒れている人の胸が上がるのがわかる程度に吹き込みを行うよ。"
puts"これを二回続けて行う。"
puts"ただし、その時一回の吹き込みごとにいったん口を離して、換気させよう。"
puts"そしたら、すぐに胸骨圧迫を再開するよ。"
puts"     "
puts"人工呼吸について、わかったかな?"
puts"1.はい"
puts"2.いいえ"

while true
  print"入力:"
  a=gets.chomp.to_i

  if a == 1
    puts"じゃあ、次に進もう!"
    break
  elsif a == 2
    puts"わかった!じゃあ、15秒待っているから読んでね!"
    sleep(15)
    break
  else
    puts"疲れたのかな?1か2のどちらかを入力してね。"
    redo
  end
end

puts"-------------------"

puts"心肺蘇生を効果的に行うためには、胸骨圧迫と人工呼吸を組み合わせて行う必要があるよ。"
puts"胸骨圧迫30回と人工呼吸2回を繰り返し、AEDを使用するとき以外は、"
puts"心肺蘇生(特に胸骨圧迫)を中断なく続けることが大切だよ。"
puts"人工呼吸をする技術や意思を持たないようなときは、胸骨圧迫だけでも大丈夫だよ。"
puts"     "
puts"心肺蘇生について、わかったかな?"
puts"1.はい"
puts"2.いいえ"

while true
  print"入力:"
  a=gets.chomp.to_i

  if a == 1
    puts"じゃあ、次に進もう!"
    break
  elsif a == 2
    puts"わかった!じゃあ、15秒待っているから読んでね!"
    sleep(15)
    break
  else
    puts"疲れたのかな?1か2のどちらかを入力してね。"
    redo
  end
end

puts"-------------------"

puts"最後に、子供に対する心肺蘇生について学ぼう!"
puts"子供に対する心肺蘇生は、基本的には大人の場合と同じだけれど、年齢によって、"
puts"体の大きさや体型が異なるから、少し違いがあるよ。"
puts"また、子供は大人に比べて、窒息や溺水などの呼吸器系の障害によって引き起こされる"
puts"心停止の割合が多いから、人工呼吸がより重要になってくるんだ。"

puts"-------------------"

puts"まず、乳児の胸骨圧迫では、2本指を立て、幼児は、片手または両手で、"
puts"胸の約1/3沈み込む程度、押し上げるよ。圧迫のテンポは、大人と同じ一分間に100回〜120回の"
puts"テンポで行うよ。"

puts"-------------------"

puts"次に気道確保では、子供の首は柔らかいため、後方に傾けすぎないように注意しよう!"
puts"人工呼吸は、肺容量が少ないので、吹き込む量の目安は、胸が上がるのがわかる程度にしよう。"
puts"     "
puts"乳児・幼児の心肺蘇生について、わかったかな?"
puts"1.はい"
puts"2.いいえ"

while true
  print"入力:"
  a=gets.chomp.to_i

  if a == 1
    puts"じゃあ、次に進もう!"
    break
  elsif a == 2
    puts"わかった!じゃあ、15秒待っているから読んでね!"
    sleep(15)
    break
  else
    puts"疲れたのかな?1か2のどちらかを入力してね。"
    redo
  end
end

puts"-------------------"

puts"ここまでよく頑張ったね!"
puts"あともう少しでゴールだよ!"
puts"最後に、あなたがどれくらい心肺蘇生法について覚えたのか、簡単なテストをしよう!"
puts"問題は全部で7問あるよ、残りの力を振り絞って頑張ろう!"

puts"-------------------"

puts"第一問目"
puts"反応の確認について。"
puts"周りの人に助けを求めるのと、倒れている人の反応を確認するのはどっちが先?"
puts"1.周りの人に助けを求めるのが先。"
puts"2. 倒れている人の反応を確認するのが先。"

while true
  print"自分の答えを入力してね:"
  answer1=gets.chomp.to_i

  if answer1 == 1
    puts"残念…実はそれも大事なんだけれど、倒れている人の反応を確認するのが先だよ。"
    break

  elsif answer1 == 2
    puts"正解!よく覚えていたね。倒れている人の反応を確認してから、意識の有無によってAEDを手配してもらおう。"
break
  else
    puts"疲れたのかな?その答えはないよ。"
    redo
  end
end

puts"--------------------"

puts"第二問目。"
puts"呼吸確認について。"
puts"下の文章にあてはまる言葉がすべて正しいものを選んでね。"
puts"呼吸を確認するために、倒れている人の「ア」と「イ」の動きの観察に集中する。"
puts"このとき、呼吸を確認するのに、「ウ」秒以上かけないようにする。"
puts"                "
puts"1.ア:心臓/イ:腹部/ウ:10"
puts"2.ア:心臓/イ:胸部/ウ:15"
puts"3.ア:胸部/イ:腹部/ウ:10"

while true
  print"自分の答えを入力してね:"
  answer2=gets.chomp.to_i

  if answer2 == 1
    puts"不正解。呼吸確認のときは、胸部と腹部の動きを観察する。"
    puts"そのとき、呼吸確認に10秒以上はかけないようにするよ。"
    break

  elsif
    answer2 == 2
    puts"不正解。呼吸確認のときには、胸部と腹部の動きを観察する。"
    puts"そのとき、呼吸確認に10秒以上かけないようにするよ。"
    break

  elsif
    answer2 == 3
    puts"大正解!さすがだね!"
    break

  else
    puts"疲れたのかな?その答えはないよ。"
    redo
  end
end

puts"--------------------"

puts"第三問目。"
puts"胸骨圧迫について。"
puts"正しいものの番号をひとつ入力してね。"
puts"1.胸骨圧迫は約3センチ沈み込む程度に圧迫する。"
puts"2. 胸骨圧迫は一分間に130回〜150回のテンポで20回続ける。"
puts"3.倒れている人を硬い床に上向きで寝かせてから、胸骨圧迫を始める。"

while true
  print"自分の考えを入力:"
  answer3=gets.chomp.to_i
  
  if  answer3 == 1
    print"不正解。胸骨圧迫は約5センチ沈む程度に圧迫するよ。"
    break

  elsif answer3 == 2
    print"不正解。胸骨圧迫は一分間に100回〜120回のテンポで30回続ける。"
    break

  elsif answer3 == 3
    print"正解!胸骨圧迫は倒れている人を硬い床に寝かせてから始めるよ。"
    break

  else
    print"疲れているのかな?その答えはないよ。"
    redo
  end
end

puts"--------------------"

puts"第四問目。"
puts"気道確保について。"
puts"下の文章に当てはまる言葉がすべて正しいものを選んでね。"
puts"一方の手を倒れている人の「ア」に、もう片方の手の人差し指と中指を「イ」の先にあて、"
puts"引き上げるようにして、額に置いた手で頭部を後方に傾ける。"
puts"     "
puts"1.ア:額/イ:下あご"
puts"2.ア:下あご/イ:額"

while true
  print"自分の考えを入力:"
  answer4=gets.chomp.to_i
  
 if  answer4 == 1
  puts"正解!よくわかったね。"
  break
elsif answer4 == 2
  puts"不正解。一方の手は倒れている人の額の額に、もう片手は人差し指と中指を下あごにあてるよ。"
  break
else
  puts"疲れているのかな?その答えはないよ。"
  redo
end
end

puts"-------------------"

puts"第五問目"
puts"人工呼吸について。"
puts"人工呼吸は、約1秒かけて倒れている人の胸が上がるのがわかる程度の吹き込みを"
puts"二回続けて行う。○か×か。"
puts"1.○"
puts"2.×"

while true
  print"自分の答えを入力してね:"
  answer5=gets.chomp.to_i

  if answer5 == 1
    puts"正解!人工呼吸は、約一秒かけて倒れている人の胸があがるのがわかる程度の吹き込みを"
    puts"二回続けて行うよ。"
    break

  elsif answer5 == 2
    puts"不正解。人工呼吸は、約一秒かけて倒れている人の胸があがるのがわかる程度の吹込みを"
    puts"二回続けて行うよ。"
    break

  else
    puts"疲れているのかな?その答えはないよ。"
    redo
  end
end

puts"---------------------"

puts"第六問目"
puts"胸骨圧迫と人工呼吸について。"
puts"下の文章に当てはまる言葉がすべて正しいものを選んでね。"
puts"心肺蘇生を効果的に行うためには、胸骨圧迫「ア」回、人工呼吸「イ」回を繰り返す。"
puts"   "
puts"1.ア:30/イ:3"
puts"2.ア:25/イ:2"
puts"3.ア:30/イ:2"

while true
  print"自分の考えを入力してね。:"
  answer6=gets.chomp.to_i

  if answer6 == 1
    puts"惜しい、。胸骨圧迫は30回、人工呼吸は2回を繰り返すよ。"
    break
  elsif answer6 == 2
    puts"惜しい、。胸骨圧迫は30回、人工呼吸は2回を繰り返すよ。"
    break
  elsif answer6 == 3
    puts"お見事!胸骨圧迫は30回、人工呼吸は2回を繰り返すよ。"
break
  else
    puts"疲れてるのかな?その答えはないよ。"
    redo
  end
end

puts"--------------------"

puts"最後の問題!第七問目。"

puts"乳児や幼児の胸骨圧迫のテンポは大人よりも少し遅く、胸の厚さの半分が沈み込む程度押し下げる。"
puts"○か×か。"
puts"1.○"
puts"2. ×"

while true
  print"自分の考えを入力してね。:"
  answer7=gets.chomp.to_i

  if answer7 == 1
    puts"残念、不正解。。乳児や幼児の胸骨圧迫のテンポは大人と同じ速さで、"
    puts"胸の厚さの約1/3が沈み込む程度押し下げる。"
    break
  elsif answer7 == 2
    puts"大正解!乳児や幼児の胸骨圧迫のテンポは大人と同じ速さで、"
    puts"胸の厚さの約1/3が沈み込む程度押し下げる。"
    break
  else
    puts"疲れているのかな?その答えはないよ。"
    redo
  end
end

puts"-------------------"

puts"あなたは何問正解だった?"
puts"7問全問正解を目指して、これからも暇なときにクイズを解いてみよう!"

puts"-------------------"

puts"日本では、心肺蘇生法によって人の命が救われた事例がたくさんある。"
puts"心肺蘇生は、2分間以内に胸骨圧迫を開始すれば、生存率はほぼ90%と言われているけれど、"
puts"10分間放置状態のままだと、救命率はほぼ絶命的だとされている。"
puts"「子供だから」「大人がやってくれるだろう」「周りの人がなんとかしてくれるだろう」"
puts"という考え方は持たずに、勇気をだして自ら行動することが"
puts"誰かの命を救うよ。"
puts"      "
puts"このプログラムを通して、心肺蘇生法の手順を覚え、"
puts"あなたがもし人が倒れている場面に遭遇したら、"
puts"今回学んだことを思い出して、役立ててみてね!"
puts"  "
puts"-------------------"

puts"参考文献"
puts"「日本赤十字社 心肺蘇生」"
puts"「大船中央病院 pdf」"