/* a8-6-1.c */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int user(void);
int computer(void);
void judge(int u, int c);

char ken[3][8] = {"グー", "チョキ", "パー"};

int main(void)
{
	int u, c, n;

	srand((unsigned)time(NULL));

	printf("3回勝負だ\n");
	for (n = 1; n <=3; n++) {
		u = user();
		c = computer();
		judge(u, c);
	}
	return 0;
}

/*** ユーザーのじゃんけんを入力する ***/
/* （仮引数）なし　（返却値）ユーザーのじゃんけん */
int user(void)
{
	int u;
	do {
		printf("じゃん、けん、ぽん！(1:グー 2:チョキ 3:パー) ＞ ");
		scanf("%d", &u);
	} while (u < 1 || u > 3);
	u--;
	printf("あなたは%s\n", ken[u]);
	return u;
}

/***コンピュータのじゃんけんを決定する ***/
/* （仮引数）なし　（返却値）コンピュータのじゃんけん */
int computer(void)
{
	int c;
    c = rand() % 3;
	printf("コンピュータは%s\n", ken[c]);
	return c;
}

/*** 勝敗を決定する ***/
/* （仮引数）u：ユーザー　c：コンピュータ　（返却値）なし */
void judge(int u, int c)
{
	char judge_table[3][14] = {"あいこ", "あなたの勝ち", "あなたの負け"};
	/* 判定　0：あいこ　1:ユーザーの勝ち　2:ユーザーの負け */
	int table[3][3] = {
	/*	コンピュータ     グー チョキ パー */
	/* ユーザー グー   */  {0,   1,    2},    
	/*          チョキ */  {2,   0,    1}, 
	/*          パー   */  {1,   2,    0} };

	if (u >= 0 && u <= 2 && c >= 0 && c <= 2) {
		printf("%sです。\n", judge_table[table[u][c]]);
	}
}
