情報の授業のレポートを書く程度に必要なものでまとめた。
以下のリストの色を変えた部分が LaTeXマクロである。それ以外は通常の文章。
\documentclass{jarticle}
% ascmacを使うとscreen環境で丸枠が使えるようになる。で、usepackageする。
\usepackage{ascmac}
%文書のタイトルを指定する
\title{11-26 poker - 2}
%文書の著者を指定する
\author{c101345 クラス11\\公益太郎}
%次の行からが本文の開始
\begin{document}
\maketitle % ここ(つまり文書先頭)にタイトルを出力
\section{問題} % 最初のセクションは「問題」
課題中の問題番号2番
\begin{itemize}
\item カードの画面表示をもっとみやすくきれいにする
\end{itemize}
を選択した。
\section{作成したプログラム}
今回作成したプログラムは以下の通り。
% verbatim環境は中味を原文そのまま組版する
% 作ったCプログラムをそのままここに差し込めばよい。
\begin{verbatim}
#include <stdio.h>
#include <stdlib.h>
#define CARDS 52 /* 難しいのでジョーカー抜き */
typedef struct { /* 1枚のカードの構造体 */
char *suit; /* スート */
int number; /* 数字 */
char *name; /* 読み名 */
} aCard;
〜〜〜〜〜 見本なので中略 〜〜〜〜〜
int main(int argc, char *argv[])
{
Cards deck, human, com;
int i, result;
initialize(&deck);
shuffle(&deck);
/* 人間に5枚配る */
for (human.n=0; human.n<5; human.n++) {
memcpy(&human.card[human.n], &deck.card[--deck.n], sizeof (aCard));
}
puts("あなたの手は");
for (i=0; i<human.n; i++) {
dispcard(human.card[i]);
}
result = judge(&human);
printf("result=%d, 役は%s\n", result, hand[result]);
}
\end{verbatim}
% verbatim環境終わり
\section{実行例}
実際にプログラムを動かしてみた。以下のようになった。
\begin{screen} % \usepackage{ascmac}が必要
\begin{verbatim}
% ./poker
あなたの手は
ダイヤのA
ハートのQ
ダイヤの4
クラブのK
クラブの7
sum=5
result=0, 役はハイカード
% ./poker
あなたの手は
ハートのQ
ダイヤの8
ハートのK
ダイヤのJ
ハートのJ
sum=4
result=1, 役はワンペア
\end{verbatim}
\end{screen}
\section{プログラムの解説}
今回の課題で改良を加えたのは以下の部分である。
\begin{verbatim}
int is_twopair(Cards *c)
{
:
〜〜〜〜〜 見本なので省略 〜〜〜〜〜
:
}
\end{verbatim}
twopair()関数によって手持のカードがツーペアかどうか
判定するようにした。ツーペアと判定する場合には
ワンペア判定関数と似た考え方を適用する。うがあああ
ほげえええ、じょじょじょじょ〜。
\section{感想}
実際のポーカーをやったことが無い({\small おい})。しかし
これを機に練習して一儲けしたい({\small ウソ})。
\end{document}