最低限の知識で書くソース

情報の授業のレポートを書く程度に必要なものでまとめた。

以下のリストの色を変えた部分が LaTeXマクロである。それ以外は通常の文章。

\documentclass{jsarticle}
% ascmacを使うとscreen環境で丸枠が使えるようになる。で、usepackageする。
\usepackage{ascmac}


%文書のタイトルを指定する
\title{11-19 blackjack - 5}

%文書の著者を指定する
\author{c101345 クラス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}


LaTeX