LoginSignup
1
0

More than 3 years have passed since last update.

初学者がRubyでクイズをつくってみた

Posted at

プログラミングを学習し始めて数日の超初心者が、遊びでつくったものを投稿してみたいと思います。
どなたかの役に立つかどうかは、謎ですが、とりあえず書いてみます。

学んだこと

条件分岐

if文を使います。クイズに正解の(条件式を満たす)場合、不正解の場合と分けて別の内容を出力させられます。

ループ

while文を使います。不正解だと、延々と回答させられ続ける事ができます。

クイズつくってみた

以上のことを勉強しましたので、クイズをつくってみました。

q1.rb
while true do
  puts "The second Rome?"
  input = gets.chomp
  answer = "Constantinople"
  if input == answer then
    puts "正解です。"
    exit
  else
    puts "ばーか"
  end
end

問題文「The second Rome?」がまず出力され(putsメソッド)、次の行のgetsメソッドは実行時に入力する内容を文字列として返すので、

  1. ここで正解を入力すると「正解です」
  2. それ以外だと「ばーか」

と返されます。ここでgetsメソッドは、入力した内容の最後に改行を入れてたものを返り値とするので、改行を外すためgets.chompとします。chompメソッドがないと、何をしても「ばーか」と言われます。

数値が答えになる問題

上は文字列(Constantinople)が等しいかどうかを比較していたわけですが、数値を回答するクイズもやってみました。

q2.rb
while true do
  puts "Fall-of-Constantinople year?"
  input = gets.to_i
  answer = 1453
  if input == answer then
    puts "正解です。"
    exit
  else
    puts "ばーかばーか"
  end
end

getsメソッドは文字列を返すので、to_iメソッドで数値に直します。これがないと、やはり、自分で書いたプログラムに、何を入力しても罵倒されることになります。

わかったこと

プログラムに罵倒されると楽しい

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0