okじゃんけん

OKじゃんけん

 『うかる! 基本情報技術者 [午後・アルゴリズム編] 福嶋先生の集中ゼミ』の、「OKじゃんけん」の判定プログラムを作ってみました。
 勝ちの判定部分は、ちょっと違うアルゴリズムにしてあります。
 なお、「OKじゃんけん」とは、OK同士(あいこ)以外は、OKを出した人の勝ちというじゃんけんの仕方です。それ以外は、普通のじゃんけんと同じ。OKは、一日の内に一回だけとかいう制限を設けて使わせるようにします。今回は、勝敗の判定部分だけです。
 とりあえず、保存用に載せておきます。あまり参考にしなければならないほどのプログラムではありません。

 #include <stdio.h> 
void hyouji(int syouhai[4][4]);

int main() {
  int i, k;
  int syouhai[4][4];

  for (i = 0; i < 4; i++) {
    for (k = 0; k < 4; k++) {
      if (i == k) {
        syouhai[i][k] = 2;
      } else if (i == 3) {
        syouhai[i][k] = 0;
      } else if (k == 3) {
        syouhai[i][k] = 1;
      } else if(i - k == -1 || i - k == 2) {
        syouhai[i][k] = 0;
      } else {
        syouhai[i][k] = 1;
      }
    }
  }
  hyouji(syouhai);
}
void hyouji(int syouhai[4][4]) {
  const char pat[4][10] = { " グー","チョキ"," パー","  OK" };
  const char kekka[3][3] = { "太","花","△" };
  int i, k;
  printf("\n              花子\n      ");
  for (i = 0; i < 4; i++) {
    printf("     %-6s  ", pat[i]);
  }
  printf("\n太郎 ");
  for (i = 0; i < 4; i++) {
    printf("%-6s  ", pat[i]);
    for (k = 0; k < 4; k++) {
      printf("%2s          ", kekka[syouhai[i][k]]);
    }
    printf("\n     ");
  }
}

 [実行結果]

              花子
            グー        チョキ        パー          OK
太郎  グー   △          太          花          花          
     チョキ  花          △          太          花          
      パー   太          花          △          花          
       OK    太          太          太          △          
タイトルとURLをコピーしました