%#!uplatex -kanji=%k \documentclass[uplatex]{jsarticle} % ascmacを使うとscreen環境で丸枠が使えるようになる。で、usepackageする。 \usepackage{ascmac} %文書のタイトルを指定する \title{blackjack - 5} %文書の著者を指定する \author{c103345 クラス11\\公益太郎} %次の行からが本文の開始 \begin{document} \maketitle % ここ(つまり文書先頭)にタイトルを出力 \section{問題} % 最初のセクションは「問題」 課題中の問題番号5番 \begin{itemize} \item カードの画面表示をもっとみやすくきれいにする \end{itemize} を選択した。 \section{作成したプログラム} 今回作成したプログラムは以下の通り。 % verbatim環境は中味を原文そのまま組版する % 作ったRubyプログラムをそのままここに差し込めばよい。 \begin{verbatim} #!/usr/koeki/bin/ruby # coding: utf-8 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 \end{verbatim} % verbatim環境終わり \section{実行例} 実際にプログラムを動かしてみた。以下のようになった。 \begin{screen} % \usepackage{ascmac}が必要 \begin{verbatim} % ./blackjack.rb わたしの手: [ ??? ] クラブ の A あなたの手: ハート の 4 クラブ の 3 今のあなたの点は 7点 です。 もう一枚引きますか?(yかnで) y もう一枚引きます。引いたカードはこれです。 ハート の K 今のあなたの点は 17点 です。 もう一枚引きますか?(yかnで) n 勝負! わたしの手: クラブ の 10 クラブ の A あなたの手: ハート の 4 クラブ の 3 ハート の K わたし 21 : 17 あなた わたしの勝ちです。べろべろばあ〜 \end{verbatim} \end{screen} \section{プログラムの解説} 今回の課題で改良を加えたのは以下の部分である。 \begin{verbatim} printf("今のあなたの点は %d点 です。\n", point(player)) \end{verbatim} point(player) によってプレイヤーの得点が分かる。 これをつねに表示するようにした。これにより、プレ イヤー(人間)がもう一枚取るかどうかの判断を下すの が容易になる。 \section{感想} 実際にプログラムを作って、自分で遊んでいるときに、 暗算が苦手なので遊ぶだけで頭を使ってへとへとになっ てしまった。足した結果を表示したらとても楽ちんで 明日から明るい人生が送れそうな気がしてきた。 時間があったらページワンを作ってみたい。しかし ルールがよく分からない({\small おい})。 UNOでも楽しそうだ。しかしどのカードが何枚あるの か知らない({\small こら})。 \end{document}