ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

medium_7468361986

C言語

【C言語】制御文でじゃんけんゲームを作ってみる

投稿日:2014年10月27日 更新日:

前回、if文とwhile文をまとめたので、それを用いた簡単なじゃんけんゲームをプログラミングで作ってみたいと思います。

復讐ですがif分は

もし、◯◯であれば××の処理を実行する

while文は

◯◯が終わるまで□□を繰り返す

という意味でした。

簡単なじゃんけんゲームを作ってみる

高度なランダム機能を使ったじゃんけんゲームではなく、ここでは前回の勉強の応用として、if文とwhile文を使ったプログラミングを作ります。

そのうちプログラミングが慣れてくればもうちょっとすごい、じゃんけんゲームが作れればっておもうんですがね。。。

if文、while文でそれぞれのじゃんけんゲームを作っていますが、ルールは以下のようになります。

  • プレイヤー1と2でそれぞれじゃんけんを入力
  • 入力値以外の値は受け付けないようにする
  • 同じ入力値であれば「あいこ」と入力
  • あとはじゃんけんゲームと同じようにそれぞれ、if文、while文でプログラミング作成
スポンサーリンク


if文を使ったじゃんけんゲーム

if文では「==」や「&&」などの演算子を用いてじゃんけんゲームを作りました。

#include <stdio.h>

int main(void)
{
    int player1 = 0;    /* プレイヤー1 */
    int player2 = 0;    /* プレイヤー2 */
    
    
    /* 無限ループ */
    while(1){
        /* 「グー、チョキ、パー」の手を入れる */
        printf("PLAYER(1:グー、2:チョキ、3:パー):");
        scanf("%d",&player1);
        printf("PLAYER(1:グー、2:チョキ、3:パー);");
        scanf("%d",&player2);
        
        /* 1,2,3以外の数字は受け付けないようにする */
        if(player1 < 1 || player1 > 3 || player2 < 1 || player2 > 3){
            break;  /* whileの外へ出る */
        }
        
        /* じゃんけん判定 */
        if(player1 == player2){
            printf("あいこです\n");
        }else if(   (player1 == 1 && player2 == 2)
                 || (player1 == 2 && player2 == 3)
                 || (player1 == 3 && player1 == 1)){
            printf("PLAYER1のかちです\n");
        }else if(   (player1 == 1 && player2 == 3)
                 || (player1 == 3 && player2 == 2)
                 || (player1 == 2 && player1 == 1)){
            printf("PLAYER2のかちです\n");
        }
        return 0;
    }
}
PLAYER(1:グー、2:チョキ、3:パー):1
PLAYER(1:グー、2:チョキ、3:パー);2
PLAYER1のかちです

while文であいこと時は再度入力を求める(無限ループ)

while文はちょいと工夫を凝らして「%」を応用したプログラミングを作りました。

#include <stdio.h>

int main(void)
{
    int player1 = 0;    /* プレイヤー1 */
    int player2 = 0;    /* プレイヤー2 */
    
    
    /* 無限ループ */
    while(1){
        /* 「グー、チョキ、パー」の手を入れる */
        printf("PLAYER(1:グー、2:チョキ、3:パー):");
        scanf("%d",&player1);
        printf("PLAYER(1:グー、2:チョキ、3:パー);");
        scanf("%d",&player2);
        
        /* 1,2,3以外の数字は受け付けないようにする */
        if(player1 < 1 || player1 > 3 || player2 < 1 || player2 > 3){
            break;  /* whileの外へ出る */
        }
        
        if(player1 == player2){
            printf("あいこです\n");
        }else if((player1 % 3) == (player2 - 1)){
            printf("PLAYER1のかちです\n");
            break;  /* whileの外へ出る */
        }else if((player1 - 1) == (player2 % 3)){
            printf("PLAYER2のかちです\n");
            break;  /* whileの外へ出る */
        }
    }
    return 0;
}
PLAYER(1:グー、2:チョキ、3:パー):3
PLAYER(1:グー、2:チョキ、3:パー);3
あいこです
PLAYER(1:グー、2:チョキ、3:パー):2
PLAYER(1:グー、2:チョキ、3:パー);2
あいこです
PLAYER(1:グー、2:チョキ、3:パー):1
PLAYER(1:グー、2:チョキ、3:パー);1
あいこです
PLAYER(1:グー、2:チョキ、3:パー):1
PLAYER(1:グー、2:チョキ、3:パー);2
PLAYER1のかちです

「%」って結構頭がこんがらがっちゃいますね。
まだまだ、勉強不足ですわ。

Cの絵本―C言語が好きになる9つの扉
アンク
翔泳社
売り上げランキング: 21,730

この記事が気に入ったら
いいね!しよう

Twitter で
スポンサーリンク

-C言語
-,

Copyright© GOISBLOG , 2016 AllRights Reserved.