じゃんけん

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
大熊
記事: 45
登録日時: 2年前

じゃんけん

#1

投稿記事 by 大熊 » 2年前

じゃんけんのプログラムを書こうと試みています。あいこになった場合再度キーボードからの入力をし、じゃんけんをし、結果を表示するにはどのように改良すればよろしいですか

コード:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
  int hand_com,hand_YOU;
  srand(time(NULL)); rand();
hand_com = (rand()%(3));

  printf("*** じゃんけんします***\nじゃんけんぽん!(1:グー、2:チョキ、3:パー ):");
  
  scanf("%d",&hand_YOU);
  if(hand_YOU<1 || hand_YOU>3) 
  {printf("グー・チョキ・パー以外は反則です。");
    return(0); 
  }
if(hand_YOU==1)
printf("YOU:グー\n");
else if(hand_YOU==2)
printf("YOU:チョキ\n");
else 
printf("YOU:パー\n");

if(hand_com==1)
printf("COM:グー\n");
else if(hand_com==2)
printf("COM:チョキ\n");
else 
printf("COM:パー\n");

if(hand_YOU==hand_com)
printf("あいこ!\n");
else if((hand_YOU==1&&hand_com==2)||(hand_YOU==2&&hand_com==3)||(hand_YOU==3&&hand_com==1))
 printf("あなたの勝ち!\n");
 else if((hand_YOU==2&&hand_com==1)||(hand_YOU==3&&hand_com==2)||(hand_YOU==1&&hand_com==3))
 printf("あなたの負け!\n");


 printf("***終了***");
return(0)
}

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: じゃんけん

#2

投稿記事 by みけCAT » 2年前

ループを使ってあいこだったら最初からやり直すようにする、というのが一つの手でしょう。

コード:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
  int hand_com,hand_YOU;
  srand(time(NULL));
  for(;;)
  {
    rand();
    hand_com = (rand()%(3));

    printf("*** じゃんけんします***\nじゃんけんぽん!(1:グー、2:チョキ、3:パー ):");
    
    scanf("%d",&hand_YOU);
    if(hand_YOU<1 || hand_YOU>3) 
    {
      printf("グー・チョキ・パー以外は反則です。");
      return(0); 
    }
    if(hand_YOU==1)
      printf("YOU:グー\n");
    else if(hand_YOU==2)
      printf("YOU:チョキ\n");
    else 
      printf("YOU:パー\n");

    if(hand_com==1)
      printf("COM:グー\n");
    else if(hand_com==2)
      printf("COM:チョキ\n");
    else 
      printf("COM:パー\n");

    if(hand_YOU==hand_com)
    {
      printf("あいこ!\n");
      continue;
    }
    else if((hand_YOU==1&&hand_com==2)||(hand_YOU==2&&hand_com==3)||(hand_YOU==3&&hand_com==1))
      printf("あなたの勝ち!\n");
    else if((hand_YOU==2&&hand_com==1)||(hand_YOU==3&&hand_com==2)||(hand_YOU==1&&hand_com==3))
      printf("あなたの負け!\n");

    printf("***終了***");
    return(0);
  }
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

大熊
記事: 45
登録日時: 2年前

Re: じゃんけん

#3

投稿記事 by 大熊 » 2年前

ありがとうございました。

返信

“C言語何でも質問掲示板” へ戻る