情報の授業のレポートを書く程度に必要なものでまとめた。
以下のリストの色を変えた部分が 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}