😎

クリスマスにちなんだプログラミング

2024/12/24に公開

Daily blogging3日目

クリスマスイブなので、クリスマスにちなんだプログラミングがないかChatGPTに聞いてみた
ちなみにruby

rotating_ornaments

ツリーにランダムでオーナメントが装飾される

def rotating_ornaments
  tree = [
    "       *",
    "      ***",
    "     *****",
    "    *******",
    "   *********",
    "  ***********",
    " *************",
    "      |||"
  ]

  ornaments = ['*', 'o', '+', 'x']

  loop do
    system('clear')
    tree.each_with_index do |line, index|
      if index < 7
        puts line.gsub('*', ornaments.sample)
      else
        puts line
      end
    end

    sleep 0.5
  end
end

santa_sleigh

sleigh: そり
サンタさんが雪の中そりで滑走する

def santa_sleigh
  santa = "🎅🚀"
  snow = ['*', 'o', '.', '+']
  width = 40

  loop do
    system('clear') # 画面表示をクリア
    snowflakes = (1..width).map {snow.sample}.join(" ")
    puts snowflakes
    puts " " * rand(width) + santa # randで乱数を生成し、その数だけ空白を生成
    sleep 0.1
  end
end

countdown_to_christmas

12/25までのカウントダウン

require 'date'

def countdown_to_christmas
  christmas = Date.new(Date.today.year, 12, 25)
  today = Date.today
  remaining_days = (christmas - today).to_i
  remaining_hours = (remaining_days * 24) - (Time.now.hour)
  remaining_minutes = 60 - Time.now.min
  remaining_seconds = 60 - Time.now.sec

  puts "あと #{remaining_days} 日 #{remaining_hours} 時間 #{remaining_minutes} 分 #{remaining_seconds} 秒 でクリスマス!"
end

santa_game

1~10のお家のいずれかにサンタさんが隠れている。 サンタさんが隠れているお家の番号を当てられるか

def santa_game
  house_number = rand(1..10)
  puts "サンタさんがプレゼントを届ける家の番号を予測してください(1〜10):"
  guess = gets.chomp.to_i

  if guess == house_number
    puts "おめでとう!サンタさんがその家にプレゼントを届けました!"
  else
    puts "残念!サンタさんは家番号 #{house_number} にプレゼントを届けました。"
  end
end

コード自体はめちゃくちゃシンプルだけど、こういう発想もあるんだなぁってちょっと感心。
どうなるのかは実際にコード書いて試してみてください!

Discussion