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


%文書のタイトルを指定する
\title{11-26 poker - 1}

%文書の著者を指定する
\author{c101345 クラス11\\公益太郎}

%次の行からが本文の開始
\begin{document}
\maketitle			% ここ(つまり文書先頭)にタイトルを出力
\section{問題}			% 最初のセクションは「問題」

課題中の問題番号1番

\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
ダイヤのK
ハートの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}
