blackjack - 5

{c103345 クラス 11 \atop 公益太郎}

平成 16 年 11 月 15 日

1 問題

課題中の問題番号 5 番

• カードの画面表示をもっとみやすくきれいにする

を選択した。

2 作成したプログラム

今回作成したプログラムは以下の通り。

#!/usr/koeki/bin/ruby
def createCardsHashArray()
card = Array.new # 空の配列を作る
for suit in ["ハート", "スペード", "ダイヤ", "クラブ"]
card << {"suit" => suit, "n" => "A"}

# ここで代入しているのがハッシュ

2.upto(10) do |n|
  card << {"suit" => suit, "n" => n.to_s}
end
for n in ["J", "Q", "K"]
  card << {"suit" => suit, "n" => n}
end
end

card # 最後に card 配列を呼び主に返す

end

〜〜〜見本なので中略〜〜〜

if pp > cp # コンピュータより点が高ければ puts "あなたの勝ちです。参りました!" else # そうでなければ (引き分け含む) puts "わたしの勝ちです。べろべろばあ〜"

end

3 実行例

実際にプログラムを動かしてみた。以下のようになった。

[figure]

% ./blackjack.rb

わたしの手:

  [ ??? ]

クラブの A あなたの手: ハートの 4 クラブの 3 今のあなたの点は 7 点です。もう一枚引きますか?(y か n で) y もう一枚引きます。引いたカードはこれです。ハートの K 今のあなたの点は 17 点です。もう一枚引きますか?(y か n で) n 勝負! わたしの手: クラブの 10 クラブの A あなたの手: ハートの 4 クラブの 3 ハートの K わたし 21 : 17 あなたわたしの勝ちです。べろべろばあ〜

[figure]

4 プログラムの解説

今回の課題で改良を加えたのは以下の部分である。

printf "今のあなたの点は %d 点です。 \n", point(player)

point(player) によってプレイヤーの得点が分かる。これをつねに表示するようにした。これにより、プレイヤー (人間) がもう一枚取るかどうかの判断を下すのが容易になる。

5 感想

実際にプログラムを作って、自分で遊んでいるときに、暗算が苦手なので遊ぶだけで頭を使ってへとへとになってしまった。足した結果を表示したらとても楽ちんで明日から明るい人生が送れそうな気がしてきた。

時間があったらページワンを作ってみたい。しかしルールがよく分からない (おい)。 UNO でも楽しそうだ。しかしどのカードが何枚あるのか知らない (こら)。