ネットワークエンジニア系ブログ。健康、エンターテイメント、映画・ドラマ、本、キッズ系、FXまで!お役立ち情報を紹介!

GOISBLOG

C言語

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

更新日:

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

復讐ですがif分は

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

while文は

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

という意味でした。


>>>>>>エンジニアおすすめサイト
⇒IT、WEB、プログラミングのキャリアアップを目指す方はオンラインで学べる
コードキャンプがおすすめです。

無料体験レッスンも受けることができますし、専門の講師がしっかりサポートもしてくれるので安心です。
しかも、初心者からこれからキャリアアップして転職を考えている方もしっかりとサポートしてくれます。
年収もアップするために次のステップに進みましょう!

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

高度なランダム機能を使ったじゃんけんゲームではなく、ここでは前回の勉強の応用として、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のかちです

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


>>>>>> 今、IT業界でLinuxの資格は必須と言っていいほど重要になってきました。
リナックスアカデミーはITエンジニアとしての知識が学べ、卒業後の就職までサポートしてくれます。

将来のエンジニアを目指す方は無料資料があるので参考にしてください。


○エンジニアの道を目指すならこちらもおすすめです!
⇒ネットワークエンジニアへの技術手順書

⇒サーバーエンジニアへの構築手順書



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

Twitter で



  • この記事を書いた人
  • 最新記事

ネットワークエンジニアとしてまた一児の父として仕事とブログ作成に奮闘中!
自分の身の回りにある興味、趣味をひたすらブログで書きまとめています!
私の子供も発達障害のこともあるので色々調べたことなどアップして少しはお役に立てたらと思っております!

-C言語
-,

Copyright© GOISBLOG , 2017 All Rights Reserved.