roy > naoya > 基礎プログラミングI·情報検索 > (10)楽しいプログラムを作ろう
前期の授業も終盤に入り、4月当初では想像できないような難しいプログラムを書くことができるようになった。最後に、これまで学んだことを踏まえて自由に題材を選んでプログラムを作成してみよう。一人では負担が大きいので5名程度のグループを作り、アイデアを出し合いながら分担して作業を進めよう。
役割分担を決め、何をいつまでにやるのか相談しよう。役割としては例えば以下があげられる。
例えば以下のようなプログラムが考えられる。面白いものや実用的なものを作ってみよう。
その他のプログラムとして、昨年度までの自由課題で作成されたプログラムを確認してみよう(広瀬先生のページ)。
決定したグループのメンバー、グループ名、役割分担、プログラムの案など決まったところまで報告する。
授業終了時までに提出。出席点は2点。提出要領は下記の通り。
Tips:emacsでの日本語入力のオンオフはCtrl-oです
Tips:Mewによるメールの送り方はMewコマンドを参照
#!/usr/koeki/bin/ruby
hoi = ["上","下","右","左"]
srand
comp=rand(4)
STDERR.print "あっちむいてほい!(0: 上,1: 下,2: 右,3: 左) :"
user = gets.chomp!.to_i
printf ("あなたは %s でした \n", hoi[comp])
printf ("わたしは %s でした。\n", hoi[user])
#!/usr/koeki/bin/ruby print "爆弾の解体だ!最後に二本のコードが残された。\n" print "どちらを切る?\n" print "0:赤、1:青\n" bomb = gets.chomp!.to_i sleep(2) print "よし!切るぞ!\n" sleep(1) print "チョキッ\n" sleep(1) srand target = rand(2) if bomb == target print "解体成功!!\n" else print "ドカーン!!\n" end
#! /usr/koeki/bin/ruby
list = ["赤","黄","青"]
print "あなたの反応時間を計測します。準備は良いですか(y or n)"
junbi = gets.chomp!
if junbi == "y"
  sleep(1)
  print "赤と表示されたら1、黄なら2、青なら3を押してください。\n"
else
  print "そうですかさようなら\n"
  exit(1)
end
sleep(1)
srand
color = rand(3)
print "\n"
printf ("%s\n",list[color])
start = Time.now
choice = gets.chomp.to_i
reaction_time = Time.now - start
printf ("表示されたのは%s、あなたの回答は%s\n",
list[color],list[choice-1])
if color == choice-1
  print "正解です\n"
else
  print "はずれです\n"
end
printf ("反応時間は%s秒でした\n",reaction_time)
#!/usr/koeki/bin/ruby print "1〜3の好きな数字を入力してください。\n" print "コンピュータが選んだ数字と同じならあなたの勝ち。\n" number = gets.chomp!.to_i srand comp = rand(3) + 1 if number == comp system 'banner YOU WIN' else system 'banner YOU LOSE' end
ktermのbannerコマンドは大きな文字を表示させるコマンドである。system 'banner hoge'でhogeを大きく表示する。
irsv{naoya}% ruby banner.rb[Return]
1〜3の好きな数字を入力してください。
コンピュータが選んだ数字と同じならあなたの勝ち。
1[Return]
#     # ####### #     #
 #   #  #     # #     #
  # #   #     # #     #
   #    #     # #     #
   #    #     # #     #
   #    #     # #     #
   #    #######  #####
#     #   ###   #     #
#  #  #    #    ##    #
#  #  #    #    # #   #
#  #  #    #    #  #  #
#  #  #    #    #   # #
#  #  #    #    #    ##
 ## ##    ###   #     #