じゃんけん

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

じゃんけん

#1

投稿記事 by 大熊 » 2年前

以下の仕様に従うコードとすること:1度の実行で,1度だけじゃんけんを行う.プログラムを実行する度に異なる結果が得られる(⇔見本コードと同様にtime関数をsrand関数に渡して乱数系列を変更する).完成後の実行ファイルを何度も実行すれば,次ページの全ての動作例を再現できる.次ページの動作例の表示内容を再現する.キーボードからの入力値が1, 2, 3以外の場合は反則である旨をメッセージ表示する.うまく勝敗が表示されません。手直しをお願いします


コード:

#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 + 1;
    hand_YOU = rand() % 3 + 1;
    printf("*** じゃんけんします ***\n\n");

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

    if(hand_YOU==1)
    { printf("YOU:グー\n");
      if(hand_com==1)
    {printf("あいこ!");
    }
    else if(hand_com==2)
    {
     printf("hand_com:チョキ\n");
     printf("あなたの勝ち!");
    }
    else if(hand_com==3)
    {
      printf("hand_com:パー!\n");
      printf("あなたの負け!\n");
    }
    else if(hand_YOU==2)
    {
      printf("hand_YOUチョキ\n");
      if(hand_com==1)
      {printf("hand_comグー\n");
       printf("負け!\n");
      }
    else if(hand_com==2)
    {
      printf("hand_comチョキ\n");
      printf("あいこ!\n");
    }
    else if(hand_com==3)
    {
      printf("hand_comパー\n");
      printf("勝利!\n");
    }
    }
    else if(hand_com==3)
    {
      printf("hand_YOUパー\n");

      if(hand_com==1)
      {
        printf("hand_comグー\n");
        printf("勝利\n");
      }
      
    
    else if(hand_com==2)
    {
      printf("hand_comチョキ\n");
      printf("負け\n");
    }
    else if(hand_com==3)
    {
      printf("hand_comパー\n");
      printf("あいこ!\n");
    }
    printf("\n*** 終了 ***\n");
    return 0;
}


}
    
}
 
添付ファイル
スクリーンショット (1999).png

box
記事: 2002
登録日時: 13年前

Re: じゃんけん

#2

投稿記事 by box » 2年前

なんでプレイヤーの手もランダムに決めさせるんですかね?
手で入力したいんじゃないんですか?

コード:

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

int main(void)
{
    int player, computer;

    srand((unsigned int) time(NULL));
    computer = rand() % 3 + 1;
    do {
        printf("your hand(1:stone, 2:scissors, 3:paper) > ");
        scanf("%d", &player);
        if (player != 1 && player != 2 && player != 3) {
            printf("bad hand\n");
        }
    } while (player != 1 && player != 2 && player != 3);

    // printf("%d %d\n", player, computer);
    if (player == computer) {
        printf("same hand\n");
    }
    else if (player == 1 && computer == 2 ||
        player == 2 && computer == 3 ||
        player == 3 && computer == 1) {
        printf("player win!\n");
    }
    else {
        printf("computer win!\n");
    }
    return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

返信

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