ライブコーディング大喜利

流れ

  1. 最初に司会者からそれぞれに名前と所属と意気込みを聞きます。
  2. 司会者がお題を提示 コーディング開始!
  3. 解答者手を挙げる
  4. 解答者へモニタを切り替える
  5. 解答者がコードを書く
  6. コードが動くことを確認 司会者が評価・解説
  7. 2へ戻る(数回繰り返す)

問 1 ランダムソート

  • 1から10までの配列があります。
  • ランダムに並べ替えてください。

※ただし、 Array#shuffle, Array#shuffle!, Array#sample は使用しないでください。


def f
  a = (1..10).to_a
  # -- ここにコードを記述してください。 --
end

# 三回出力してそれぞれランダムに並び替えられていることを確認します。
f
f
f
        

問 2 配列のソート問題

以下のようなに名前とそれぞれの項目の得点を記したCSVファイルがあります。
rubyの得点を基準に降順に並べ替え、名前とrubyの数字を出力しなさい。
また、平均点を計算し降順に並べ替え、名前と平均点を出力しなさい。
(平均点が同じ場合はrubyの点数が高い方を先に表示すること)

https://matsue.rubyist.net/matrk06/ruby_2.csv

CSVファイル


name,ruby,php,python,perl
一郎,100,40,70,80
二郎,60,90,80,10
三郎,90,60,60,60
四郎,80,70,70,80
          

Rubyスクリプトファイル


require 'open-uri'
require 'csv'

# スクレイピング先のURL
url = 'https://matsue.rubyist.net/matrk06/ruby_2.csv'

# -- ここにコードを記述してください。 --

# -- ここに出力をしてください。 --
        

問 3 スクレイピング

以下のアドレスにアクセスしてください。

https://matsue.rubyist.net/matrk06/ruby_3

一見、みんなRubyに見えますが、実は仲間はずれがいます!
上記アドレスをRubyを使用して読込み、仲間はずれをさがしてください。
仲間はずれの理由と何番目のRubyかを出力してください。
※仲間はずれの理由に特に正解はありません。自由に考えてOKです。


require 'open-uri'

# スクレイピング先のURL
url = 'https://matsue.rubyist.net/matrk06/ruby_3'

# -- ここにコードを記述してください。 --

# -- ここに出力をしてください。 --
          

問 4 確率の問題

0回から13回までのいずれかの回数だけトランプのカードを引けます。
引いたカードが、すべてスペードのカードである場合の確率を返すプログラムを作成してください。

以下は、トランプの内容です。

トランプの枚数は、52枚です。
トランプの絵柄は、「スペード、クローバー、ハート、ダイヤ」の4つです。
絵柄ごとにカードは、13枚あります。
カードの種類は、「A 2 3 4 5 6 7 8 9 10 J Q K」の13種類です。